使用員工身分聯盟存取環境

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

事前準備

  • 從 2.1.11 版開始建立的所有新 Cloud Composer 環境,以及 Airflow 2.4.3 版,都支援 Workforce Identity Federation。您不需要以任何特定方式設定環境,即可支援員工身分聯盟。

  • 在 2.1.11 版和 Airflow 2.4.3 版推出前建立的環境,如果升級至新版,就無法支援 Workforce Identity Federation。您可以檢查環境是否支援員工身分聯盟

  • Workforce Identity Federation 的 Cloud Storage 限制適用於環境的值區。具體來說,您必須在環境的值區中啟用統一值區層級存取權,讓外部身分將 DAG 和檔案上傳到這個值區。

  • 透過 Airflow 傳送的電子郵件只會包含 Google 帳戶的 Airflow UI 網址。由於外部身分只能透過外部身分專用的 Airflow UI 網址存取 Airflow UI,因此必須調整連結 (變更為外部身分專用的網址)。

透過 Workforce Identity Federation 設定環境存取權

本節說明如何設定外部身分存取 Cloud Composer 環境的步驟。

設定識別資訊提供者

請按照「設定員工身分聯盟」指南的說明,為識別資訊提供者設定員工身分聯盟。

將 IAM 角色授予外部身分

在身分與存取權管理中,將 IAM 角色授予外部身分組合,讓這些身分可以存取您的環境並與之互動:

確認新使用者在 Airflow UI 存取權控管中獲得正確的 Airflow 角色

Cloud Composer 會以與 Google 帳戶使用者相同的方式處理外部身分的 Airflow 使用者。使用主要 ID 而非電子郵件地址。外部身分識別資訊首次存取 Airflow UI 時,系統會自動為 Airflow 使用者註冊 Airflow 角色型存取權控管機制,並指派預設角色

請確認新使用者在 Airflow UI 存取權控管中獲得正確的 Airflow 角色。您可以採用兩種方法:

  • 讓外部身分首次存取 Airflow UI 後,即可獲得預設角色。如有需要,Airflow 管理員使用者可以將這個角色變更為其他角色。
  • 預先註冊外部身分,並設定一組必要角色,方法是新增 Airflow 使用者記錄,並將使用者名稱和電子郵件欄位設為主要 ID。如此一來,外部身分就會取得您指派給他們的角色,而非預設角色。

確認環境是否支援員工身分聯盟

如要確認環境是否支援 Workforce Identity Federation,請執行下列 Google Cloud CLI 指令。如果輸出內容顯示 URI,表示您的環境支援 Workforce Identity Federation。

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)"

在 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 存取點。

版本低於 2.1.11 的環境,或 Airflow 版本低於 2.4.3 的環境,其 Airflow UI 連結可能會標示為「Not available」。這表示這個環境不支援 Airflow UI 中的 Workforce Identity Federation 使用者。這個環境的 Airflow UI 僅可透過 Google 帳戶存取。

存取 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 存取環境,外部身分必須執行以下操作:

  1. 使用外部身分登入 Google Cloud CLI。
  2. 執行 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)"

後續步驟