Managed Airflow (第 3 代) | Managed Airflow (第 2 代) | Managed Airflow (舊版第 1 代)
本頁面說明如何透過員工身分聯盟,設定使用者對 Managed Airflow 環境的存取權。
關於 Managed Airflow 中的員工身分聯盟
透過員工身分聯盟,您可以使用外部識別資訊提供者 (IdP) 的服務,驗證及授權工作團隊 (一群使用者,例如員工、合作夥伴和承包商) 存取 Google Cloud 服務。如要進一步瞭解員工身分聯盟,請參閱「員工身分聯盟」。
如果專案中已設定員工身分聯盟,您可以透過下列方式存取環境:
- Google Cloud 控制台中的 Managed Airflow 頁面
- Airflow UI
- Google Cloud CLI,包括執行 Airflow CLI 指令
- Cloud Composer API
- Airflow REST API
事前準備
您不需要以任何特定方式設定環境,即可支援員工身分聯盟。Managed Airflow (第 3 代) 中的所有 Airflow 建構作業都支援員工身分聯盟。
員工身分聯盟的 Cloud Storage 限制適用於環境的 bucket。具體來說,您必須在環境的值區中啟用統一值區層級存取權,外部身分才能將 DAG 和檔案上傳至這個值區。
從 Airflow 傳送的電子郵件只會包含 Google 帳戶的 Airflow UI 網址。由於外部身分只能透過外部身分的 Airflow UI 網址存取 Airflow UI,因此必須調整連結 (改為外部身分的網址)。
Managed Airflow 不支援在輸入和輸出規則中使用第三方身分,允許 Apache Airflow UI 作業。不過,您可以在輸入和輸出規則中使用
ANY_IDENTITY身分類型,允許存取所有身分,包括第三方身分。如要進一步瞭解ANY_IDENTITY身分類型,請參閱「輸入和輸出規則」一文。
使用員工身分聯盟設定環境存取權
本節說明如何為外部身分設定 Managed Airflow 環境的存取權。
設定識別資訊提供者
請按照「設定員工身分聯盟」指南,為識別資訊提供者設定員工身分聯盟。
將 IAM 角色授予外部身分
在 Identity and Access Management 中,將 IAM 角色授予外部身分集,讓他們存取及操作您的環境:
如需 Managed Airflow 專屬角色清單,請參閱「授予使用者角色」。舉例來說,環境使用者與 Storage 物件檢視者 (
composer.environmentAndStorageObjectViewer) 角色可讓使用者查看環境、存取 Airflow UI、透過 DAG UI 查看及觸發 DAG,以及查看環境 bucket 中的物件。如需將這些角色指派給外部使用者的操作說明,請參閱「將 IAM 角色授予主體」。
如要瞭解如何在 IAM 政策中代表外部身分,請參閱「在 IAM 政策中代表工作團隊集區使用者」。
確認新使用者在 Airflow UI 存取權控管中獲得正確的 Airflow 角色
Managed Airflow 處理外部身分 Airflow 使用者的方式,與處理 Google 帳戶使用者相同。系統會使用主體 ID,而非電子郵件地址。外部身分首次存取 Airflow UI 時,系統會自動在 Airflow 角色型存取權控管系統中,以預設角色註冊 Airflow 使用者。
確認新使用者在 Airflow UI 存取權控管中獲得正確的 Airflow 角色。您可以採用兩種方法:
- 讓外部身分在首次存取 Airflow UI 後,獲得預設角色。如有需要,Airflow 管理員使用者可以將這個角色變更為其他角色。
預先註冊外部身分,並新增 Airflow 使用者記錄,將使用者名稱和電子郵件欄位設為主要 ID,藉此設定一組必要角色。這樣一來,外部身分就會獲得您指派的角色,而不是預設角色。
在 Google Cloud 控制台中存取 Managed Airflow 頁面
Google Cloud 員工身分聯盟控制台可存取 Managed Airflow 頁面。
在員工身分聯盟控制台的「Composer」頁面中,您可以存取 UI,管理環境、Managed Airflow 記錄、監控和 DAG UI。 Google Cloud
聯合控制台中的所有 Airflow UI 連結,都會指向外部身分的 Airflow UI 存取點。
存取 Airflow UI
Managed Airflow 環境有兩個 Airflow UI 的網址:一個適用於 Google 帳戶,另一個適用於外部身分。外部身分必須透過外部身分網址存取 Airflow UI。
外部身分網址為
https://<UNIQUE_ID>.composer.byoid.googleusercontent.com。Google 帳戶的網址為
https://<UNIQUE_ID>.composer.googleusercontent.com。
使用者必須通過外部身分驗證,才能存取外部身分網址。如果使用者未登入即造訪外部身分網址,系統會先重新導向至驗證入口網站,並要求他們指定員工集區提供者名稱,然後重新導向至識別資訊提供者登入,最後重新導向至環境的 Airflow UI。
在 Google Cloud 控制台中存取 DAG 使用者介面
外部身分使用者可以透過聯合控制台存取 DAG UI。您可以使用 IAM 政策控管存取權。
系統也會考量環境中 Airflow 以角色為基礎的存取權,並可透過設定角色,限制個別使用者可查看的 DAG,詳情請參閱「使用 Airflow UI 存取權控管」一文。
存取 Google Cloud CLI
如要透過 Google Cloud CLI 存取環境,外部身分必須執行下列操作:
- 使用外部身分登入 Google Cloud CLI。
- 執行
gcloud composer environments指令。
存取 Cloud Composer API
Cloud Composer API 可搭配外部身分使用,透過 OAuth 權杖等支援的驗證方法,管理所有 Managed Airflow 環境。
存取 Airflow REST API
您可以使用 OAuth 權杖等支援的驗證方法,透過外部身分端點存取 Airflow REST API。
如要取得環境的外部身分識別端點網址,請執行下列 Google Cloud CLI 指令:
gcloud composer environments describe ENVIRONMENT_NAME \
--location LOCATION \
--format="value(config.airflowByoidUri)"
更改項目:
- 將
ENVIRONMENT_NAME替換為環境的名稱。 - 將
LOCATION替換為環境所在的區域。
範例:
gcloud composer environments describe example-environment \
--location us-central1 \
--format="value(config.airflowByoidUri)"