コンテンツにスキップ

Google Cloud と接続する

Google Cloud と組織の管理者が、クラウド操作用のサービスアカウントを接続します。 鍵ファイルを預けずに、承認済みの Compute Engine・Cloud SQL 手順書を実行するためのページです。

Actagate の設定を管理する権限と、Google Cloud 側でプール・プロバイダ・サービスアカウントの信頼と権限を設定する権限が必要です。プロジェクト ID、プロジェクト番号、プール ID、プロバイダ ID、サービスアカウントのメールアドレスを用意してください。

運用担当者が OIDC_ISSUER_BASE_URL と OIDC_SIGNING_KEYS を設定した配備を使います。発行者 URL が未設定なら、この接続先は保存できません。

  1. 「クラウドアカウント」→「アカウントを追加」で「クラウド」を「Google Cloud」にし、「キー」とプロジェクト・プール・プロバイダの値を入力します。専用サービスアカウントのメールアドレスも入力すると、「設定用の gcloud コマンド」が実値で表示されます。

  2. 画面のコマンドで、global の Workload Identity プールと OIDC プロバイダを作成します。--issuer-uri は画面の「発行者 URL」、--attribute-mapping は google.subject=assertion.sub です。Actagate の発行者を信頼するプロバイダができます。

  3. サービスアカウントに、次のメンバーだけを対象として roles/iam.workloadIdentityUser を付与します。画面のコマンドはこの形式で生成されます。指定した組織・キーのサブジェクトがサービスアカウントを借用できる状態になります。

    principal://iam.googleapis.com/projects/<プロジェクト番号>/locations/global/workloadIdentityPools/<プールID>/subject/org:<組織ID>:account:<キー>
  4. 専用サービスアカウントに、対象の Compute Engine インスタンスの読み取り・停止・起動、または Cloud SQL インスタンスの読み取り・バックアップ作成・操作結果の読み取りのうち、使う操作の権限を付けます。対象プロジェクト・リソースに範囲を絞ります。借用の権限と、リソースを操作する権限の両方がそろいます。

トークンの対象者(aud)は次の URL です。画面の「対象者」と一致させ、別の対象者を独自に設定しないでください。STS 交換の audience パラメーターは同じパスの //iam.googleapis.com/... 形式です。

https://iam.googleapis.com/projects/<プロジェクト番号>/locations/global/workloadIdentityPools/<プールID>/providers/<プロバイダID>

読み取りを分ける場合は、もう1つのサービスアカウントにも同じサブジェクトの借用を許可します。プールとプロバイダは実行用と共通です。

クラウドアカウント
「クラウドアカウント」で接続先を管理します。
  1. 次の値を入力します。プール・プロバイダと借用先を特定できます。

    画面の項目 入れる値
    キー 組織内で一意の接続先名。サブジェクトに使う
    クラウド Google Cloud
    プロジェクト ID 対象プロジェクトの ID
    プロジェクト番号 対象プロジェクトの番号
    Workload Identity プール ID 作成したプールの ID
    プロバイダ ID 作成した OIDC プロバイダの ID
    借用するサービスアカウント 専用サービスアカウントのメールアドレス
    読み取り専用のサービスアカウント 任意。空欄なら実行用を使う
    用途メモ 任意の説明
  2. 「許可する操作」で必要な操作を選び、「保存」を押します。認証方式は OIDC に固定され、cloud_accounts に鍵ファイルなしで保存されます。「保存しました。」と表示されます。

[画面: クラウドアカウントの登録フォーム]

  1. 保存後に「疎通を確認する」を押します。OIDC トークンの STS 交換とサービスアカウントの借用に成功すると、「借用するサービスアカウント」と「有効期限」が表示されます。Compute Engine・Cloud SQL の権限はこのテストの対象外です。
  2. 表示された借用先を確認し、監査ログの cloud_account.connection_tested を確認します。接続先のキーと成功・失敗が記録され、トークン本体は記録されません。

[画面: クラウドアカウントの疎通確認結果]

WIF で得た資格情報から、サービスアカウントの generateAccessToken を呼びます。スコープは https://www.googleapis.com/auth/cloud-platform、要求する有効期間は 900s です。このスコープだけではリソースの権限は増えません。

手順書の操作 実行される API
gcp.compute.get_instance Compute Engine インスタンスの GET
gcp.compute.stop_instance / gcp.compute.start_instance 同じインスタンスの /stop / /start への POST
gcp.sql.get_instance Cloud SQL インスタンスの GET
gcp.sql.create_backup 同じインスタンスの /backupRuns への POST。操作結果を GET で確認

この接続に Google グループへの追加や IAM 権限付与の操作はありません。Google Workspace の別executorも、現在対応するのは create_user によるユーザー作成だけです。グループ追加・権限付与は手順書タスクで扱ってください。

Google Workspace のユーザー作成は、運用担当者が実行環境に設定する GOOGLE_SA_KEY_JSON、GOOGLE_ADMIN_SUBJECT、GOOGLE_DOMAIN を使います。WIF 接続とは別で、https://www.googleapis.com/auth/admin.directory.user のスコープで Directory API の POST /admin/directory/v1/users を呼びます。サービスアカウント鍵をクラウドアカウント画面には登録できません。

状況 確認すること
保存できない・署名が使えない 運用担当者に発行者 URL と署名鍵の設定を依頼する
STS 交換が拒否される プロジェクト番号、プール、プロバイダ、発行者 URL、対象者を確認する
サービスアカウントを借用できない roles/iam.workloadIdentityUser のメンバーとサブジェクトを照合する
テスト成功後に操作が拒否される サービスアカウントのリソース操作権限と「許可する操作」を確認する
グループ追加や IAM 付与をしたい 手順書タスクとして担当者に割り当てる

解決しない場合は、接続先のキーと画面のメッセージを組織の管理者・運用担当者に伝えてください。鍵ファイルやトークンを証跡に添付しないでください。