🦁

Googleで管理されているサービスアカウントについて

に公開

本記事は2025年04月07日に執筆したものです。所属会社のTech Blogプラットフォーム移行に伴い、当該記事を他プラットフォームから移行しました。

はじめに

どうも、@to_fmakです。Google Cloudの一部のサービスでは、サービス利用時にGoogleが管理するデフォルトのサービスアカウントが作成されることがあります。これらのサービスアカウントは、一般的に「サービス エージェント」とも呼ばれ、必要な権限を付与することで利用することができます。今回は、Googleが管理するサービスアカウント(サービス エージェント)の確認方法と、権限を付与する方法について簡単に共有したいと思います。

管理コンソールの表示について

IAMの管理コンソールでは、ユーザが作ったもの以外はデフォルトでは非表示になっています。表示するには、「Google 提供のロール付与を含める」にチェックを入れる必要があります。

Screenshot 2025-04-03 at 13.54.53.png

また、CLIでサービスアカウントを含めたIAMポリシーを確認する場合、以下のコマンドが使用できます。

gcloud projects get-iam-policy <PROJECT_ID>

権限付与について

管理コンソールから権限を付与する場合、以下の手順で設定できます。

  • IAM画面にアクセスし、「アクセスを許可」をクリック
  • 「プリンシパルの追加」で対象のサービスアカウントを入力
  • 適切なロールを選択し、「保存」をクリック

または、既存のサービスアカウントの権限を変更する場合は、対象プリンシパルの横にある「編集」アイコンをクリックして、ロールを追加・削除できます。

CLIで権限を付与・削除する場合、以下のコマンドを使用します。

# ロールの追加
gcloud projects add-iam-policy-binding <PROJECT_ID> --member='serviceAccount:xxxxx@xxxxx.iam.gserviceaccount.com' --role=<ROLE_NAME>

# ロールの削除
gcloud projects remove-iam-policy-binding <PROJECT_ID> --member='serviceAccount:xxxxx@xxxxx.iam.gserviceaccount.com' --role=<ROLE_NAME>

また、Terraformでロール割り当てを行うことも可能です。以下は一例です。

resource "google_project_iam_member" "example" {
  project = "<PROJECT_ID>"
  member  = "serviceAccount:xxxxx@xxxxx.iam.gserviceaccount.com"
  role    = "<ROLE_NAME>"
}

参考URL

https://cloud.google.com/iam/docs/service-account-types?hl=ja&_gl=1*101q18r*_ga*MTg0NDcxNjg2Ni4xNzI1OTI5MDk3*_ga_WH2QY8WWF5*MTc0MzY1NDcwNC4yMDguMS4xNzQzNjU3MzIyLjU3LjAuMA..#google-managed_service_accounts

https://cloud.google.com/iam/docs?hl=ja

https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/google_project_iam

エンジニア募集中

Gakken LEAPは日々、教育のアップデートに取り組んでいます。
興味をお持ちいただいた方は、採用サイトをチェックしてみてください。

Gakken LEAP Developers

Discussion