airflow.providers.hashicorp.secrets.vault

与从 Hashicorp Vault 获取连接和变量相关的对象。

VaultBackend

从 Hashicorp Vault 中检索连接和变量。

模块内容

class airflow.providers.hashicorp.secrets.vault.VaultBackend(connections_path='connections', variables_path='variables', config_path='config', url=None, auth_type='token', auth_mount_point=None, mount_point='secret', kv_engine_version=2, token=None, token_path=None, username=None, password=None, key_id=None, secret_id=None, role_id=None, assume_role_kwargs=None, region=None, kubernetes_role=None, kubernetes_jwt_path='/var/run/secrets/kubernetes.io/serviceaccount/token', gcp_key_path=None, gcp_keyfile_dict=None, gcp_scopes=None, azure_tenant_id=None, azure_resource=None, radius_host=None, radius_secret=None, radius_port=None, **kwargs)[source]

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

从 Hashicorp Vault 中检索连接和变量。

可通过 airflow.cfg 配置,如下所示:

[secrets]
backend = airflow.providers.hashicorp.secrets.vault.VaultBackend
backend_kwargs = {
    "connections_path": "connections",
    "url": "http://127.0.0.1:8200",
    "mount_point": "airflow"
    }

例如,如果您的密钥位于 Airflow mount_point 中的 connections 路径下,那么如果您提供 {"connections_path": "connections"} 并请求 conn_id smtp_default,即可访问它。

参数:
  • connections_path (str) – 指定读取机密的路径以获取连接。(默认值:‘connections’)。如果设置为 None(空),则不会向 Vault 发送连接请求。

  • variables_path (str) – 指定读取机密的路径以获取变量。(默认值:‘variables’)。如果设置为 None(空),则不会向 Vault 发送变量请求。

  • config_path (str) – 指定读取机密的路径以获取 Airflow 配置。(默认值:‘config’)。如果设置为 None(空),则不会向 Vault 发送配置请求。

  • url (str | None) – 要访问的 Vault 实例的基础 URL。

  • auth_type (str) – Vault 的身份验证类型。默认值为 token。可用值包括:(‘approle’,‘aws_iam’,‘azure’,‘github’,‘gcp’,‘kubernetes’,‘ldap’,‘radius’,‘token’,‘userpass’)

  • auth_mount_point (str | None) – 可用于定义所选身份验证的 mount_point。默认值取决于所使用的身份验证方法。

  • mount_point (str | None) – 挂载机密引擎的“路径”。默认值为“secret”。请注意,如果身份验证通过不同的引擎完成,则此 mount_point 不用于身份验证。如果设置为 None,则应将挂载的机密作为每个变量/连接 ID 的前缀提供。有关身份验证 mount_points,请参阅 auth_mount_point。

  • kv_engine_version (int) – 选择要运行的引擎版本(12,默认值:2)。

  • token (str | None) – 包含在发送到 Vault 的请求中的身份验证令牌。(适用于 tokengithub 身份验证类型)

  • token_path (str | None) – 包含身份验证令牌的文件路径,用于包含在发送到 Vault 的请求中(适用于 tokengithub 身份验证类型)。

  • username (str | None) – 身份验证用户名(适用于 ldapuserpass 身份验证类型)。

  • password (str | None) – 身份验证密码(适用于 ldapuserpass 身份验证类型)。

  • key_id (str | None) – 身份验证密钥 ID(适用于 aws_iamazure 身份验证类型)。

  • secret_id (str | None) – 身份验证 Secret ID(适用于 approleaws_iamazure 身份验证类型)。

  • role_id (str | None) – 身份验证 Role ID(适用于 approleaws_iam 身份验证类型)。

  • assume_role_kwargs (dict | None) – AWS Assume Role 参数。请参阅 AWS STS 文档:https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sts/client/assume_role.html

  • region (str | None) – 用于 STS API 调用的 AWS 区域(适用于 aws_iam 身份验证类型)。

  • kubernetes_role (str | None) – 身份验证角色(适用于 kubernetes 身份验证类型)。

  • kubernetes_jwt_path (str) – kubernetes jwt 令牌的路径(适用于 kubernetes 身份验证类型,默认值:/var/run/secrets/kubernetes.io/serviceaccount/token)。

  • gcp_key_path (str | None) – Google Cloud 服务账号密钥文件(JSON)的路径(适用于 gcp 身份验证类型)。与 gcp_keyfile_dict 互斥。

  • gcp_keyfile_dict (dict | None) – 密钥文件参数的字典。(适用于 gcp 身份验证类型)。与 gcp_key_path 互斥。

  • gcp_scopes (str | None) – 包含 OAuth2 范围的逗号分隔字符串(适用于 gcp 身份验证类型)。

  • azure_tenant_id (str | None) – Azure Active Directory 的租户 ID(适用于 azure 身份验证类型)。

  • azure_resource (str | None) – 在 Azure Active Directory 中注册的应用程序的配置 URL(适用于 azure 身份验证类型)。

  • radius_host (str | None) – Radius 的主机(适用于 radius 身份验证类型)。

  • radius_secret (str | None) – Radius 的 Secret(适用于 radius 身份验证类型)。

  • radius_port (int | None) – Radius 的端口(适用于 radius 身份验证类型)。

mount_point = 'secret'[source]
kv_engine_version = 2[source]
vault_client[source]
get_response(conn_id)[source]

从 Vault 获取数据。

返回:

如果存在,则返回 Vault 路径中的数据

返回类型:

dict | None

get_connection(conn_id)[source]

从 Vault 中作为机密获取连接。

如果 conn_uri 存在,则优先使用;否则,回退到正常的 Connection 创建。

返回:

从 Vault 数据构建的 Connection 对象

返回类型:

airflow.models.connection.Connection | None

get_variable(key)[source]

获取 Airflow 变量。

参数:

key (str) – 变量键

返回:

从 vault 中检索到的变量值

返回类型:

str | None

get_config(key)[source]

获取 Airflow 配置。

参数:

key (str) – 配置选项键

返回:

从 vault 中检索到的配置选项值

返回类型:

str | None

此条目有帮助吗?