airflow.providers.yandex.secrets.lockbox
¶
从 Yandex Cloud Lockbox 获取密钥相关的对象。
模块内容¶
类¶
从 Yandex Lockbox 检索连接、变量或配置。 |
- class airflow.providers.yandex.secrets.lockbox.LockboxSecretBackend(yc_oauth_token=None, yc_sa_key_json=None, yc_sa_key_json_path=None, yc_connection_id=None, folder_id='', connections_prefix='airflow/connections', variables_prefix='airflow/variables', config_prefix='airflow/config', sep='/', endpoint=None)[源代码]¶
基类:
airflow.secrets.BaseSecretsBackend
,airflow.utils.log.logging_mixin.LoggingMixin
从 Yandex Lockbox 检索连接、变量或配置。
可以通过
airflow.cfg
进行配置,如下所示[secrets] backend = airflow.providers.yandex.secrets.lockbox.LockboxSecretBackend 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
访问该配置。如果前缀为空,则不会将请求发送到 Yandex Lockbox。
[secrets] backend = airflow.providers.yandex.secrets.lockbox.LockboxSecretBackend backend_kwargs = {"yc_connection_id": "<connection_ID>", "folder_id": "<folder_ID>"}
您需要指定凭据或
yandexcloud
连接的 ID 才能连接到 Yandex Lockbox。凭据将按以下优先级使用OAuth 令牌
来自 JSON 文件的服务帐户密钥
JSON 格式的服务帐户密钥
Yandex Cloud 连接
如果您未指定任何凭据,系统将使用默认连接 ID:
yandexcloud_default
。此外,您需要指定 Yandex Cloud 文件夹 ID,以在其中搜索 Yandex Lockbox 密钥。如果未指定文件夹 ID,则请求将使用连接的
folder_id
(如果已指定)。- 参数
yc_oauth_token (str | None) – 指定用户帐户 OAuth 令牌以连接到 Yandex Lockbox。参数值应如下所示:
y3_xx123
。yc_sa_key_json (dict | str | None) – 以 JSON 格式指定服务帐户密钥。参数值应如下所示:
{"id": "...", "service_account_id": "...", "private_key": "..."}
。yc_sa_key_json_path (str | None) – 指定 JSON 文件路径中的服务帐户密钥。参数值应如下所示:
/home/airflow/authorized_key.json
,而文件内容应具有以下格式:{"id": "...", "service_account_id": "...", "private_key": "..."}
。yc_connection_id (str | None) – 指定用于连接到 Yandex Lockbox 的连接 ID。默认值为
yandexcloud_default
。folder_id (str) – 指定在其中搜索 Yandex Lockbox 密钥的文件夹 ID。如果设置为
None
(JSON 中的null
),则请求将使用连接的folder_id
(如果已指定)。connections_prefix (str | None) – 指定读取密钥以获取连接的前缀。如果设置为
None
(JSON 中的null
),则不会将连接请求发送到 Yandex Lockbox。默认值为airflow/connections
。variables_prefix (str | None) – 指定读取密钥以获取变量的前缀。如果设置为
None
(JSON 中的null
),则不会将变量请求发送到 Yandex Lockbox。默认值为airflow/variables
。config_prefix (str | None) – 指定读取密钥以获取配置的前缀。如果设置为
None
(JSON 中的null
),则不会将变量请求发送到 Yandex Lockbox。默认值为airflow/config
。sep (str) – 指定用于连接
secret_prefix
和secret_id
的分隔符。默认值为/
。endpoint (str | None) – 指定 API 端点。如果设置为
None
(JSON 中的null
),则请求将使用连接端点(如果已指定);否则,它们将使用默认端点。