【アップデート】IAMロールピッカーにおけるGeminiアシスタント機能がGAされました
はじめに
こんにちは。
クラウド事業本部コンサルティング部の渡邉です。
2026年3月31日に IAMロールピッカーにおけるGeminiアシスト機能がGA(一般提供) となりました。
IAMロールピッカーは、Google Cloudコンソール上でプリンシパルにロールを付与する際に、Geminiに「どのロールを付与すべきか」を自然言語で質問し、最小権限の事前定義ロールを提案してもらえる機能になります。2025年7月にPreviewとして提供開始され、約8ヶ月でのGAになりました。
今回は、IAMロールピッカーのGeminiアシスト機能の概要と、実際に使ってみた内容を紹介します。
IAMロール選定の課題
Google CloudのIAMには数千の権限と数百の事前定義ロールが存在します。適切なロールを見つけるには、従来は以下のような方法が必要でした。
- IAMロールと権限のリファレンスを検索する
- Google Cloudコンソールのロールページでフィルタリングする
- IAM Recommenderの推奨事項を確認する
などなどです。特に「このユーザーにCloud Storageバケットの読み取りだけさせたいが、削除はさせたくない」といった要件を満たす最小権限のロールを特定するには、権限の一覧を1つずつ確認する必要があったりカスタムロールを付与したり等調査の工数がかかっていたかと思います。
Geminiアシスト機能とは
IAMロールピッカーのGeminiアシストでは、実行したいアクションとリソースを自然言語で記述すると、Geminiが最小権限の事前定義ロールを提案してくれる便利な機能になっています。
主な特徴
- 自然言語での質問: Geminiを介するので、自然言語による質問が可能です。例えば「Cloud Storageバケットからオブジェクトをダウンロードしたい」のように、やりたいことを自然言語で問い合わせることができます。
- 最小権限の原則に基づく提案: Geminiが適切と判断した最も権限の少ない事前定義ロールを提案してくれます。
- 推論の表示: なぜそのロールが提案されたかの理由を「Show reasoning」で確認可能です。
- プロンプトの修正: 提案が適切でない場合、プロンプトを編集して再提案を依頼可能です。
- プロジェクトレベルのロールはそのまま付与可能: 提案されたロールがプロジェクトレベルであれば、IAMロールピッカーから直接付与できます。
対応できないこと
- カスタムロールの提案(Gemini Cloud Assistのチャットパネルでは可能)
- 複数プリンシパルに対する一括提案
- 組織やフォルダ、リソースレベルへのIAMロールの付与に関してはIAMロールピッカーから直接付与できません。
前提条件
コンソールの言語設定が日本語の場合は、IAMロールピッカーにおけるGeminiアシスト機能を利用できるボタンの表示ができません。

コンソールの言語設定が日本語
コンソールの言語設定が英語の場合は、IAMロールピッカーにおけるGeminiアシスト機能を利用できるボタンの表示されます。

コンソールの言語設定が英語
必要なIAMロール
IAMロールピッカーを利用するには、以下のロールが必要です。
| ロール | 説明 |
|---|---|
roles/resourcemanager.projectIamAdmin(プロジェクトIAM管理者) |
IAMロールピッカーの利用に必要 |
このロールには以下の権限が含まれます。
resourcemanager.projects.getresourcemanager.projects.getIamPolicyresourcemanager.projects.setIamPolicy
Gemini Cloud Assistの有効化
IAMロールピッカーのGeminiアシストを利用するには、プロジェクトでGemini Cloud Assistが有効化されている必要があります。Gemini Cloud Assistnについては無料で利用することができます。
# Gemini Cloud Assist APIの有効化
gcloud services enable geminicloudassist.googleapis.com \
--project=${GOOGLE_CLOUD_PROJECT}
# ユーザーにGemini Cloud Assistユーザーロールを付与
gcloud projects add-iam-policy-binding PROJECT_ID \
--member=user:USER_EMAIL \
--role=roles/geminicloudassist.user
# 推奨: Recommender Viewerロールの付与
gcloud projects add-iam-policy-binding PROJECT_ID \
--member=user:USER_EMAIL \
--role=roles/recommender.viewer
IAMロールピッカーのGeminiアシストを使ってみる
ここからは、実際にIAMロールピッカーを使ってGeminiにロールを提案してもらう手順を見ていきます。
Step 1: IAMページにアクセス
Google Cloudコンソールで、IAMページ(IAM & Admin > IAM)にアクセスし、対象のプロジェクトを選択します。

Step 2: プリンシパルを選択
ロールを付与したいプリンシパルを選択します。
- 既存のプリンシパル: プリンシパルの行にある「Edit principal」(鉛筆アイコン)をクリック
- 新規プリンシパル: 「Grant Access」をクリックし、プリンシパルの識別子(例:
user@example.com)を入力
今回は新規のプリンシパル(サービスアカウント)に対して、権限を付与するケースで検証してみます。
Step 3: 「Help me choose roles」をクリック
ロール選択UIで「Help me choose roles」ボタンをクリックすると、IAMロールピッカーのダイアログが表示されます。


