airflow.providers.amazon.aws.secrets.secrets_manager

與從 AWS Secrets Manager 獲取金鑰相關的物件。

SecretsManagerBackend

從 AWS Secrets Manager 中檢索連線或變數。

模組內容

class airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend(connections_prefix='airflow/connections', connections_lookup_pattern=None, variables_prefix='airflow/variables', variables_lookup_pattern=None, config_prefix='airflow/config', config_lookup_pattern=None, sep='/', extra_conn_words=None, **kwargs)[原始碼]

基類: airflow.secrets.BaseSecretsBackend, airflow.utils.log.logging_mixin.LoggingMixin

從 AWS Secrets Manager 中檢索連線或變數。

可以透過 airflow.cfg 進行如下配置

[secrets]
backend = airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend
backend_kwargs = {"connections_prefix": "airflow/connections"}

例如,當 {"connections_prefix": "airflow/connections"} 設定後,如果定義了一個路徑為 airflow/connections/smtp_default 的金鑰,則可以使用 conn_id smtp_default 訪問該連線。

{"variables_prefix": "airflow/variables"} 設定後,如果定義了一個路徑為 airflow/variables/hello 的金鑰,則可以使用名稱 hello 訪問該變數。

{"config_prefix": "airflow/config"} 設定後,如果定義了一個路徑為 airflow/config/sql_alchemy_conn 的金鑰,則可以使用鍵 sql_alchemy_conn 訪問該配置。

您還可以將 AWS 連線額外配置中列出的其他關鍵字引數傳遞給此類,這些引數將用於建立連線並傳遞給 Boto3 客戶端。

[secrets]
backend = airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend
backend_kwargs = {"connections_prefix": "airflow/connections", "region_name": "eu-west-1"}

另請參閱

配置連線

在 Secret Manager 中儲存金鑰以與此運算子一起使用有兩種方式:將它們儲存在一個欄位中作為連線 URI,或者利用 Secrets Manager 的原生方法將它們儲存在多個欄位中。 Secret Manager 會在欄位名稱中搜索特定詞語來嘗試檢索連線的一部分。這些詞語是

possible_words_for_conn_fields = {
    "login": ["login", "user", "username", "user_name"],
    "password": ["password", "pass", "key"],
    "host": ["host", "remote_host", "server"],
    "port": ["port"],
    "schema": ["database", "schema"],
    "conn_type": ["conn_type", "conn_id", "connection_type", "engine"],
}

但是,這些列表可以使用配置引數 extra_conn_words 進行擴充套件。此外,您還可以有一個名為 extra 的欄位用於連線的額外引數。請注意,此 extra 欄位必須是有效的 JSON。

引數:
  • connections_prefix (str) – 指定用於讀取連線金鑰的字首。如果設定為 None(配置中的 null 值),則不會向 AWS Secrets Manager 傳送連線請求。如果您不想要 connections_prefix,請將其設定為空字串

  • connections_lookup_pattern (str | None) – 指定連線 ID 需要匹配的模式才能在 AWS Secrets Manager 中查詢。僅當 connections_prefix 不為 None 時適用。如果設定為 None(配置中的 null 值),則所有連線都將首先在 AWS Secrets Manager 中查詢。

  • variables_prefix (str) – 指定用於讀取變數金鑰的字首。如果設定為 None(配置中的 null 值),則不會向 AWS Secrets Manager 傳送變數請求。如果您不想要 variables_prefix,請將其設定為空字串

  • variables_lookup_pattern (str | None) – 指定變數鍵需要匹配的模式才能在 AWS Secrets Manager 中查詢。僅當 variables_prefix 不為 None 時適用。如果設定為 None(配置中的 null 值),則所有變數都將首先在 AWS Secrets Manager 中查詢。

  • config_prefix (str) – 指定用於讀取配置金鑰的字首。如果設定為 None(配置中的 null 值),則不會向 AWS Secrets Manager 傳送配置請求。如果您不想要 config_prefix,請將其設定為空字串

  • config_lookup_pattern (str | None) – 指定配置鍵需要匹配的模式才能在 AWS Secrets Manager 中查詢。僅當 config_prefix 不為 None 時適用。如果設定為 None(配置中的 null 值),則所有配置鍵都將首先在 AWS Secrets Manager 中查詢。

  • sep (str) – 用於連線 secret_prefix 和 secret_id 的分隔符。預設值:“/”

  • extra_conn_words (dict[str, list[str]] | None) – 僅當您將 full_url_mode 設定為 false 並將金鑰儲存在 Secrets Manager 的不同欄位中時使用。您可以在預設詞語之外為每個連線部分新增更多詞語。要搜尋的額外詞語應以列表字典的形式傳遞,每個列表對應一個連線部分。字典的可選鍵必須是:user, password, host, schema, conn_type。

connections_lookup_pattern = None[原始碼]
variables_lookup_pattern = None[原始碼]
config_lookup_pattern = None[原始碼]
sep ='/'[原始碼]
are_secret_values_urlencoded = False[原始碼]
extra_conn_words[原始碼]
profile_name[原始碼]
api_version[原始碼]
use_ssl[原始碼]
kwargs[原始碼]
property client[原始碼]

建立一個 Secrets Manager 客戶端。

get_conn_value(conn_id)[原始碼]

獲取連線的序列化表示。

引數:

conn_id (str) – 連線 ID

get_variable(key)[原始碼]

獲取 Airflow 變數。

引數:

key (str) – 變數鍵

返回:

變數值

返回型別:

str | None

get_config(key)[原始碼]

獲取 Airflow 配置。

引數:

key (str) – 配置選項鍵

返回:

配置選項值

返回型別:

str | None

此條目是否有幫助?