Google Cloud で実現する「AI エージェントの統制」― ①Agent Identity 実践ガイド

こんにちは!SCSKの八巻です。

先日の Google Cloud Next ’26 では、実業務を自律してこなす「自律型AIエージェント」の未来が示されました。しかし、企業導入には「ツール悪用の防止」「データの引き出し防止」「エージェント異常検知」といったガバナンスが不可欠です。

本記事では、新発表の Gemini Enterprise Agent Platform のセキュリティ機能の全体像を整理。その中でも今すぐ試せるガバナンス機能であるAgent Identity に焦点を当て、実際にエージェントをデプロイして権限管理を行うまでの手順を解説します。

この記事に書いてあること

本記事では、Google Cloud Next ’26 で発表された Gemini Enterprise Agent Platformのガバナンス機能のうち、Agent Identityを実際に触って試す手順を解説します。
1. Agent Platform のガバナンス機能の全体像
2. Agent Identity とは何か
3. 実践ハンズオン
4. まとめ

Agent Platform のガバナンス機能の全体像

Gemini Enterprise Agent Platformは、AI エージェントのライフサイクル全体をカバーする統合プラットフォームで、4つの柱で構成されています。
 
役割
含まれる主な機能
Build
 エージェントを作る
Agent Studio(ローコード)、ADK(コードベース)、Agent Garden(テンプレート集)、RAG Engine
Scale
本番で動かす
Agent Runtime(マネージドデプロイ)、セッション管理、メモリバンク
Govern
安全に統制する
Agent Identity、Agent Registry、Agent Gateway、Model Armor
Optimize
品質を上げる
評価(Evaluation)、トポロジー可視化
AI エージェントは従来のアプリケーションと異なり、自律的に判断して行動します。
– 人間が事前に全ての操作を定義していない
– エージェントが「どのツールを使うか」「どのデータにアクセスするか」を自分で決める
– 複数のエージェントが連携して動く(マルチエージェント)
この自律性があるからこそ、「何ができて、何ができないか」を明確に制御する仕組みが不可欠です。それがGovernの役割です。
■Governの主要サービス
 サービス名
何をしてくれるか
公開ステータス
(2026/5/16時点)
Agent Identity
SPIFFE 標準の暗号 ID をエージェントに付与し、IAM で権限管理
GA(一部プレビュー)
Agent Registry
全エージェント・ツール・MCP サーバーの中央カタログ
プレビュー
Agent Gateway
エージェントの全通信に IAM・Model Armor 等のポリシーを一元適用
限定公開プレビュー
Model Armor
プロンプトインジェクションやデータ漏洩を検知・ブロック
プレビュー

■各サービスの詳細

 サービス名
内容
Agent Identity
エージェントごとに固有の暗号 ID(SPIFFE 標準)を発行します。
– IAM でエージェント単位の権限管理が可能
– 監査ログでエージェント単位の追跡が可能
– トークンが X.509 証明書にバインドされ、盗難されても再利用不可
Agent Registry
組織内の全エージェント・ツール・MCP サーバーを一元管理する「中央カタログ」です。Agent Runtime にデプロイすると自動登録されます。
– 「組織内にどんなエージェントが存在するか」を可視化
– 他のエージェントやオーケストレーターがスキルを検索・再利用可能
Agent Gateway
エージェントの全通信(上り/下り)を通過させるネットワーキングコンポーネントです。
– エージェントが外部ツールや他のエージェントと通信する際に IAM ポリシーを適用
– Model Armor と連携してプロンプトインジェクションをリアルタイム検知
Model Armor
AI モデルへの入出力を検査するセキュリティガードレールです。
– プロンプトインジェクション攻撃の検知・ブロック
– 機密データ(PII 等)の漏洩防止
– 有害コンテンツの生成防止
– 悪意ある URL の検出

■各サービスの役割と関係

[デプロイ時]
  └→ Agent Identity が自動発行(誰が動いているか)
  └→ Agent Registry に自動登録(何が存在するか)
[実行時]
  └→ Agent Gateway が通信を検査(どこと通信しているか)
  └→ Model Armor がコンテンツを検査(危険な入出力はないか)
[監査時]
  └→ Cloud Logging / Trace にエージェント ID 付きで記録(どう動いたか)

Agent Identity とは何か

Agent Identityは、一言で言うと、エージェント1体ごとに固有の暗号 ID を発行し、誰が何にアクセスできるかを IAM で厳密に制御する仕組みです。

■サービスアカウントとの違い

従来はエージェントにサービスアカウントを割り当てていましたが、複数エージェントで共有されがちでどのエージェントが何をしたかが追跡困難でした。
比較項目
サービスアカウント
Agent Identity
共有
複数ワークロードで共有可
エージェントごとに固有(共有不可)
長期キー
生成可能
生成不可
トークン保護
なし
X.509 証明書にバインド
権限借用
可能
不可
 監査
SA 単位でしか追えない
エージェント単位で全アクション追跡

■Agent Identity で実現できること

