Workforce Identity 連携を使用して環境にアクセスする

Cloud Composer 1 | Cloud Composer 2

このページでは、Workforce Identity 連携を使用して Cloud Composer 環境へのユーザー アクセスを構成する方法について説明します。

Cloud Composer での Workforce Identity 連携について

Workforce Identity 連携では、外部 ID プロバイダ(IdP)を使用して、労働者(従業員、パートナー、請負業者などのユーザー グループ)を IAM で認証および認可し、ユーザーが Google Cloud サービスにアクセスできるようにします。Workforce Identity 連携の詳細については、Workforce Identity 連携をご覧ください。

プロジェクトで Workforce Identity 連携が構成されている場合、次の方法で環境にアクセスできます。

  • Google Cloud コンソールの [Cloud Composer] ページ
  • Airflow UI
  • Airflow CLI コマンドを含む Google Cloud CLI
  • Cloud Composer API
  • Airflow REST API

始める前に

  • バージョン 2.1.11 と Airflow バージョン 2.4.3 以降に作成された新しい Cloud Composer 環境は、すべて Workforce Identity 連携をサポートしています。Workforce Identity 連携をサポートするために、環境を特定の方法で構成する必要はありません。

  • バージョン 2.1.11 および Airflow バージョン 2.4.3 より前に作成され、新しいバージョンにアップグレードされた環境は、Workforce Identity 連携をサポートしていません。お使いの環境が Workforce Identity 連携をサポートしているかどうかは、こちらの方法で確認できます。

  • Workforce Identity 連携の Cloud Storage の制限は、環境のバケットに適用されます。特に、外部 ID が DAG とファイルをこのバケットにアップロードするには、環境のバケットで均一なバケットレベルのアクセスを有効にする必要があります。

  • Airflow から送信されたメールには、Google アカウントの Airflow UI URL しか含まれていません。外部 ID は、外部 ID の Airflow UI URL からしか Airflow UI にアクセスできないため、リンクを調整する(外部 ID の URL に変更する)必要があります。

Workforce Identity 連携を使用して環境へのアクセスを設定する

このセクションでは、Cloud Composer 環境への外部 ID のアクセスを構成する手順について説明します。

ID プロバイダの設定

Workforce Identity 連携の構成ガイドに沿って、ID プロバイダの Workforce Identity 連携を構成します。

外部 ID に IAM ロールを付与する

Identity and Access Management で、IAM ロールを一連の外部 ID に付与して、環境にアクセスして操作できるようにします。

Airflow UI アクセス制御で、新しいユーザーが正しい Airflow のロールを受け取ることを確認する

Cloud Composer は、外部 ID の Airflow ユーザーを Google アカウント ユーザーの場合と同じ方法で扱います。メールアドレスの代わりに、プリンシパル ID が使用されます。外部 ID が初めて Airflow UI にアクセスすると、Airflow ユーザーがデフォルトのロールで Airflow のロールベースのアクセス制御システムに自動的に登録されます。

Airflow UI アクセス制御で、新しいユーザーが正しく Airflow のロールを受信していることを確認します。この場合は、次のどちらかを行ってください。

  • 外部 ID が Airflow UI に初めてアクセスした後にデフォルトのロールを受信できるようにします。必要に応じて、Airflow 管理者ユーザーは、このロールを別のロールに変更できます。
  • ユーザー名とメールのフィールドをプリンシパル ID に設定して、Airflow ユーザー レコードを追加することで、必要な一連のロールを使用して外部 ID を事前登録します。このようにして、外部 ID はデフォルトのロールではなく、割り当てたロールを取得します。

環境が Workforce Identity 連携をサポートしているかどうかを確認する

ご利用の環境が Workforce Identity 連携をサポートしているかどうかを確認するには、次の Google Cloud CLI コマンドを実行します。出力に URI が表示されている場合、お使いの環境では Workforce Identity 連携がサポートされています。

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 連携コンソールは、Cloud Composer ページへのアクセスを提供します。

Google Cloud Workforce Identity 連携コンソールの [Composer] ページから、環境、Cloud Composer ログ、モニタリング、DAG UI を管理するための UI にアクセスできます。

連携コンソールの Airflow UI へのすべてのリンクは、外部 ID の Airflow UI アクセス ポイントを指します。

2.1.11 より前のバージョンまたは 2.4.3 より前の Airflow バージョンの環境では、Airflow UI リンクが「利用不可」とマークされる可能性があります。これは、この環境が Airflow UI で Workforce Identity 連携ユーザーをサポートしていないことを示しています。この環境の Airflow UI には、Google アカウントでのみアクセスできます。

Airflow UI にアクセスする

Cloud Composer 環境には、Airflow UI 用に 2 つの URL があります。1 つは Google アカウント用、もう 1 つは外部 ID 用です。外部 ID は、外部 ID の URL を介して Airflow UI にアクセスする必要があります。

  • 外部 ID の URL は https://<UNIQUE_ID>.composer.byoid.googleusercontent.com です。

  • Google アカウントの URL は https://<UNIQUE_ID>.composer.googleusercontent.com です。

外部 ID で認証されたユーザーだけが、外部 ID の URL にアクセスできます。ユーザーがログインしていない状態で外部 ID の URL にアクセスすると、まず Workforce プール プロバイダ名を指定する認証ポータルにリダイレクトされます。つづいて、ログインのために ID プロバイダにリダイレクトされ、最終的に環境の Airflow UI にリダイレクトされます。

Google Cloud コンソールで DAG UI にアクセスする

DAG UI は、連携コンソールの一部として外部 ID ユーザーが使用できます。アクセスは、IAM ポリシーを使用して管理できます。

完全な Workforce Identity 連携サポートがある環境での Airflow のロールベースのアクセスも考慮され、Airflow UI アクセス制御の使用で説明しているように、ロールを設定することで個々のユーザーに表示される DAG を制限するために使用できます。

Google Cloud CLI にアクセスする

Google Cloud CLI を使用して環境にアクセスするには、外部 ID で次の操作を行う必要があります。

  1. 外部 ID を使用して Google Cloud CLI でログインする。
  2. gcloud composer environments コマンドを実行する。

Cloud Composer API にアクセスする

Cloud Composer API は、OAuth トークンなどのサポートされている認証方式で、外部 ID を使いすべての Composer 環境を管理するために使用できます。

Airflow REST API

Airflow REST API は、外部 ID のエンドポイントにおいて、OAuth トークンなどのサポートされている認証方式で使用できます。

環境の外部 ID 用エンドポイントの URL を取得するには、環境が Workforce Identity 連携をサポートしているかどうかを確認するセクションで示したように、gcloud composer environments describe コマンドを使用します。

次のステップ