【初心者向け】Google Cloud IAMとは?Geminiの権限付与を例に解説
大平 恵美
大平 恵美
2025-10-01
Google Cloudのセキュリティの要であるIAM(Identity and Access Management)について、「誰が・どのリソースに・何ができるか」という基本概念から、最小権限の原則の重要性までを分かりやすく解説します。具体的な例として、AIアシスタント「Gemini」の利用に必要な「Gemini for Google Cloud ユーザー」ロールで何ができるようになるかまでを掘り下げ、IAMの理論と実践を繋げます。
Gemini:

Google CloudのIAM権限とは?

一言でいうと、「誰が」「どのGoogle Cloudのサービス(リソース)に対して」「何をしていいか」を設定するための仕組みです。 IAMは Identity and Access Management の略です。 日本語では「IDとアクセス管理」や「アイデンティティとアクセス管理」と訳されます。

会社のオフィスセキュリティに例えると分かりやすいかもしれません。

  • 誰が (Who): 社員、部署、警備ロボットなど (プリンシパルと呼ばれます)
  • どのリソースに (What resource): 社長室、サーバールーム、特定のデスクなど (Google Cloudのリソース。VMインスタンスやストレージなど)
  • 何をしていいか (What can they do): 「入室のみ許可」「電気のオンオフOK」「PCの利用OK」といった権限 (ロールと呼ばれます)

IAMは、この「誰が」「どこに」「何をできる」というルール(IAMポリシーと呼ばれます)をクラウド上で細かく設定し、管理するためのサービスです。


なんでIAMがそんなに重要?

IAMが重要な最大の理由はセキュリティです。もしIAMがなければ、プロジェクトに参加している人全員が何でもできてしまいます。例えば、新人のエンジニアが間違って本番環境のデータベースを消してしまったり、悪意のある人が情報を盗み出したりするリスクが高まります。

そこでIAMを使い、「最小権限の原則」 という考え方で権限を管理します。これは、「その人が仕事をする上で、本当に必要な最低限の権限だけを与える」というセキュリティの基本ルールです。

例えば、

  • Webサイトのデザイナーさんには…
    • Webサイトの画像が入っているCloud Storageバケットへのファイルのアップロードと閲覧権限だけを渡す。データベースを触る権限は渡さない。
  • データ分析担当の人には…
    • BigQueryのデータセットに対するデータの閲覧・分析(クエリ実行)権限だけを渡す。サーバーを起動したり停止したりする権限は渡さない。
  • サーバーを監視するプログラム(サービスアカウント)には…
    • VMインスタンスの状態を監視(モニタリング)する権限だけを渡す。

このように役割に応じて権限を細かく設定することで、操作ミスや不正アクセスのリスクを大幅に減らし、クラウド環境を安全に保つことができるのです。


IAMの主な登場人物

Google CloudのIAMでは、主に以下の3つの要素を組み合わせて権限を管理します。

  1. プリンシパル (Principal) - 誰が

    • 権限を付与される対象です。
    • Googleアカウント: xxx@gmail.com のような個人のアカウント。
    • サービスアカウント: 人ではなく、アプリケーションやVMインスタンスなどが使うためのアカウント。
    • Googleグループ: 複数のGoogleアカウントをまとめたグループ(例: developers@example.com)。
    • Cloud Identityドメイン: 組織全体。
  2. ロール (Role) - 何ができる

    • 「権限」の集まりです。「閲覧者」「編集者」「ストレージの管理者」のように、役割に応じた権限がセットになっています。
    • 基本ロール: オーナー編集者閲覧者といった昔からある強力なロール。便利ですが権限が広すぎるため、本番環境での利用は推奨されません。
    • 事前定義ロール: 「Compute Engineのネットワーク管理者 (roles/compute.networkAdmin)」のように、サービスごと・用途ごとにGoogleが予め用意している細かいロール。通常はこれを使います。
    • カスタムロール: 自分で必要な権限だけを集めて作成するオリジナルのロール。
  3. リソース (Resource) - 何に対して

    • 権限を適用する対象となるGoogle Cloudのサービスやコンポーネントです。
    • 組織 (Organization): 会社全体。
    • フォルダ (Folder): 部署やチーム単位。
    • プロジェクト (Project): アプリケーションやサービス単位の区切り。
    • 個別のリソース: VMインスタンス、Cloud Storageのバケット、BigQueryのデータセットなど、より細かい単位。

