Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
このページでは、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
- Google Cloud CLI(Airflow 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 連携を使用して環境へのアクセスを設定する
このセクションでは、外部 ID が Cloud Composer 環境にアクセスできるように構成する手順について説明します。
ID プロバイダの設定
Workforce Identity 連携を構成するガイドに沿って、ID プロバイダの Workforce Identity 連携を構成します。
外部 ID に IAM ロールを付与する
Identity and Access Management で、IAM ロールを一連の外部 ID に付与して、環境にアクセスして操作できるようにします。
Cloud Composer に固有のロールの一覧については、ユーザーにロールを付与するをご覧ください。たとえば、環境ユーザーとストレージ オブジェクト閲覧者(
composer.environmentAndStorageObjectViewer
)ロールでは、ユーザーが環境の表示、Airflow UI へのアクセス、DAG UI からの DAG の表示とトリガー、環境バケット内のオブジェクトを表示できるようにします。これらのロールを外部ユーザーに割り当てる手順については、IAM ロールをプリンシパルに付与するをご覧ください。
IAM ポリシーで外部 ID を表す形式については、IAM ポリシーで Workforce プール ユーザーを表すをご覧ください。
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 環境には、Google アカウント用と外部 ID 用の 2 つの Airflow UI URL があります。外部 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 が次の操作を行う必要があります。
- 外部 ID を使用して Google Cloud CLI でログインします。
gcloud composer environments
コマンドを実行する。
Cloud Composer API にアクセスする
Cloud Composer API は、OAuth トークンなどのサポートされている認証方式で、外部 ID を使いすべての Cloud Composer 環境を管理するために使用できます。
Airflow REST API にアクセスする
Airflow REST API は、外部 ID のエンドポイントにおいて、OAuth トークンなどのサポートされている認証方式で使用できます。
環境の外部 ID 用エンドポイントの URL を取得するには、次の 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)"