Secrets Backend¶
1.10.10 版本中的新增功能。
除了从环境变量或元存储数据库中检索连接和变量之外,你还可以启用备用 Secrets 后端,以通过 Apache Airflow 社区提供的后端 在 Secret 后端 中检索 Airflow 连接或 Airflow 变量。
注意
Airflow UI 仅显示存储在元数据数据库中而不是通过任何其他方法的连接和变量。如果你使用备用 Secrets 后端,请在后端中查看以查看变量和连接的值。
你还可以从 Secrets Backend 获取包含敏感数据的 Airflow 配置。有关更多详细信息,请参阅 设置配置选项。
搜索路径¶
在查找连接/变量时,Airflow 默认将首先搜索环境变量,然后搜索元存储数据库。
如果您启用替代密码后端,它将首先被搜索,然后是环境变量,最后是元存储。此搜索顺序不可配置。不过,在某些替代密码后端中,您可能有权选择在密码后端中搜索哪些连接/变量/配置。请查看您正在使用的密码后端的文档,以了解是否存在此类选项。
警告
在使用环境变量或替代密码后端来存储密码或变量时,可能会创建键冲突。如果后端之间存在重复键,则所有写入操作都将更新元存储中的值,但所有读取操作都将返回对请求键的第一个匹配,从自定义后端开始,然后是环境变量,最后是元存储。
配置¶
[secrets]
部分具有以下选项
[secrets]
backend =
backend_kwargs =
将 backend
设置为要启用的后端的完全限定类名。
您可以使用 json 提供 backend_kwargs
,它将作为 kwargs 传递给密码后端的 __init__
方法。
如果您想检查当前设置了哪个密码后端,可以使用 airflow config get-value secrets backend
命令,如下面的示例所示。
$ airflow config get-value secrets backend
airflow.providers.google.cloud.secrets.secret_manager.CloudSecretManagerBackend
支持的核心后端¶
Apache Airflow 社区提供的密码后端¶
Apache Airflow 社区还发布了社区开发的提供程序(提供程序包),其中一些还提供了扩展 Apache Airflow 密码后端功能的处理程序。您可以在 密码后端 中看到所有这些提供程序。
推出您自己的密码后端¶
秘密后端是 airflow.secrets.base_secrets.BaseSecretsBackend
的一个子类,并且必须实现 get_connection()
或 get_conn_value()
以检索连接,get_variable()
以检索变量,以及 get_config()
以检索 Airflow 配置。
在编写后端类后,在 airflow.cfg
的 [secrets]
部分的 backend
键中提供完全限定的类名。
可以通过向 backend_kwargs
提供一个 JSON 字符串来在 airflow.cfg
中配置 SecretsBackend 的其他参数,该字符串将传递给 SecretsBackend 的 __init__
。有关更多详细信息,请参见 配置,有关示例,请参见 SSM 参数存储。