はじめに

Google Cloud の IAM 画面で、「自分で作った覚えのないアカウントがある」「特定のサービス用のアカウントが見当たらない」と感じたことはありませんか?

実は、Google Cloud の IAM 画面には、デフォルトの設定では表示されていない、Google が管理している特別なサービスアカウントが存在することがあります。この存在を知らないと、権限設定の全体像を正確に把握できなかったり、問題発生時の調査で少し戸惑ったりするかもしれません。

この記事では、そうした疑問の原因である Google 管理のサービスアカウント(サービスエージェント) と、それを IAM 画面に表示させる方法について、簡潔に解説します。

IAM の基本

IAM (Identity and Access Management) は、「誰(プリンシパル)」が「どのリソース」に対して「どんな操作(ロール)」をできるかを管理する仕組みです。この割り当てを定義するのが IAM ポリシーです。

権限付与の基本手順

Google Cloud コンソールで権限を付与する基本的な流れは以下の通りです。

  1. 「IAM と管理」>「IAM」ページを開く。
  2. 「アクセスを許可」をクリック。
  3. 権限を与えたい「プリンシパル」(ユーザーやサービスアカウントのメールアドレスなど)を入力。
  4. 付与する「ロール」(権限セット)を選択。
  5. 「保存」をクリック。

Google 管理サービスアカウント(サービスエージェント)とは?

一部の Google Cloud サービスは、有効化されると、そのサービスが動作するために必要な権限を持つ特別なサービスアカウントを自動的に作成します。これが「サービスエージェント」です。

  • 目的: サービスが他の Google Cloud リソースと連携するためなどに利用されます。
  • 管理: Google によって自動的に管理されます。
  • 形式: service-{プロジェクトID}@{サービス固有ID}.iam.gserviceaccount.com のようなメールアドレスを持ちます。

例えば、Cloud Run を使用すると、service-{プロジェクト番号}@serverless-robot-prod.iam.gserviceaccount.com のようなサービスエージェントが作成され、roles/run.serviceAgent ロールが付与されます。
重要なのは、これらのサービスエージェントは、デフォルトの IAM 画面には表示されないことが多い点です。

サービスエージェントを表示する方法

サービスエージェントを IAM 画面に表示させるには、以下の手順を実行します。

  1. IAM ページ右上の「フィルタ」欄の近くにある「Google 提供のロール付与を含む」チェックボックスを探します。
  2. このチェックボックスをオンにします。

検証:
Cloud Run のサービスエージェントであるserverless-robot-prod.iam.gserviceaccount.com を検索してみます。
* チェックボックス OFF (デフォルト): Croud Run のサービスエージェントが表示されません。

* チェックボックス ON: Cloud Run のサービスエージェントが表示されます。

このチェックボックスをオンにすることで、プロジェクトに存在するすべてのプリンシパルと権限(Google が管理するものを含む)の全体像を確認できます。

まとめ

  • Google Cloud には Google 管理のサービスエージェントが存在する。
  • これらは通常、IAM 画面に表示されない
  • Google 提供のロール付与を含む」チェックボックスで表示可能になる。
  • 権限の全体像把握や問題調査に活用できる。

IAM を利用する際は、サービスエージェントの存在も念頭に置きつつ、常に「最小権限の原則」を意識して、安全な権限管理を行いましょう。

サービスエージェントについて
https://cloud.google.com/iam/docs/service-account-types?hl=ja#service-agents