こんにちは!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 のガバナンス機能の全体像
|
柱
|
役割
|
含まれる主な機能
|
|
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 の確認
- コンソールで [Agent Platform] を開く
- 左メニュー スケール > [デプロイ] をクリック
- エージェント一覧の [ID]列 に SPIFFE ID が表示されていればOK
Agent Registry での確認
- 左メニュー 管理 > [Agent Registry] をクリック
- [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:監査ログを確認する
- コンソールで [ログ エクスプローラ] を開く
- 以下のクエリを実行:
protoPayload.serviceName="aiplatform.googleapis.com" AND protoPayload.resourceName:"reasoningEngines/{AGENT_ID}"
エージェントに対する操作(デプロイ、クエリ実行等)が時系列で表示されます。

まとめ
Agent Identity により、「どのエージェントが、どの権限で、何をしたか」を完全に把握・制御できるようになりました。サービスアカウントの共有問題を解消し、エージェント時代のゼロトラストを実現する基盤です。
次回のブログでは、
Model Armor(プロンプトインジェクション検知)やAgent Gatewayを取り上げる予定です。
最後まで読んでいただき、ありがとうございました!!!



