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_id 為smtp_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) – 指定連線 ID 以連線至 Yandex Lockbox。預設值為
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
),則請求將使用連線端點(如果已指定);否則,它們將使用預設端點。