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