airflow.providers.yandex.secrets.lockbox

與從 Yandex Cloud Lockbox 來源取得金鑰相關的物件。

模組內容

類別

LockboxSecretBackend

從 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.BaseSecretsBackendairflow.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_prefixsecret_id。預設值為 /

  • endpoint (str | None) – 指定 API 端點。如果設定為 None(JSON 中的 null),則請求將使用連線端點(如果已指定);否則,它們將使用預設端點。

get_conn_value(conn_id)[原始碼]

從金鑰後端檢索代表連線物件的字串值。

參數

conn_id (str) – 連線 ID

傳回

連線值

傳回類型

str | None

get_variable(key)[原始碼]

傳回 Airflow 變數的值。

參數

key (str) – 變數金鑰

傳回

變數值

傳回類型

str | None

get_config(key)[原始碼]

傳回 Airflow 組態金鑰的值。

參數

key (str) – 組態金鑰

傳回

組態值

傳回類型

str | None

此條目是否有幫助?