Google CloudのWorkload Identity Federationを設定する

Prev Next
This content is currently unavailable in Korean. You are viewing the default (Ja - 日本語) version.

概要

Workload Identity Federation (WIF) は、AWSなどの外部のIDプロバイダーから一時的な認証情報を取得し、Google Cloudのリソースにアクセスするための認証方式です。
Google CloudでWIFを設定することで、TROCCOにサービスアカウントのJSON Keyを保存することなく、Google Cloudのリソースにアクセスできるようになります。

接続情報の作成については、接続情報 - Google BigQueryを参照ください。

本ページでは、AWS環境からGoogle BigQueryにアクセスするためのWIFの設定手順を説明します。
なお、Workload Identity Federation機能自体は、他のIDプロバイダーでも利用可能です。

AWS側の設定

TROCCOが AWS環境から Google Cloudにアクセスするには、事前にAWS側でIAMを作成する必要があります。

ステップ1: Workload Identityプールの作成

Workload Identity Poolとは、外部のIDプロバイダーからのアクセスを管理するためのリソースです。
AWSプロバイダーを通じて、事前に作成したAWSの認証情報をGoogle Cloudで認識します。

  1. Google Cloud Console にログインします。
  2. プロジェクトを選択し、ナビゲーションメニューから IAMと管理 > Workload Identity 連携に移動します。
  3. プールを作成をクリックします。
  4. プールの名前と説明を入力し、続行をクリックします。
  5. プールにプロバイダを追加するで、以下の情報を入力します。
    • プロバイダの選択: AWSを選択します。
    • プロバイダ名: 任意の名称を入力します。
    • AWSアカウントID: 545668264778
  6. 保存をクリックし、プールを作成します。

ステップ2: Workload Identityプールへの権限付与

Google Cloud側での設定方法は、以下の2つのパターンがあります。

  • パターン1: サービスアカウント権限の借用
  • パターン2: データセット・テーブルにプリンシパルを追加

パターン1: サービスアカウント権限の借用

このパターンでは、AWSからGoogle Cloudのサービスアカウント権限を借用し、そのサービスアカウントの権限でBigQueryにアクセスします。

サービスアカウントの作成

WIF認証に利用するサービスアカウントを作成します。既存のサービスアカウントを利用する場合は、作成は不要です。
作成手順はGoogle CloudのJSON Keyを取得するを参照ください。

また、サービスアカウントに付与するロールについては接続情報 - Google BigQueryを参照ください。

Workload Identityプールの権限設定

  1. Google Cloud ConsoleでWorkload Identity 連携を開きます。
  2. 作成したWorkload Identityプールをクリックし、アクセスを許可をクリックします。
  3. サービス アカウントの権限借用を使用してアクセス権を付与するを選択します。
  4. 権限を借用するサービスアカウントを選択します。
  5. プリンシパルに以下の値を設定します。
    • 属性名: aws_role
    • 属性値: arn:aws:sts::545668264778:assumed-role/trocco-google-cloud-workload-identity
  6. 保存 をクリックします。
  7. プロバイダを選択し構成をダウンロードをクリックすると、構成ファイルがダウンロードされます。

パターン2: データセット・テーブルにプリンシパルを追加

このパターンでは、AWSから直接Google Cloudの権限でBigQueryにアクセスします。

IAM権限設定

  1. TROCCOからアクセスしたいBigQueryのデータセット・テーブルを開きます。
  2. 共有 > 権限を管理 をクリックします。
  3. プリンシパルを追加をクリックし、以下の情報を入力します。
    • 新しいプリンシパル: principalSet://iam.googleapis.com/projects/{プロジェクトナンバー}/locations/global/workloadIdentityPools/{プールID}/attribute.aws_role/arn:aws:sts::545668264778:assumed-role/trocco-google-cloud-workload-identity
  4. 必要なロールを選択します。接続情報 - Google BigQueryを参照ください。
  5. 保存 をクリックします。

構成ファイルのダウンロード

  1. Google Cloud Consoleで Workload Identity 連携に移動します。
  2. 設定したWorkload Identityプールをクリックし、アクセスを許可をクリックします。
  3. フェデレーション ID を使用してアクセス権を付与するを選択し、設定をダウンロードをクリックします。
  4. プロバイダを選択し構成をダウンロードをクリックします。

ステップ3: TROCCO側の設定

BigQueryの接続情報作成時にWorkload Identity Federationで作成を選択し、ダウンロードした構成ファイルの内容を入力します。
詳しくは、接続情報 - Google BigQueryを参照ください。