Google Cloud と接続する
Google Cloud と組織の管理者が、クラウド操作用のサービスアカウントを接続します。 鍵ファイルを預けずに、承認済みの Compute Engine・Cloud SQL 手順書を実行するためのページです。
Actagate の設定を管理する権限と、Google Cloud 側でプール・プロバイダ・サービスアカウントの信頼と権限を設定する権限が必要です。プロジェクト ID、プロジェクト番号、プール ID、プロバイダ ID、サービスアカウントのメールアドレスを用意してください。
運用担当者が OIDC_ISSUER_BASE_URL と OIDC_SIGNING_KEYS を設定した配備を使います。発行者 URL が未設定なら、この接続先は保存できません。
顧客側の設定
Section titled “顧客側の設定”-
「クラウドアカウント」→「アカウントを追加」で「クラウド」を「Google Cloud」にし、「キー」とプロジェクト・プール・プロバイダの値を入力します。専用サービスアカウントのメールアドレスも入力すると、「設定用の gcloud コマンド」が実値で表示されます。
-
画面のコマンドで、
globalの Workload Identity プールと OIDC プロバイダを作成します。--issuer-uriは画面の「発行者 URL」、--attribute-mappingはgoogle.subject=assertion.subです。Actagate の発行者を信頼するプロバイダができます。 -
サービスアカウントに、次のメンバーだけを対象として
roles/iam.workloadIdentityUserを付与します。画面のコマンドはこの形式で生成されます。指定した組織・キーのサブジェクトがサービスアカウントを借用できる状態になります。principal://iam.googleapis.com/projects/<プロジェクト番号>/locations/global/workloadIdentityPools/<プールID>/subject/org:<組織ID>:account:<キー> -
専用サービスアカウントに、対象の Compute Engine インスタンスの読み取り・停止・起動、または Cloud SQL インスタンスの読み取り・バックアップ作成・操作結果の読み取りのうち、使う操作の権限を付けます。対象プロジェクト・リソースに範囲を絞ります。借用の権限と、リソースを操作する権限の両方がそろいます。
トークンの対象者(aud)は次の URL です。画面の「対象者」と一致させ、別の対象者を独自に設定しないでください。STS 交換の audience パラメーターは同じパスの //iam.googleapis.com/... 形式です。
https://iam.googleapis.com/projects/<プロジェクト番号>/locations/global/workloadIdentityPools/<プールID>/providers/<プロバイダID>読み取りを分ける場合は、もう1つのサービスアカウントにも同じサブジェクトの借用を許可します。プールとプロバイダは実行用と共通です。
Actagate 側の登録
Section titled “Actagate 側の登録”
-
次の値を入力します。プール・プロバイダと借用先を特定できます。
画面の項目 入れる値 キー 組織内で一意の接続先名。サブジェクトに使う クラウド Google Cloud プロジェクト ID 対象プロジェクトの ID プロジェクト番号 対象プロジェクトの番号 Workload Identity プール ID 作成したプールの ID プロバイダ ID 作成した OIDC プロバイダの ID 借用するサービスアカウント 専用サービスアカウントのメールアドレス 読み取り専用のサービスアカウント 任意。空欄なら実行用を使う 用途メモ 任意の説明 -
「許可する操作」で必要な操作を選び、「保存」を押します。認証方式は OIDC に固定され、
cloud_accountsに鍵ファイルなしで保存されます。「保存しました。」と表示されます。
[画面: クラウドアカウントの登録フォーム]
- 保存後に「疎通を確認する」を押します。OIDC トークンの STS 交換とサービスアカウントの借用に成功すると、「借用するサービスアカウント」と「有効期限」が表示されます。Compute Engine・Cloud SQL の権限はこのテストの対象外です。
- 表示された借用先を確認し、監査ログの
cloud_account.connection_testedを確認します。接続先のキーと成功・失敗が記録され、トークン本体は記録されません。
[画面: クラウドアカウントの疎通確認結果]
実行されること
Section titled “実行されること”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 付与をしたい | 手順書タスクとして担当者に割り当てる |
解決しない場合は、接続先のキーと画面のメッセージを組織の管理者・運用担当者に伝えてください。鍵ファイルやトークンを証跡に添付しないでください。