これらの要素を組み合わせて、「プリンシパルAは、リソースBに対して、ロールCの権限を持つ」という形で設定するのがIAMの基本です。

質問:

Gemini CLIを使うにあたりロール名が分からなかった。 「Gemini for Google Cloud」と入れることで権限が付与された。(2025年10月時点)

Gemini:

IAMのロールには、システムが内部で識別するための「ロールID」と、人間がコンソール画面などで見て分かりやすい「表示名(タイトル)」の2つがあります。

  • ロールID: roles/cloudaicompanion.user
  • 表示名(タイトル): Gemini for Google Cloud

この対応関係は、Google Cloudが公開している以下のドキュメントページで確認できます。

ソース(情報源):

  1. Google Cloud 公式ドキュメント: Gemini の IAM ロールと権限

    • このページには、Gemini (旧 Duet AI ) に関連するIAMロールが一覧で記載されています。ここに roles/cloudaicompanion.user の役割と、表示名が Gemini for Google Cloud であることが明記されています。
  2. Google Cloud 公式ドキュメント: IAM 事前定義ロールの表

    • Google Cloudのすべてのサービスにわたる、膨大な数の事前定義ロールが一覧になっています。この表の中でも roles/cloudaicompanion.user を探すと、そのタイトルが Gemini for Google Cloud であることを確認できます。

したがって、Google CloudコンソールのIAM画面で「Gemini for Google Cloud」と入力してロールを検索できるのは、GoogleがこのロールIDに対してその表示名を公式に割り当てているためです。

※補足

2025年10月現在、Google Cloudコンソール上での表示名は「Gemini for Google Cloud ユーザー」に更新されています。

以前は「Cloud AI Companion ユーザー」という表示名でしたが、Googleの製品ブランド名が「Duet AI」から「Gemini」へと変更されたことに伴い、IAMロールの表示名も更新されました。

  • ロールID (不変): roles/cloudaicompanion.user
  • 現在の表示名: Gemini for Google Cloud ユーザー (旧: Cloud AI Companion ユーザー)
質問:

Gemini for Google Cloudというロールを割り当てることで何ができる?

Gemini:

「Gemini for Google Cloud ユーザー」ロールを割り当てると、Google Cloudの様々なサービス上で**AIアシスタントとしてのGeminiを「利用する」**ことができるようになります。

具体的には、以下のような場所でGeminiが使えるようになります。


このロールで可能になること

  1. Google Cloud コンソールでの利用

    • コンソールの画面上でGeminiに質問し、GCPサービスの設定方法やトラブルシューティングに関するアドバイスを受け取れます。
    • 例えば、「このエラーの原因は何?」「GCSバケットの作成方法を教えて」といった質問ができます。
  2. Cloud Shell エディタでのコードアシスト (Gemini Code Assist)

    • Cloud Shellのエディタ内で、コードの自動補完、生成、説明、バグ修正などをGeminiに依頼できます。
  3. IDE(VS Codeなど)でのコードアシスト

    • 「Google Cloud Code」拡張機能をインストールしたVS CodeなどのIDEで、Cloud Shellエディタと同様のコードアシスト機能が利用できます。
  4. Gemini CLI (gemini コマンド) の利用

    • ご経験されたように、コマンドラインからGeminiと対話できるようになります。

このロールで「できない」こと

このロールはあくまで**「ユーザー」**としての権限です。そのため、以下のような管理系の操作はできません。

  • Gemini API自体の設定変更
  • プロジェクトのGemini利用料金に関する設定
  • 他のユーザーにGeminiの利用権限を付与すること

まとめ

一言で言うと、**「Google Cloudの色々な場所で、AIアシスタント(Gemini)を呼び出して助けてもらうための許可証」**がこのロールの役割です。開発や運用の生産性を向上させるための基本的な権限と言えます。


参照元: Google Cloud IAMドキュメント: Gemini for Google Cloud API のロールと権限