はじめに
Google Cloud の IAM 画面で、「自分で作った覚えのないアカウントがある」「特定のサービス用のアカウントが見当たらない」と感じたことはありませんか?
実は、Google Cloud の IAM 画面には、デフォルトの設定では表示されていない、Google が管理している特別なサービスアカウントが存在することがあります。この存在を知らないと、権限設定の全体像を正確に把握できなかったり、問題発生時の調査で少し戸惑ったりするかもしれません。
この記事では、そうした疑問の原因である Google 管理のサービスアカウント(サービスエージェント) と、それを IAM 画面に表示させる方法について、簡潔に解説します。
IAM の基本
IAM (Identity and Access Management) は、「誰(プリンシパル)」が「どのリソース」に対して「どんな操作(ロール)」をできるかを管理する仕組みです。この割り当てを定義するのが IAM ポリシーです。
権限付与の基本手順
Google Cloud コンソールで権限を付与する基本的な流れは以下の通りです。
- 「IAM と管理」>「IAM」ページを開く。
- 「アクセスを許可」をクリック。
- 権限を与えたい「プリンシパル」(ユーザーやサービスアカウントのメールアドレスなど)を入力。
- 付与する「ロール」(権限セット)を選択。
- 「保存」をクリック。
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 画面に表示させるには、以下の手順を実行します。
- IAM ページ右上の「フィルタ」欄の近くにある「Google 提供のロール付与を含む」チェックボックスを探します。
- このチェックボックスをオンにします。
検証:
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