Cloud Composer 3 | Cloud Composer 2 | Cloud Composer�
本頁說明如何使用員工身分聯盟,設定 Cloud Composer 環境的使用者存取權。
Cloud Composer 中的員工身分聯盟簡介
員工身分聯盟可讓您使用外部識別資訊提供者 (IdP) 驗證工作團隊 (例如員工、合作夥伴和約聘人員等使用者群組) 並授權,讓使用者能透過 IAM 存取 Google Cloud 服務。如要進一步瞭解員工身分聯盟,請參閱「員工身分聯盟」。
如果專案中已設定員工身分聯盟,您可以透過下列方式存取環境:
- Google Cloud 控制台中的 Cloud Composer 頁面
- Airflow UI
- Google Cloud CLI,包括執行 Airflow CLI 指令
- Cloud Composer API
- Airflow REST API
事前準備
您不需要以任何特定方式設定環境,即可支援員工身分聯盟。Cloud Composer 3 中的所有 Airflow 建構版本都支援員工身分聯盟。
員工身分聯盟的 Cloud Storage 限制適用於環境的 bucket。具體來說,您必須在環境的值區中啟用統一值區層級存取權,外部身分才能將 DAG 和檔案上傳至這個值區。
從 Airflow 傳送的電子郵件只會包含 Google 帳戶的 Airflow UI 網址。由於外部身分只能透過外部身分的 Airflow UI 網址存取 Airflow UI,因此必須調整連結 (變更為外部身分的網址)。
Cloud Composer 不支援在輸入和輸出規則中使用第三方身分,以允許 Apache Airflow UI 作業。不過,您可以在傳入和傳出規則中使用
ANY_IDENTITY
身分類型,允許存取所有身分,包括第三方身分。如要進一步瞭解ANY_IDENTITY
身分類型,請參閱「輸入和輸出規則」。
使用員工身分聯盟設定環境存取權
本節說明如何設定外部身分存取 Cloud Composer 環境的權限。
設定識別資訊提供者
按照「設定員工身分聯盟」指南,為您的身分識別提供者設定員工身分聯盟。
將 IAM 角色授予外部身分
在 Identity and Access Management 中,將 IAM 角色授予外部身分集,讓他們存取及操作您的環境:
如需 Cloud Composer 專屬角色清單,請參閱授予使用者角色。舉例來說,環境使用者與 Storage 物件檢視者 (
composer.environmentAndStorageObjectViewer
) 角色可讓使用者查看環境、存取 Airflow UI、透過 DAG UI 查看及觸發 DAG,以及查看環境 buckets 中的物件。如要瞭解如何將這些角色指派給外部使用者,請參閱「將 IAM 角色授予主體」。
如要瞭解如何在 IAM 政策中表示外部身分,請參閱在 IAM 政策中表示工作團隊集區使用者。
確認新使用者在 Airflow UI 存取權控管中獲得正確的 Airflow 角色
Cloud Composer 處理外部身分 Airflow 使用者的方式,與處理 Google 帳戶使用者相同。系統會使用主體 ID,而非電子郵件地址。外部身分首次存取 Airflow UI 時,系統會自動在 Airflow 角色型存取權控管系統中,以預設角色註冊 Airflow 使用者。
在 Airflow UI 存取權控管中,確認新使用者是否獲得正確的 Airflow 角色。您可以採用兩種方法:
- 讓外部身分在首次存取 Airflow UI 後,取得預設角色。如有需要,Airflow 管理員使用者可以將這個角色變更為其他角色。
預先註冊外部身分,並新增 Airflow 使用者記錄,將使用者名稱和電子郵件欄位設為主要 ID,藉此設定一組必要角色。這樣一來,外部身分就會獲得您指派的角色,而不是預設角色。
在 Google Cloud 控制台中存取 Cloud Composer 頁面
Google Cloud 員工身分聯盟控制台可存取 Cloud Composer 頁面。
在 Workforce Identity Federation 控制台的「Composer」頁面中,您可以存取 UI,管理環境、Cloud Composer 記錄、監控和 DAG UI。 Google Cloud
聯合控制台中的所有 Airflow UI 連結,都會指向外部身分的 Airflow UI 存取點。
存取 Airflow UI
Cloud Composer 環境有兩個 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 權杖等支援的驗證方法,管理所有 Cloud Composer 環境。
存取 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)"