airflow.providers.amazon.aws.secrets.secrets_manager¶
与从 AWS Secrets Manager 获取密钥相关的对象。
类¶
从 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_idsmtp_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。