G-gen の松尾です。当記事では、Google Cloud の Identity and Access Management(IAM)において、Gemini の支援のもと自然言語によって最適なロールを提案する IAM ロール選択ツールについて紹介します。

はじめに
IAM ロール選択ツールとは
当記事で紹介する IAM ロール選択ツールとは、Google Cloud の Identity and Access Management(以下、IAM)において、プリンシパルに付与したい権限の概要を自然言語で入力するだけで、Gemini が適切と判断した最も制限の厳しい事前定義ロールを提案する機能です。
入力された内容を生成 AI モデル Gemini が解釈して、タスクの実行に必要かつ最小限と判断される事前定義ロールの候補を提案します。候補を承認すると、提案された事前定義ロールがプリンシパルに付与されます。
この機能により、ロールの選定にかかる時間を短縮し、最小権限の原則に基づいた適切な運用を行いやすくなります。
2025年12月現在、当機能を使用するには、Google Cloud コンソールの言語設定を英語にする必要があります。言語設定が日本語だと、機能を使用するためのボタンが表示されません。
最小権限の原則とは
IAM は、誰(プリンシパル)がどのリソースに対して何をできるか(ロール、権限)を管理する重要なサービスです。
IAM の運用において、セキュリティを担保するために最も重要な考え方が最小権限の原則です。これは、ユーザーやサービスアカウントに対し、業務に必要な最小限の権限のみを付与し、過剰な権限を持たせないという原則です。
詳細は、以下の記事を参考にしてください。
この原則を遵守しようとすると、多数存在する事前定義ロールの中から、業務に必要かつ過不足のない最適なロールを見つけ出す必要がありますが、これには IAM に関する知識が必要になり、時間もかかります。これを解消するのが、IAM ロール選択ツールです。
注意点
2025年12月現在、IAM ロール選択ツールは英語にのみ対応しているため、Google Cloud コンソールの言語設定を英語にする必要があります。言語設定が日本語だと、機能を使用するためのボタンが表示されません。
また IAM ロール選択ツールは、2025年12月現在、Public Preview です。当記事で解説する内容は、一般提供(GA)の際に変更される可能性があります。
Preview 版のサービスや機能を使うに当たっての注意点は、以下の記事も参考にしてください。
前提事項
料金
IAM ロール選択ツールは、Gemini Cloud Assist の一部として提供されます。2025年12月現在、無料で使用できます。
- 参考 : Gemini Cloud Assist
必要な IAM ロール
IAM ロール選択ツールを使用するには、操作者の Google アカウントが、Google Cloud プロジェクトに対して以下の IAM ロールを事前に持っている必要があります。
| 操作 | IAM ロール |
|---|---|
| Gemini にロールの候補を質問する | Gemini for Google Cloud ユーザー(roles/cloudaicompanion.user) |
| 推奨されるロールを付与する | プロジェクト IAM 管理者(roles/resourcemanager.projectIamAdmin) |
制限事項
IAM ロール選択ツールには、以下の制限があります。
| 項目 | 内容 |
|---|---|
| 対応言語 | ・Google Cloud コンソールの言語設定を英語にする必要がある |
| 提案内容の対象範囲 | ・カスタムロールの作成や提案には対応していない ・複数のプリンシパルに対するロールの提案には対応していない |
| 権限付与の対象範囲 | ・ロール付与の対象はプロジェクトレベルのみ ・組織レベル、フォルダレベル、リソースレベルでは、ロール候補の提案のみ。提案された候補をメモして手動で付与する必要あり |
操作手順
Google Cloud コンソールで Gemini を使用してロールを提案させる手順を解説します。
1. Google Cloud コンソールで [IAM] ページに移動します。
2. 新しいプリンシパルにロールを付与したい場合は [Grant access] をクリックします。既にロールを持っているプリンシパルにロールを付与したい場合は [Edit principal] をクリックします。
3. [Help me choose roles] をクリックします。

4. テキストボックスにプリンシパルに許可したい内容のプロンプトを入力して [Suggest roles] をクリックします。

5. Gemini が適切と判断したロールを提案します。理由を確認するには、[Show reasoning] をクリックします。

6. 提案されたロールや理由を確認して適切だと判断した場合は、[Add roles] をクリックします。

7. 承認したロールが割り当てられていることを確認します。

ベストプラクティス
以下のようなベストプラクティスに沿ったプロンプトを入力することで、Gemini から正確なロールの提案を得やすくなります。
| ベストプラクティス | アンチパターン | 理由 |
|---|---|---|
| 「操作(動詞)」と「対象」を具体的にする。 例 : Compute Engine 仮想マシンインスタンスの起動、停止、再起動を行うロールが必要です。 |
「管理」「アクセス」等の曖昧な言葉。「仮想マシン」のような汎用的すぎる言葉を使う。 例 : 仮想マシンを管理する必要があります。 |
「管理」や「アクセス」などの言葉が指す範囲は曖昧であり、閲覧のみか、削除も含むか等を AI が判断できない。また「仮想マシン」は汎用的な言葉であり、どのサービスのリソースを指すのかが曖昧。 |
| 正式なサービス名やリソース名を使う。 例 : プロジェクトで Cloud Storage バケットを作成するには、どのロールが必要ですか? |
曖昧なリソース名を使う。 例 : プロジェクトでバケットを作成するには、どのロールが必要ですか? |
バケットは Cloud Storage の他にも、Firebase や Cloud Logging などでも使用される言葉であることから曖昧。 |
松尾 和哉 (記事一覧)
クラウドソリューション部
これまで主にAWSを活用する企業でインフラエンジニアとして従事していました。Google Cloudに魅力を感じてG-genにジョイン。アウトプットを経てコミュニティへの還元や自己研鑽をしたいと思っています。
