blob: f97f6a4c03cf24f64cee4838ababbd046bc009b2 [file] [log] [blame]
:mod:`airflow.providers.microsoft.azure.secrets.azure_key_vault`
================================================================
.. py:module:: airflow.providers.microsoft.azure.secrets.azure_key_vault
Module Contents
---------------
.. py:class:: AzureKeyVaultBackend(connections_prefix: str = 'airflow-connections', variables_prefix: str = 'airflow-variables', config_prefix: str = 'airflow-config', vault_url: str = '', sep: str = '-', **kwargs)
Bases: :class:`airflow.secrets.BaseSecretsBackend`, :class:`airflow.utils.log.logging_mixin.LoggingMixin`
Retrieves Airflow Connections or Variables from Azure Key Vault secrets.
The Azure Key Vault can be configured as a secrets backend in the ``airflow.cfg``:
.. code-block:: ini
[secrets]
backend = airflow.providers.microsoft.azure.secrets.azure_key_vault.AzureKeyVaultBackend
backend_kwargs = {"connections_prefix": "airflow-connections", "vault_url": "<azure_key_vault_uri>"}
For example, if the secrets prefix is ``airflow-connections-smtp-default``, this would be accessible
if you provide ``{"connections_prefix": "airflow-connections"}`` and request conn_id ``smtp-default``.
And if variables prefix is ``airflow-variables-hello``, this would be accessible
if you provide ``{"variables_prefix": "airflow-variables"}`` and request variable key ``hello``.
:param connections_prefix: Specifies the prefix of the secret to read to get Connections
If set to None (null), requests for connections will not be sent to Azure Key Vault
:type connections_prefix: str
:param variables_prefix: Specifies the prefix of the secret to read to get Variables
If set to None (null), requests for variables will not be sent to Azure Key Vault
:type variables_prefix: str
:param config_prefix: Specifies the prefix of the secret to read to get Variables.
If set to None (null), requests for configurations will not be sent to Azure Key Vault
:type config_prefix: str
:param vault_url: The URL of an Azure Key Vault to use
:type vault_url: str
:param sep: separator used to concatenate secret_prefix and secret_id. Default: "-"
:type sep: str
.. method:: client(self)
Create a Azure Key Vault client.
.. method:: get_conn_uri(self, conn_id: str)
Get an Airflow Connection URI from an Azure Key Vault secret
:param conn_id: The Airflow connection id to retrieve
:type conn_id: str
.. method:: get_variable(self, key: str)
Get an Airflow Variable from an Azure Key Vault secret.
:param key: Variable Key
:type key: str
:return: Variable Value
.. method:: get_config(self, key: str)
Get Airflow Configuration
:param key: Configuration Option Key
:return: Configuration Option Value
.. staticmethod:: build_path(path_prefix: str, secret_id: str, sep: str = '-')
Given a path_prefix and secret_id, build a valid secret name for the Azure Key Vault Backend.
Also replaces underscore in the path with dashes to support easy switching between
environment variables, so ``connection_default`` becomes ``connection-default``.
:param path_prefix: The path prefix of the secret to retrieve
:type path_prefix: str
:param secret_id: Name of the secret
:type secret_id: str
:param sep: Separator used to concatenate path_prefix and secret_id
:type sep: str
.. method:: _get_secret(self, path_prefix: str, secret_id: str)
Get an Azure Key Vault secret value
:param path_prefix: Prefix for the Path to get Secret
:type path_prefix: str
:param secret_id: Secret Key
:type secret_id: str