Step 4: やりたいことを自然言語で記述
プロンプト入力欄に、プリンシパルに実行させたいアクションとリソースを記述します。
今回は、以下で入力してみました。
Cloud Storageのオブジェクトへの読み取りを実現するにはどのロールが必要でしょうか?

Step 5: 提案を確認
「Suggest roles」をクリックすると、数秒待ったのち、Geminiが最小権限のロールを提案します。

今回はStorage Object Viewerロールを提案してくれました。

「Show reasoning」をクリックすると、なぜそのロールが提案されたかの理由を確認できます。
以下に提案理由の全文を記載しておきます。
内容を確認すると、以下のことが確認できました。
- 結論
- なぜそのロールを提案したのかその理由
- ほかに提案しようとしていたロールの候補
The recommended role, roles/storage.objectViewer, precisely grants the necessary permission to read objects from Cloud Storage, ensuring the Cloud User can perform their workflow securely and efficiently.
Reason for Recommending Role(s)
Based on your request, here is a detailed breakdown of why each role is recommended for Cloud User:
roles/storage.objectViewer:
Why: This role is specifically designed to grant read access to Cloud Storage objects. It includes the storage.objects.get permission, which is exactly what the Cloud User needs to retrieve objects from a bucket without granting any unnecessary write or administrative privileges. This aligns perfectly with the principle of least privilege.
Where to apply: To ensure fine-grained access control, this role should be applied at the specific Cloud Storage bucket where the user needs to read objects. Alternatively, if the user requires read access to all buckets within a project, it can be applied at the project level.
Recommendation details are below.
Personas Identified
Cloud User (Primary): The user who wants to read objects in Cloud Storage.
Task Breakdown
Here, we break down the workflow into a series of tasks. For each task, we list the specific permissions required.
Cloud User (Primary)
Task 1 - Read Object: Retrieve an object from a Cloud Storage bucket.
Permission needed: storage.objects.get on the storage.objects
Role Recommendation Options
Here's a comparison of the top role choices for your request:
Option 1 (roles/storage.objectViewer):
Score: 0.90
Overall Assessment: This option provides the most secure and semantically appropriate role for reading Cloud Storage objects, adhering strictly to the principle of least privilege.
Why this choice?: It grants precisely the storage.objects.get permission needed without over-granting, ensuring a tight security posture and excellent semantic fit.
Option 2 (roles/storage.legacyObjectReader):
Score: 0.80
Overall Assessment: This is a viable alternative that also covers the required permission, though it is a legacy role.
Why this choice?: It directly provides the storage.objects.get permission, offering a straightforward solution, but objectViewer is generally preferred for new grants.
Option 3 (roles/storage.annotationGeneratorService):
Score: 0.70
Overall Assessment: While it covers the necessary read permission, this role includes additional data write permissions that are not required for simply reading objects, making it less ideal for least privilege.
Why this choice?: It covers the storage.objects.get permission, but its broader scope makes it less suitable than objectViewer for this specific read-only task.
Intent Annotated
Original Intent: Cloud Storageのオブジェクトへの読み取りを実現するにはどのロールが必要でしょうか?
Annotated Intent: Cloud Storage [storage]のオブジェクト [storage.objects]への読み取り [storage.objects.get]を実現するにはどのロールが必要でしょうか?
Mapping Assessment: The intent clearly maps to the storage service and the objects resource type. The action "読み取り" (read) directly translates to the get verb for storage.objects. This mapping is straightforward and highly confident.
- 提案が適切でない場合は「Edit」をクリックしてプロンプトを修正し、「Update」で再提案を依頼できます。
Step 6: ロールを付与
提案内容に問題がなければ「Add roles」をクリックし、必要に応じてCondition(条件)を追加した上で「Save」をクリックします。

プロンプト作成のベストプラクティス
Geminiからより正確な提案を得るために、以下のポイントを押さえてプロンプトを作成しましょう。
- ユースケースを具体的に記述する
- 公式名称を使用する
詳細なプロンプト例やベストプラクティスに関しては、公式ドキュメントに記載があるのでチェックしていただければと思います。
注意事項
- Geminiの提案は参考情報程度になります。付与する前に、IAMロールと権限のリファレンスで提案されたロールの権限内容を確認することを推奨します。
- Geminiは事実に基づいているように見えて誤った出力を生成する可能性があります。提案をそのまま鵜呑みにせず、必ず検証してください。
- カスタムロールの提案はIAMロールピッカーでは対応していません。カスタムロールの提案が必要な場合は、Gemini Cloud Assistのチャットパネルを利用してください。
まとめ
IAMロールピッカーのGeminiアシスト機能がGAとなり、Google Cloudコンソール上で自然言語を使って最小権限の事前定義ロールを簡単に見つけられるようになりました。
これまで数百の事前定義ロールから適切なものを探すのは工数がかかる作業でしたが、この機能を使うことで「やりたいこと」をGeminiに問い合わせることで最小権限のロールを提案してもらえることができます。Google CloudのIAMに不慣れなメンバーや、新しいサービスのロールを調べたい場合に便利な機能だと思います。
コンソールの言語設定を英語にする必要があるのが、少々手間なのでGAになったこの機会に日本語の言語設定も対応してほしいです。
本記事がどなたかのお役に立てれば幸いです。
以上、クラウド事業本部コンサルティング部の渡邉でした!






