2026.03.22 XIMIX 江口
Google Cloudで新しいAPIを有効化した際、背後で自動的に作成される「Google管理のサービスアカウント(サービスエージェント)」をご存知でしょうか?
Compute EngineやCloud Buildなど、多くのサービスは専用のアイデンティティを使用してリソースにアクセスします。通常、これらは「サービスを初めて利用した時」や「APIを有効化した時」に自動生成されます。
Compute Engineの場合
service-<プロジェクト番号>@compute-system.iam.gserviceaccount.com
Cloud Buildの場合
service-<プロジェクト番号>@gcp-sa-cloudbuild.iam.gserviceaccount.com
などです。これらのサービスアカウントは、サービスを運用するために必要な権限があらかじめ付与された状態で払い出されます。
以下の方法で、サービスエージェントを明示的に作成(プロビジョニング)することが可能です。
コマンドの場合
gcloud beta services identity create \
--service=<関連するAPI> \
--project=<プロジェクトID> # または --folder=<フォルダID> / --organization=<組織ID>
Terraformの場合
data "google_project" "project" {}
resource "google_project_service_identity" "hc_sa" {
provider = google-beta
project = data.google_project.project.project_id
service = "healthcare.googleapis.com"
}
サービスによってはプロジェクト単位ではなく、上位階層のフォルダや組織レベルで動作するものもありますが、このコマンド(およびリソース)はそれらにも対応しています。
サービスエージェントが作成されれば、通常のサービスアカウントと同様にIAMロールの付与が可能です。VPC SC環境や、特定リソース(KMSやGCSバケット等)へのアクセスが必要な場合は、これを利用して必要な権限をあらかじめ付与していきましょう。
Google Cloud、Google Workspaceに関する お問い合わせはこちら
