airflow.providers.microsoft.azure.secrets.key_vault

本模組包含 Azure Key Vault 後端。

AzureKeyVaultBackend

從 Azure Key Vault 秘密檢索 Airflow 連線或變數。

模組內容

class airflow.providers.microsoft.azure.secrets.key_vault.AzureKeyVaultBackend(connections_prefix='airflow-connections', variables_prefix='airflow-variables', config_prefix='airflow-config', vault_url='', sep='-', *, tenant_id='', client_id=''', client_secret='', managed_identity_client_id='', workload_identity_tenant_id='', **kwargs)[source]

Bases: airflow.secrets.BaseSecretsBackend, airflow.utils.log.logging_mixin.LoggingMixin

從 Azure Key Vault 秘密檢索 Airflow 連線或變數。

Azure Key Vault 可以配置為 airflow.cfg 中的秘密後端。

[secrets]
backend = airflow.providers.microsoft.azure.secrets.key_vault.AzureKeyVaultBackend
backend_kwargs = {"connections_prefix": "airflow-connections", "vault_url": "<azure_key_vault_uri>"}

例如,如果秘密字首是 airflow-connections-smtp-default,則如果您提供 {"connections_prefix": "airflow-connections"} 並請求 conn_id smtp-default,則可以訪問此秘密。如果變數字首是 airflow-variables-hello,則如果您提供 {"variables_prefix": "airflow-variables"} 並請求變數鍵 hello,則可以訪問此變數。

對於客戶端認證,使用 Azure Python SDK 中的 DefaultAzureCredential 作為憑據提供程式,它支援服務主體、託管標識和使用者憑據。

例如,要指定一個帶有秘密的服務主體,您可以設定環境變數 AZURE_TENANT_IDAZURE_CLIENT_IDAZURE_CLIENT_SECRET

另請參閱

有關客戶端認證的更多詳細資訊,請參閱 DefaultAzureCredential 類參考:https://docs.microsoft.com/en-us/python/api/azure-identity/azure.identity.defaultazurecredential?view=azure-python

引數:
  • connections_prefix (str) – 指定讀取秘密以獲取連線的字首。如果設定為 None (null),則不會向 Azure Key Vault 傳送連線請求。

  • variables_prefix (str) – 指定讀取秘密以獲取變數的字首。如果設定為 None (null),則不會向 Azure Key Vault 傳送變數請求。

  • config_prefix (str) – 指定讀取秘密以獲取配置的字首。如果設定為 None (null),則不會向 Azure Key Vault 傳送配置請求。

  • vault_url (str) – 要使用的 Azure Key Vault 的 URL

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

  • tenant_id (str) – 要使用的 Azure Key Vault 的租戶 ID。如果未指定,則回退到 DefaultAzureCredential

  • client_id (str) – 要使用的 Azure Key Vault 的客戶端 ID。如果未指定,則回退到 DefaultAzureCredential

  • managed_identity_client_id (str) – 使用者分配的託管標識的客戶端 ID。如果與 workload_identity_tenant_id 一起提供,它們將被傳遞給 DefaultAzureCredential

  • workload_identity_tenant_id (str) – 應用程式的 Microsoft Entra 租戶 ID。也稱為其“目錄”ID。如果與 managed_identity_client_id 一起提供,它們將被傳遞給 DefaultAzureCredential

vault_url = ''[source]
sep = '-'[source]
tenant_id = ''[source]
client_id = ''[source]
client_secret = ''[source]
managed_identity_client_id = ''[source]
workload_identity_tenant_id = ''[source]
kwargs[source]
property client: azure.keyvault.secrets.SecretClient[source]

建立一個 Azure Key Vault 客戶端。

get_conn_value(conn_id)[source]

從 Azure Key Vault 秘密獲取 Airflow 連線的序列化表示。

引數:

conn_id (str) – 要檢索的 Airflow 連線 ID

get_variable(key)[source]

從 Azure Key Vault 秘密獲取 Airflow 變數。

引數:

key (str) – 變數鍵

返回:

變數值

返回型別:

str | None

get_config(key)[source]

獲取 Airflow 配置。

引數:

key (str) – 配置選項鍵

返回:

配置選項值

返回型別:

str | None

static build_path(path_prefix, secret_id, sep='-')[source]

給定 path_prefix 和 secret_id,為 Azure Key Vault 後端構建一個有效的秘密名稱。

同時將路徑中的下劃線替換為破折號,以支援在環境變數之間輕鬆切換,例如 connection_default 變為 connection-default

引數:
  • path_prefix (str) – 要檢索的秘密的路徑字首

  • secret_id (str) – 秘密的名稱

  • sep (str) – 用於連線 path_prefix 和 secret_id 的分隔符

此條目有幫助嗎?