airflow.providers.microsoft.azure.secrets.key_vault¶
本模組包含 Azure Key Vault 後端。
類¶
從 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_idsmtp-default,則可以訪問此秘密。如果變數字首是airflow-variables-hello,則如果您提供{"variables_prefix": "airflow-variables"}並請求變數鍵hello,則可以訪問此變數。對於客戶端認證,使用 Azure Python SDK 中的
DefaultAzureCredential作為憑據提供程式,它支援服務主體、託管標識和使用者憑據。例如,要指定一個帶有秘密的服務主體,您可以設定環境變數
AZURE_TENANT_ID、AZURE_CLIENT_ID和AZURE_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。
- get_conn_value(conn_id)[source]¶
從 Azure Key Vault 秘密獲取 Airflow 連線的序列化表示。
- 引數:
conn_id (str) – 要檢索的 Airflow 連線 ID