カテゴリ
できること
最小権限の徹底
エージェント A は BigQuery 読み取りのみ、エージェント B は Cloud Storage 書き込みのみ、のように個別制御
アクセス拒否
IAM 拒否ポリシーで「全エージェントにバケット削除を禁止」等のガードレール設定
アクセス境界
プリンシパル アクセス境界で「このエージェントはこのフォルダ内のリソースしか触れない等の制御
エージェント間通信の制御
A2A プロトコルで、エージェント同士の呼び出しを IAM で許可/拒否
完全な監査証跡
監査ログにエージェント ID が記録。ユーザー委任時は「ユーザー A の代わりにエージェント B が実行」と二重記録

実践ハンズオン

前提条件 / 事前準備

– Google Cloud プロジェクト(課金有効)
– Cloud Shell が使える状態
– API の有効化
   – Vertex AI API(= Agent Platform API)
   – Cloud Storage API
– SDK インストール/ステージングバケット作成
pip install --upgrade google-cloud-aiplatform[agent_engines,adk]>=1.112 google-adk
gsutil mb -l us-central1 gs://YOUR_PROJECT_ID-agent-staging

1:Agent Identity 付きでエージェントをデプロイする

以下のスクリプトを作成して実行します。
cat > deploy_agent.py << 'SCRIPT'
import vertexai
from vertexai import types
from vertexai.agent_engines import AdkApp
from google.adk.agents import Agent

# SDK 初期化(v1beta1 API が必要)
client = vertexai.Client(
    project="YOUR_PROJECT_ID",
    location="us-central1",
    http_options=dict(api_version="v1beta1")  # ← Agent Identity には必須
)

# エージェント定義
agent = Agent(
    model="gemini-2.5-flash",
    name="blog_demo_agent",
    instruction="You are a helpful assistant that answers questions about Google Cloud.",
)
app = AdkApp(agent=agent)

# Agent Identity 付きでデプロイ
print("デプロイ開始...(2〜5分かかります)")
remote_app = client.agent_engines.create(
    agent=app,
    config={
        "display_name": "blog-demo-agent-with-identity",
        "identity_type": types.IdentityType.AGENT_IDENTITY,  
        "requirements": ["google-cloud-aiplatform[adk,agent_engines]"],
        "staging_bucket": "gs://YOUR_PROJECT_ID-agent-staging",
    },
)

print(f"\n✅ デプロイ完了!")
print(f"   リソース名: {remote_app.api_resource.name}")
print(f"   Agent Identity: {remote_app.api_resource.spec.effective_identity}")
SCRIPT
python3 deploy_agent.py

デプロイが完了すると、以下が自動的に行われます:

  • Agent Registry にエージェントが登録される
  • Agent Identity(SPIFFE ID)が発行される
  • X.509 証明書が自動プロビジョニングされる

発行される ID の形式:

principal://agents.global.org-{ORG_ID}.system.id.goog/resources/aiplatform/projects/{PROJECT_NUMBER}/locations/{REGION}/reasoningEngines/{AGENT_ID}
 

2:コンソールで確認する

デプロイ済みエージェント & Agent Identity の確認
  1. コンソールで [Agent Platform] を開く
  2. 左メニュー スケール > [デプロイ] をクリック
  3. エージェント一覧の [ID]列 に SPIFFE ID が表示されていればOK

Agent Registry での確認
  1. 左メニュー 管理 > [Agent Registry] をクリック
  2. [Agents] タブにデプロイしたエージェントが表示される

3:Agent Identity に IAM 権限を付与する

デプロイしたエージェントに何にアクセスできるかを IAM で制御します。

# 例: BigQuery データ閲覧者ロールを付与
gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
  --member="principal://agents.global.org-{ORG_ID}.system.id.goog/resources/aiplatform/projects/{PROJECT_NUMBER}/locations/us-central1/reasoningEngines/{AGENT_ID}" \
  --role="roles/bigquery.dataViewer" \
  --condition=None
IAM の確認方法

コンソールで [IAM と管理] > [IAM] を開き、フィルタに agents.global と入力すると、Agent Identity に付与されたロールが確認できます。

4:エージェントをテストする

cat > test_agent.py << 'SCRIPT'
import asyncio
import vertexai

client = vertexai.Client(
    project="YOUR_PROJECT_ID",
    location="us-central1",
    http_options=dict(api_version="v1beta1")
)

remote_app = client.agent_engines.get(
    name="projects/{PROJECT_NUMBER}/locations/us-central1/reasoningEngines/{AGENT_ID}"
)

async def test():
    async for event in remote_app.async_stream_query(
        user_id="test-user-001",
        message="Google Cloud の Agent Identity とは何ですか?簡潔に教えてください。",
    ):
        print(event)

asyncio.run(test())
SCRIPT
python3 test_agent.py

■Cloud Shellの結果

5:監査ログを確認する

  1. コンソールで [ログ エクスプローラ] を開く
  2. 以下のクエリを実行:
protoPayload.serviceName="aiplatform.googleapis.com" AND protoPayload.resourceName:"reasoningEngines/{AGENT_ID}"

エージェントに対する操作(デプロイ、クエリ実行等)が時系列で表示されます。

まとめ

Agent Identity により、「どのエージェントが、どの権限で、何をしたか」を完全に把握・制御できるようになりました。サービスアカウントの共有問題を解消し、エージェント時代のゼロトラストを実現する基盤です。

次回のブログでは、

Model Armor(プロンプトインジェクション検知)Agent Gatewayを取り上げる予定です。

最後まで読んでいただき、ありがとうございました!!!

×
タイトルとURLをコピーしました