2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AI モデル比較

2
Last updated at Posted at 2025-08-15

これは何?

Gemini, ChatGPT, ClaudeCodeを突然比較してみたくなった。
分析したいとかじゃなく、ただやってみたかっただけ。いつかまた衝動的にやるつもり。
記録日: 2025/08/15

※ 様々な人、お題、そしてその時の先頭集団にいるAIモデルでこういう比較が溢れる世の中にな〜れ〜。

お題(プロンプト)

mermaidでgoogle cloudのIAM設定周りのアーキテクチャを表現して

表側

  1. Gemini, 2. ChatGPT, 3. Claude Codeとしています。それぞれのタイトルの後は回答をコピペしています。

※ Claude Codeのみ補足があります。


1. Gemini 2.5 Pro

はい、承知いたしました。Mermaid.jsを使用してGoogle Cloud (GCP) のIAM設定に関するアーキテクチャ図を作成します。

GCPのIAMは階層構造になっており、リソース(組織、フォルダ、プロジェクト、個別のリソース)に対して、誰(メンバー)が、どの権限(ロール)を持つかを定義(ポリシー)します。

以下に、一般的なシナリオを表すいくつかのMermaidのコードサンプルを示します。これらのコードをコピーして、Mermaidをサポートするエディタ(例えば、VS Codeの拡張機能やオンラインエディタなど)に貼り付けると、図として表示できます。


基本的なIAMの概念図

ユーザー、グループ、ロール、そしてリソースへの割り当てという基本的な関係性を表現した図です。

解説:

  • メンバー: user@example.comteam-a@example.com グループに所属しています。
  • IAMポリシー: このグループに対して ストレージのオブジェクト閲覧者 (roles/storage.objectViewer) ロールを割り当てるポリシーが作成されます。
  • リソース: このポリシーが my-project プロジェクトにアタッチされます。
  • 継承: プロジェクトに設定された権限は、その下の階層にあるGCSバケット my-bucket にも自動的に継承されます。

サービスアカウント利用のアーキテクチャ図

Compute EngineのVMにサービスアカウントをアタッチし、そのサービスアカウントにGCSへのアクセス権を付与する、よくある構成です。

解説:

  • Compute Engine VM: このVMは、特定のタスク(例: データ処理)を実行します。
  • サービスアカウント: VMには、data-processor-sa という専用のサービスアカウントがアタッチされています。アプリケーションはこのサービスアカウントの権限でGCP APIを呼び出します。
  • IAMポリシー: このサービスアカウントに対して、ストレージのオブジェクト管理者 (roles/storage.objectAdmin) ロールが raw-data-bucket バケットに直接アタッチされています。これにより、VMは他のリソースに過剰な権限を持つことなく、必要なバケット操作だけを実行できます(最小権限の原則)。

フォルダと組織を含む階層構造の図

より大きな組織で、フォルダを使って権限を管理する場合の例です。

解説:

  • 組織: 全てのGCPリソースのトップレベルの器です。組織全体に適用されるIAMポリシー(例: 監査ログの閲覧者)を設定できます。
  • フォルダ: DevelopmentProduction のように環境ごとや部門ごとにプロジェクトをまとめ、フォルダ単位で権限を管理できます。
  • 権限の委任: dev-folder-admins グループに Development フォルダの管理者権限を付与することで、そのフォルダ内のプロジェクト管理を委任できます。Production フォルダには触れないため、環境間の分離が保たれます。

これらのサンプルを、ご自身の環境に合わせてカスタマイズしてご活用ください。

2. ChatGPT GPT-5

OK、Google CloudのIAM設定をMermaidで可視化する例を作りますね。
IAMは「誰(プリンシパル)が、何のリソースに、どの権限を持っているか」を決める仕組みなので、構成要素を以下に分けます。

  • プリンシパル(Principals): ユーザー、サービスアカウント、グループ
  • ロール(Roles): 権限のセット(事前定義ロール / カスタムロール)
  • ポリシー(Policy Bindings): プリンシパルとロールを紐付ける設定
  • リソース階層(Resource Hierarchy): Organization → Folder → Project → Resource

例として、Organization配下のProjectに特定のユーザーがViewer権限を持つ図をMermaidで書くとこうなります。

この図では:

  • 左側がGCPのリソース階層
  • 右側がIAMの主体(プリンシパル)とロール
  • 破線矢印で「ロールが適用されるリソース範囲」を示し、
    実線矢印で「プリンシパルがロールを持っている」ことを示しています。

このままでも概要は掴めますが、もっと詳細に継承の仕組み条件付きポリシーまで盛り込むことも可能です。

条件付きIAMや継承パターンも含めたバージョンを作りますか?
そうすれば「どの階層に設定すると、下位にどう効くのか」まで分かる図になります。


3. Claude Code Claude Sonnet 4

Google CloudのIAM設定周りのアーキテクチャをMermaid図で表現します。Google CloudのIAM設定周りのアーキテクチャを包括的に表現した図を作成しました。

この図は以下の要素を含んでいます:

Identity Sources(アイデンティティソース)

  • Googleアカウント、サービスアカウント、Workload Identity Federation、Google Workspaceなど

IAM Core(IAMコア)

  • ポリシー、ロール、権限、ポリシーバインディングの関係性

Role Types(ロールタイプ)

  • 基本ロール、定義済みロール、カスタムロールの分類

Resource Hierarchy(リソース階層)

  • 組織 → フォルダ → プロジェクト → リソースの階層構造とポリシー継承

Access Control(アクセス制御)

  • アクセスリクエストから評価、決定、監査までのフロー

IAM Services(IAMサービス)

  • 関連するGoogle Cloudサービスとの連携

点線は継承関係を、実線は直接的な関係を示しています。色分けにより各コンポーネントの役割を視覚的に区別しています。

3.1 エラーについて補足: qiitaではうまくレンダリングができなかったようですが、実際には下記のコードを出力し、レンダリングもされます。

graph TB
    %% Identity Sources
    subgraph "Identity Sources"
        GM[Google Account]
        GSA[Google Service Account]
        WIF[Workload Identity Federation]
        GSUITE[Google Workspace]
    end

    %% IAM Core Components
    subgraph "IAM Core"
        POLICY[IAM Policy]
        ROLES[IAM Roles]
        PERMS[Permissions]
        BINDINGS[Policy Bindings]
    end

    %% Role Types
    subgraph "Role Types"
        BASIC[Basic Roles<br/>Owner/Editor/Viewer]
        PREDEFINED[Predefined Roles<br/>Service-specific]
        CUSTOM[Custom Roles<br/>User-defined]
    end

    %% Resource Hierarchy
    subgraph "Resource Hierarchy"
        ORG[Organization]
        FOLDER[Folders]
        PROJECT[Projects]
        RESOURCES[Resources<br/>VM, Storage, etc.]
    end

    %% IAM Services
    subgraph "IAM Services"
        CAM[Cloud Asset Management]
        CIAM[Cloud Identity & Access Management]
        CRM[Cloud Resource Manager]
        IAA[IAM Audit]
    end

    %% Access Control Flow
    subgraph "Access Control"
        REQUEST[Access Request]
        EVAL[Policy Evaluation]
        DECISION[Allow/Deny Decision]
        AUDIT[Audit Logging]
    end

    %% Connections - Identity to IAM
    GM --> BINDINGS
    GSA --> BINDINGS
    WIF --> BINDINGS
    GSUITE --> BINDINGS

    %% Connections - IAM Internal
    BINDINGS --> POLICY
    POLICY --> ROLES
    ROLES --> PERMS

    %% Role Type Connections
    BASIC --> ROLES
    PREDEFINED --> ROLES
    CUSTOM --> ROLES

    %% Resource Hierarchy Connections
    ORG --> FOLDER
    FOLDER --> PROJECT
    PROJECT --> RESOURCES

    %% Policy Inheritance
    ORG -.->|Policy Inheritance| FOLDER
    FOLDER -.->|Policy Inheritance| PROJECT
    PROJECT -.->|Policy Inheritance| RESOURCES

    %% Access Control Flow
    REQUEST --> EVAL
    EVAL --> POLICY
    EVAL --> DECISION
    DECISION --> AUDIT

    %% IAM Services Connections
    CIAM --> POLICY
    CRM --> ORG
    CAM --> RESOURCES
    IAA --> AUDIT

    %% Styling
    classDef identityClass fill:#e1f5fe,stroke:#01579b,stroke-width:2px
    classDef iamClass fill:#f3e5f5,stroke:#4a148c,stroke-width:2px
    classDef roleClass fill:#e8f5e8,stroke:#1b5e20,stroke-width:2px
    classDef resourceClass fill:#fff3e0,stroke:#e65100,stroke-width:2px
    classDef serviceClass fill:#fce4ec,stroke:#880e4f,stroke-width:2px
    classDef accessClass fill:#f1f8e9,stroke:#33691e,stroke-width:2px

    class GM,GSA,WIF,GSUITE identityClass
    class POLICY,ROLES,PERMS,BINDINGS iamClass
    class BASIC,PREDEFINED,CUSTOM roleClass
    class ORG,FOLDER,PROJECT,RESOURCES resourceClass
    class CAM,CIAM,CRM,IAA serviceClass
    class REQUEST,EVAL,DECISION,AUDIT accessClass

claudecode_1.png


2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?