A2A
ã€ãã³ã
該åœããã³ã³ãã³ããèŠã€ãããŸããã§ãã
ãã¬ãžã³
該åœããã³ã³ãã³ããèŠã€ãããŸããã§ãã
æè¡ããã°
G-gen ã®å¥¥ç°ã§ããåœèšäºã§ã¯ãClaude Agent SDK ã§å®è£
ãããšãŒãžã§ã³ãã Cloud Run ã«ãããã€ããGemini Enterprise app ã« A2A ãšãŒãžã§ã³ããšããŠçŽæ¥ç»é²ããŠåŒã³åºãæé ã解説ããŸãã åœèšäºã«ã€ã㊠Gemini Enterprise app ãžã®ãšãŒãžã§ã³ãç»é² åœèšäºã§è¡ãããš åææ¡ä»¶ æé 1. ãµãŒãã¹ã¢ã«ãŠã³ããš IAM ã®èšå® 2. ãšãŒãžã§ã³ãã®å®è£
ïŒClaude Agent SDKïŒ 3. A2A ãµãŒããŒã®å®è£
ïŒa2a-sdkïŒ 4. Cloud Run ãžã®ããã〠5. Gemini Enterprise app ãžã®ç»é² åäœç¢ºèª ãµãŒãã¹ãžã®çéç¢ºèª Agent Card ãš A2A ãšã³ããã€ã³ãã®ç¢ºèª Gemini Enterprise app ããã®å®è¡ 泚æç¹ Agent Card ã® url ã¯ãµãŒãã¹ã® URL ãšäžèŽããã a2a-sdk 㯠0.3 ç³»ã«åºå®ãã MIME ã¿ã€ã㯠text/plain ã«ãã åœèšäºã«ã€ã㊠Gemini Enterprise app ãžã®ãšãŒãžã§ã³ãç»é² Gemini Enterprise appïŒéç§° Gemini EnterpriseïŒã«ã¯ãèªç€Ÿã§éçºãããšãŒãžã§ã³ããç»é²ããŠããŠãŒã¶ãŒã«äœ¿çšãããããšãã§ããŸããç»é²æ¹æ³ã® 1 ã€ããAgent2AgentïŒä»¥äžãA2AïŒãããã³ã«ã«ããç»é²ã§ãããšãŒãžã§ã³ãåŽã A2A ã® Agent Card ãå
¬éããŠããã°ãGoogle Cloud ã³ã³ãœãŒã«ãŸã㯠REST API ãã Gemini Enterprise app ã«ç»é²ã§ããŸãã Gemini Enterprise app ã®æŠèŠã¯ä»¥äžã®èšäºãåç
§ããŠãã ããã blog.g-gen.co.jp A2A ã«ããç»é²ã§ã¯ããšãŒãžã§ã³ãã®å®è¡åºç€ã¯èªåã§çšæããŸããGemini Enterprise app ãæã€ã®ã¯ Agent Card ã®ç»é²æ
å ±ã ãã§ãå®è¡æã«ã¯ Agent Card ã® url ãåŒã³åºããŸããåœèšäºã§ã¯ããã®å®è¡åºç€ãšã㊠Cloud Run ã䜿çšããŸãã A2A ãšãŒãžã§ã³ãããã£ãã Agent Registry ã«ç»é²ãããããã Gemini Enterprise app ã«åã蟌ãããšãã§ããŸãããããåœèšäºã§ã¯ Agent Registry ãçµç±ãããGemini Enterprise app ã«çŽæ¥ç»é²ããŸãã åè : A2A ãšãŒãžã§ã³ããç»é²ããŠç®¡çãã åœèšäºã§è¡ãããš Google ãæäŸãã AI ãšãŒãžã§ã³ãéçºçšãã¬ãŒã ã¯ãŒã¯ã§ãã Agent Development KitïŒADKïŒã§éçºãããšãŒãžã§ã³ãããGemini Enterprise app ã«ç»é²ã§ããããšã¯ããç¥ãããŠããŸãã ããã Gemini Enterprise app ã«ã¯ãADK 以å€ã§å®è£
ãããšãŒãžã§ã³ããç»é²å¯èœã§ãã åœèšäºã§ã¯ãAnthropic ãæäŸãã Claude Agent SDK ã§éçºãããšãŒãžã§ã³ãããGemini Enterprise app ã«ç»é²ããæ¹æ³ãæ€èšŒããŸããClaude Agent SDK ã¯ãClaude Code ã®ãšãŒãžã§ã³ãã«ãŒããšããŒã«å®è¡ã®ä»çµã¿ãã©ã€ãã©ãªãšããŠäœ¿çšã§ããããã«ãããã®ã§ããLLM ã®åŒã³åºãå
㯠Agent PlatformïŒæ§ç§° Vertex AIïŒäžã® Claude Haiku 4.5 ã§ãã æ§æã¯ä»¥äžã®ãšããã§ãã [ãšã³ããŠãŒã¶ãŒ] â [Gemini Enterprise app] â A2AïŒçŽæ¥ç»é²ïŒ [Cloud Run ãµãŒãã¹] Python 3.12 / FastAPI / claude-agent-sdk / a2a-sdk ââ Claude Haiku 4.5ïŒAgent PlatformïŒ ââ BigQuery ãªã¢ãŒã MCP ãµãŒã㌠â BigQuery ã®ããŒãã« ââ å€éš APIïŒæ°è±¡ããŒã¿ïŒ ãšãŒãžã§ã³ãã¯ãBigQuery ã®ããŒãã«ã BigQuery ãªã¢ãŒã MCP ãµãŒããŒçµç±ã§åç
§ããå€éš API ããååŸããããŒã¿ãšçªãåãããŠåçããŸããå€éš API ã®äŸãšããŠãOpen-Meteo ã®é廿°è±¡ããŒã¿ API ã䜿çšããŸããéåçšã®äœ¿çšã§ã¯ API ããŒãäžèŠãšæ¡å
ãããŠããŸãã åè : Claude Code Python Agent SDK åè : BigQuery ãªã¢ãŒã MCP ãµãŒããŒã䜿çšãã åè : Historical Weather API åææ¡ä»¶ åœèšäºã®æé ãå®è¡ããã«ã¯ã以äžãå¿
èŠã§ãã Gemini Enterprise app ãäœææžã¿ã§ããããš Cloud Run ãšãšãŒãžã§ã³ããåãã Google Cloud ãããžã§ã¯ãïŒåœèšäºã§ã¯ my-project ïŒã§ãClaude Haiku 4.5 ã Model Garden ã§æå¹åãããŠããããš gcloud CLI ãš python3 ã䜿çšã§ããããšã Claude ã¢ãã«ã¯ãGoogle Cloud ãããžã§ã¯ãããšã« Model Garden ã§æå¹åããå¿
èŠããããŸããæå¹åãããŠããªããããžã§ã¯ãããåŒã³åºããš 404 ãšã©ãŒãè¿ããŸãã åè : Claude ã¢ãã«ã§äºæž¬ããªã¯ãšã¹ããã åè : Claude Code on Google Cloud's Agent Platform - Troubleshooting åœèšäºã§ä»äžãã IAM ããŒã«ã¯ä»¥äžã®ãšããã§ãã ä»äžå
ããŒã« çšé ãšãŒãžã§ã³ãã®ãµãŒãã¹ã¢ã«ãŠã³ã Agent Platform ãŠãŒã¶ãŒïŒ roles/aiplatform.user ïŒ Claude ã¢ãã«ã®åŒã³åºã ãšãŒãžã§ã³ãã®ãµãŒãã¹ã¢ã«ãŠã³ã MCP ããŒã«ãŠãŒã¶ãŒïŒ roles/mcp.toolUser ïŒãBigQuery ãžã§ããŠãŒã¶ãŒïŒ roles/bigquery.jobUser ïŒ BigQuery ãªã¢ãŒã MCP ãµãŒããŒã®åŒã³åºã ãšãŒãžã§ã³ãã®ãµãŒãã¹ã¢ã«ãŠã³ã BigQuery ããŒã¿é²èЧè
ïŒ roles/bigquery.dataViewer ïŒãããŒãã«åäœã§ä»äž 察象ããŒãã«ã®åç
§ ãšãŒãžã§ã³ãã®ãµãŒãã¹ã¢ã«ãŠã³ã Cloud Run èµ·åå
ïŒ roles/run.invoker ïŒããµãŒãã¹åäœã§ä»äž åäœç¢ºèªã§ã® ID ããŒã¯ã³ã«ããåŒã³åºã Discovery Engine ãµãŒãã¹ãšãŒãžã§ã³ã Cloud Run èµ·åå
ïŒ roles/run.invoker ïŒ Gemini Enterprise app ããã®åŒã³åºã äœæ¥è
ã®ãŠãŒã¶ãŒã¢ã«ãŠã³ã ãµãŒãã¹ ã¢ã«ãŠã³ã ããŒã¯ã³äœæè
ïŒ roles/iam.serviceAccountTokenCreator ïŒ åäœç¢ºèªçšã® ID ããŒã¯ã³ã®çºè¡ æé 1. ãµãŒãã¹ã¢ã«ãŠã³ããš IAM ã®èšå® 以éã®ã³ãã³ãã§äœ¿ãå€ãç°å¢å€æ°ã«ä»£å
¥ããŠãããŸããBigQuery ã®ããŒãã«ã¯ Cloud Run ãšå¥ã®ãããžã§ã¯ãã«çœ®ãããšãã§ããããã BQ_PROJECT_ID ãåããŠããŸãã export PROJECT_ID =my-project export BQ_PROJECT_ID =my-project export REGION =us-central1 export SERVICE_NAME =analysis-agent export SERVICE_ACCOUNT =analysis-agent-sa@ ${PROJECT_ID} .iam.gserviceaccount.com export BQ_DATASET =sales_data export BQ_TABLE =sales API ãæå¹åãããšãŒãžã§ã³ãçšã®ãµãŒãã¹ã¢ã«ãŠã³ããäœæããŠããŒã«ãä»äžããŸããBigQuery ããŒã¿é²èЧè
ã¯ããŒã¿ã»ããã§ã¯ãªãããŒãã«ã«å¯ŸããŠä»äžãããšãŒãžã§ã³ããåç
§ã§ããç¯å²ã察象ããŒãã«ã ãã«çµããŸãã gcloud services enable aiplatform.googleapis.com bigquery.googleapis.com \ discoveryengine.googleapis.com run.googleapis.com \ artifactregistry.googleapis.com cloudbuild.googleapis.com \ --project =" ${PROJECT_ID} " gcloud iam service-accounts create analysis-agent-sa --project =" ${PROJECT_ID} " gcloud projects add-iam-policy-binding " ${PROJECT_ID} " \ --member =" serviceAccount: ${SERVICE_ACCOUNT} " \ --role =" roles/aiplatform.user " for role in roles/bigquery.jobUser roles/mcp.toolUser; do gcloud projects add-iam-policy-binding " ${BQ_PROJECT_ID} " \ --member =" serviceAccount: ${SERVICE_ACCOUNT} " \ --role =" ${role} " done bq add-iam-policy-binding \ --project_id =" ${BQ_PROJECT_ID} " \ --member =" serviceAccount: ${SERVICE_ACCOUNT} " \ --role =" roles/bigquery.dataViewer " \ " ${BQ_PROJECT_ID} : ${BQ_DATASET} . ${BQ_TABLE} " 2. ãšãŒãžã§ã³ãã®å®è£
ïŒClaude Agent SDKïŒ ãŸãäŸåããã±ãŒãžã§ããa2a-sdk 㯠0.3 ç³»ã«åºå®ããŸããçç±ã¯ã泚æç¹ãã§èª¬æããŸãã claude-agent-sdk>=0.2.140 fastapi>=0.115.0 uvicorn[standard]>=0.32.0 google-auth>=2.35.0 httpx>=0.28.0 a2a-sdk[http-server]>=0.3.26,<1.0 ã·ã¹ãã ããã³ããã§ã¯å¯Ÿè±¡ããŒãã«ãåºå®ããéèšã¯ SQL åŽã§è¡ãããã«æç€ºããŸãã import os class Config : BQ_PROJECT_ID = os.environ[ "BQ_PROJECT_ID" ] BQ_DATASET = os.environ.get( "BQ_DATASET" , "sales_data" ) BQ_TABLE = os.environ.get( "BQ_TABLE" , "sales" ) BQ_MCP_URL = "https://bigquery.googleapis.com/mcp" MAX_TURNS = int (os.environ.get( "MAX_TURNS" , "20" )) AGENT_CWD = "/tmp/agent" AGENT_CONFIG_DIR = "/tmp/agent-config" AGENT_BASE_URL = os.environ.get( "AGENT_BASE_URL" , "http://localhost:8080" ).rstrip( "/" ) EXTERNAL_API_URL = "https://archive-api.open-meteo.com/v1/archive" @ classmethod def table_fqn (cls) -> str : return f "{cls.BQ_PROJECT_ID}.{cls.BQ_DATASET}.{cls.BQ_TABLE}" @ classmethod def system_prompt (cls) -> str : return f """ããªã㯠BigQuery äžã®ããŒã¿ãåæããã¢ããªã¹ãã§ãã ## 察象ããŒãã« `{cls.table_fqn()}` 1 è¡ã 1 ä»¶ã®è³Œå
¥ã§ããäž»ãªå㯠prefectureïŒéœéåºçïŒãsales_dateïŒè³Œå
¥æ¥ïŒãsales_amountïŒéé¡ïŒã§ãã ## ã«ãŒã« - 䜿ããããŒã«ã¯ BigQuery MCPïŒmcp__bigquery__*ïŒãšå€éšããŒã¿ïŒmcp__external__*ïŒã ãã§ã - ã¹ããŒããäžæãªãšã㯠get_table_info ã§ç¢ºèªããŠãã SQL ãæžããŠãã ãã - éèšã¯ SQL åŽã§è¡ããå
šè¡ãååŸããªãã§ãã ãã - åçã«ã¯æ ¹æ ã«ãã SQL ãæ·»ããŠãã ãã - å€éšããŒã¿ãšç€Ÿå
ããŒã¿ãçªãåããããšãã¯ãã©ã¡ããã©ã®æ°å€ããæç€ºããŠãã ãã """ å€éš API ãåŒã¶ããŒã«ã¯ãClaude Agent SDK ã® tool ãã³ã¬ãŒã¿ãš create_sdk_mcp_server ã§å®çŸ©ããŸãããã®ãµãŒããŒã¯ã¢ããªã±ãŒã·ã§ã³ã®ããã»ã¹å
ã§åããããå¥ããã»ã¹ã®èµ·åã¯äžèŠã§ããããŒã«ã®æ»ãå€ã¯ content ã®é
åã§ã倱ææã¯ is_error ã True ã«ãããš Claude ã倱æãšããŠæ±ããŸãã import json import httpx from claude_agent_sdk import ToolAnnotations, create_sdk_mcp_server, tool from config import Config @ tool ( "get_daily_weather" , "æå®ãã緯床çµåºŠã»æéã®æ¥å¥å¹³åæ°æž©ïŒææ°ïŒãå€éš API ããååŸãããæ¥ä»ã¯ YYYY-MM-DD 圢åŒã" , { "latitude" : float , "longitude" : float , "start_date" : str , "end_date" : str }, annotations=ToolAnnotations(readOnlyHint= True ), ) async def get_daily_weather (args: dict ) -> dict : params = { "latitude" : args[ "latitude" ], "longitude" : args[ "longitude" ], "start_date" : args[ "start_date" ], "end_date" : args[ "end_date" ], "daily" : "temperature_2m_mean" , "timezone" : "Asia/Tokyo" , } async with httpx.AsyncClient(timeout= 20 ) as client: response = await client.get(Config.EXTERNAL_API_URL, params=params) if response.status_code != 200 : return { "content" : [{ "type" : "text" , "text" : f "å€éš API ãšã©ãŒ: HTTP {response.status_code}" }], "is_error" : True , } daily = response.json().get( "daily" , {}) return { "content" : [{ "type" : "text" , "text" : json.dumps(daily, ensure_ascii= False )}]} external_server = create_sdk_mcp_server( name= "external" , version= "1.0.0" , tools=[get_daily_weather] ) åè : Give Claude custom tools 次ã«ããšãŒãžã§ã³ãæ¬äœã®ãœãŒã¹ã³ãŒãã解説ããŸãã ClaudeAgentOptions ã® mcp_servers ã«ãBigQuery ãªã¢ãŒã MCP ãµãŒããŒïŒHTTP åïŒãšäžèšã®ããã»ã¹å
ãµãŒããŒã® 2 ã€ãæž¡ããŸããBigQuery ãªã¢ãŒã MCP ãµãŒããŒã¯ OAuth 2.0 ã®ã¢ã¯ã»ã¹ããŒã¯ã³ã§èªèšŒãããããApplication Default Credentials ããååŸããããŒã¯ã³ã Authorization ããããŒã«èŒããŸããããŒã¯ã³ã¯å€±å¹ããã®ã§ããªã¯ãšã¹ãã®ãã³ã«ååŸãçŽããŸãã allowed_tools ã«ã¯ mcp__<ãµãŒããŒå>__* ã®åœ¢ã§ 2 ã€ã®ãµãŒããŒã®ããŒã«ãæå®ããŸãã setting_sources=[] ã¯ãã³ã³ããå
ã®èšå®ãã¡ã€ã«ãèªã¿èŸŒãŸãªãããã®æå®ã§ãã import os from collections.abc import AsyncIterator import google.auth import google.auth.transport.requests from claude_agent_sdk import AssistantMessage, ClaudeAgentOptions, ResultMessage, query import external_tools from config import Config def access_token () -> str : credentials, _ = google.auth.default( scopes=[ "https://www.googleapis.com/auth/cloud-platform" ] ) credentials.refresh(google.auth.transport.requests.Request()) return credentials.token def build_options () -> ClaudeAgentOptions: os.makedirs(Config.AGENT_CWD, exist_ok= True ) os.makedirs(Config.AGENT_CONFIG_DIR, exist_ok= True ) return ClaudeAgentOptions( mcp_servers={ "bigquery" : { "type" : "http" , "url" : Config.BQ_MCP_URL, "headers" : { "Authorization" : f "Bearer {access_token()}" }, }, "external" : external_tools.external_server, }, allowed_tools=[ "mcp__bigquery__*" , "mcp__external__*" ], setting_sources=[], env={ "CLAUDE_CONFIG_DIR" : Config.AGENT_CONFIG_DIR}, cwd=Config.AGENT_CWD, max_turns=Config.MAX_TURNS, system_prompt=Config.system_prompt(), ) async def stream (prompt: str ) -> AsyncIterator[ dict ]: async for message in query(prompt=prompt, options=build_options()): if isinstance (message, AssistantMessage): for block in message.content: name = getattr (block, "name" , None ) if name: yield { "kind" : "tool" , "name" : name} elif isinstance (message, ResultMessage): yield { "kind" : "result" , "result" : message.result, "is_error" : message.is_error, } Claude ã®åŒã³åºãå
ã Agent Platform ã«ããèšå®ã¯ãã³ãŒãã§ã¯ãªãç°å¢å€æ°ã§è¡ããŸãã CLAUDE_CODE_USE_VERTEX=1 ã CLOUD_ML_REGION ã ANTHROPIC_VERTEX_PROJECT_ID ã ANTHROPIC_MODEL ã® 4 ã€ã§ãæé 4 ã§ Cloud Run ã®ç°å¢å€æ°ãšããŠèšå®ããŸãã åè : Connect to external tools with MCP åè : Claude Code on Google Cloud's Agent Platform 3. A2A ãµãŒããŒã®å®è£
ïŒa2a-sdkïŒ A2A ã®ã¬ã€ã€ã¯ a2a-sdk ã§å®è£
ããŸããAgent Card ã¯ãGemini Enterprise app ã®å
¬åŒããã¥ã¡ã³ãã®ãµã³ãã«ãšåããã£ãŒã«ãæ§æã«ããŸãã url ã«ã¯ãã®ãµãŒãã¹èªèº«ã® URL ãå
¥ããŸãã AgentExecutor ãç¶æ¿ããã¯ã©ã¹ã§ãA2A ã®ãªã¯ãšã¹ããæé 2 ã® stream() ã«æ©æž¡ãããŸããããŒã«åŒã³åºãã®ãã³ã« working ç¶æ
ã®æŽæ°ãéããåçã artifact ãšããŠè¿œå ã㊠completed ã«ããŸãã Task ã®ç¶æ
㯠completed ã failed ã®ã©ã¡ããã« 1 åã ãé·ç§»ã§ããŸããçµæãåãåã£ããã«ãŒããæãã except ã§ã¯æªé·ç§»ã®ãšãã ã failed ãåŒã³ãŸããClaude åŽããšã©ãŒãè¿ãããšã㯠is_error ã§å€å®ãã failed ãšããŠè¿ããŸãã import logging from a2a.server.agent_execution import AgentExecutor, RequestContext from a2a.server.apps import A2AFastAPIApplication from a2a.server.events import EventQueue from a2a.server.request_handlers import DefaultRequestHandler from a2a.server.tasks import InMemoryTaskStore, TaskUpdater from a2a.types import AgentCard, Part, TaskState, TextPart from a2a.utils import AGENT_CARD_WELL_KNOWN_PATH from fastapi import FastAPI import agent from config import Config log = logging.getLogger(__name__) def _text (value: str ) -> list [Part]: return [Part(root=TextPart(text=value))] def build_card () -> AgentCard: return AgentCard.model_validate({ "protocolVersion" : "0.3" , "name" : "æ¥åããŒã¿åæãšãŒãžã§ã³ã" , "description" : "BigQuery äžã®æ¥åããŒã¿ãšå€éšããŒã¿ãèªç¶èšèªã§åæãããšãŒãžã§ã³ã" , "url" : Config.AGENT_BASE_URL, "version" : "0.1.0" , "capabilities" : { "streaming" : True }, "defaultInputModes" : [ "text/plain" ], "defaultOutputModes" : [ "text/plain" ], "skills" : [ { "id" : "bigquery-analysis" , "name" : "BigQuery åæ" , "description" : "察象ããŒãã«ã«å¯Ÿããéèšã»åŸååæãèªç¶èšèªã§åãä»ãã" , "tags" : [ "bigquery" , "analytics" ], }, { "id" : "external-join" , "name" : "å€éšããŒã¿ãšã®çªãåãã" , "description" : "瀟å
ããŒã¿ã®éèšçµæãå€éš API ã®ããŒã¿ãšæãåããã" , "tags" : [ "external" , "join" ], }, ], }) class AnalysisAgentExecutor (AgentExecutor): async def execute (self, context: RequestContext, event_queue: EventQueue) -> None : updater = TaskUpdater(event_queue, context.task_id, context.context_id) if context.current_task is None : await updater.submit() await updater.start_work() done = False try : async for event in agent.stream(context.get_user_input()): if event[ "kind" ] == "tool" : await updater.update_status( TaskState.working, updater.new_agent_message(_text(f "å®è¡äž: {event['name']}" )), ) elif event[ "kind" ] == "result" : done = True if event[ "is_error" ]: message = event[ "result" ] or "ãšãŒãžã§ã³ãããšã©ãŒãè¿ããŸãã" await updater.failed(updater.new_agent_message(_text(message))) else : await updater.add_artifact( _text(event[ "result" ] or "" ), name= "answer" ) await updater.complete() break except Exception as e: log.exception( "ãšãŒãžã§ã³ãã®å®è¡ã«å€±æ" ) if not done: await updater.failed( updater.new_agent_message(_text(f "å®è¡ã«å€±æããŸãã: {e}" )) ) async def cancel (self, context: RequestContext, event_queue: EventQueue) -> None : updater = TaskUpdater(event_queue, context.task_id, context.context_id) await updater.cancel(updater.new_agent_message(_text( "ãã£ã³ã»ã«ãããŸãã" ))) def mount (app: FastAPI) -> AgentCard: card = build_card() handler = DefaultRequestHandler( agent_executor=AnalysisAgentExecutor(), task_store=InMemoryTaskStore(), ) A2AFastAPIApplication(agent_card=card, http_handler=handler).add_routes_to_app( app, agent_card_url=AGENT_CARD_WELL_KNOWN_PATH, rpc_url= "/" ) return card FastAPI ã®ãšã³ããªãŒãã€ã³ãã§ã¯ãçé確èªçšã® /health ãå®çŸ©ããããã§ãA2A ã®ã«ãŒãã远å ããŸããAgent Card 㯠A2A ã®ä»æ§ã©ãã /.well-known/agent-card.json ã§é
ä¿¡ãããJSON-RPC ã®ãšã³ããã€ã³ã㯠/ ã§ãã import logging from fastapi import FastAPI import a2a_app logging.basicConfig(level=logging.INFO, format = "%(message)s" ) app = FastAPI(title= "analysis-agent" ) @ app.get ( "/health" ) async def health () -> dict : return { "status" : "ok" } AGENT_CARD = a2a_app.mount(app) åè : A2A Protocol Specification (v0.3.0) åè : a2a-sdk - PyPI 4. Cloud Run ãžã®ããã〠Dockerfile ã§ããClaude Agent SDK 㯠Claude Code ã® CLI ããµãããã»ã¹ãšããŠèµ·åããCLI ãã»ãã·ã§ã³æ
å ±ã HOME é
äžã«æžã蟌ã¿ãŸããCloud Run ã®ã³ã³ããã§ã¯æžã蟌ã¿å¯èœãª /tmp ã HOME ã«ããŸãã FROM python:3.12-slim ENV HOME=/tmp \ PYTHONUNBUFFERED=1 WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . CMD exec uvicorn main:app --host 0 . 0 . 0 . 0 --port ${PORT :- 8080 } ç°å¢å€æ°ã¯ YAML ãã¡ã€ã«ã§æž¡ããŸãã ANTHROPIC_MODEL ã®å€ã« @ ãå«ãŸãããªã©ãåºåãæåãšè¡çªããããå€ãããããã --set-env-vars ã§ã¯ãªã --env-vars-file ã䜿çšããŸãã AGENT_BASE_URL ã¯ããã®æç¹ã§ã¯ãŸã ãµãŒãã¹ã® URL ãããããªãã®ã§ä»®ã®å€ã«ããŠãããŸãã CLAUDE_CODE_USE_VERTEX : '1' CLOUD_ML_REGION : 'global' ANTHROPIC_VERTEX_PROJECT_ID : 'my-project' ANTHROPIC_MODEL : 'claude-haiku-4-5@20251001' BQ_PROJECT_ID : 'my-project' BQ_DATASET : 'sales_data' BQ_TABLE : 'sales' MAX_TURNS : '20' AGENT_BASE_URL : 'http://localhost:8080' åœèšäºã§ã¯ããããã€ã 2 åå®è¡ããŸãã1 åç®ã§ãµãŒãã¹ã® URL ã確å®ããããã® URL ã AGENT_BASE_URL ã«æžãæ»ããŠãã 2 åç®ããããã€ããŸããAgent Card ã® url ãå®éã®ãµãŒãã¹ã® URL ãšäžèŽããŠããªããšãGemini Enterprise app ããã®åŒã³åºããèªèšŒã§å€±æããããã§ãã詳现ã¯ã泚æç¹ããåç
§ããŠãã ããã ãŸã㯠1 åç®ã®ãããã€ã§ããCloud Run ãžãœãŒã¹ã³ãŒããçŽæ¥ãããã€ããŸããGemini Enterprise app 以å€ã®ä»»æã®äž»äœããåŒã³ã ãããããšããªããããèªèšŒãå¿
é ïŒ --no-allow-unauthenticated ïŒã«ããŸãããããã€åŸã確å®ãããµãŒãã¹ã® URL ã SERVICE_URL ã«ååŸããŸãã gcloud run deploy " ${SERVICE_NAME} " \ --source = . \ --project =" ${PROJECT_ID} " \ --region =" ${REGION} " \ --service-account =" ${SERVICE_ACCOUNT} " \ --no-allow-unauthenticated \ --memory = 2Gi \ --cpu = 2 \ --concurrency = 1 \ --timeout = 3600s \ --env-vars-file = env.yaml SERVICE_URL = $( gcloud run services describe " ${SERVICE_NAME} " \ --project =" ${PROJECT_ID} " --region =" ${REGION} " --format =' value(status.url) ' ) echo " ${SERVICE_URL} " 次ã«ã2 åç®ã®ãããã€ã§ããååŸãã SERVICE_URL ã env.yaml ã® AGENT_BASE_URL ã«æžãæ»ãã1 åç®ãšãŸã£ããåãã³ãã³ãã§ããäžåºŠãããã€ããŸããããã§ Agent Card ã® url ããå®éã®ãµãŒãã¹ã® URL ãšäžèŽããŸãã sed -i " s|^AGENT_BASE_URL:.*|AGENT_BASE_URL: ' ${SERVICE_URL} '| " env.yaml gcloud run deploy " ${SERVICE_NAME} " \ --source = . \ --project =" ${PROJECT_ID} " \ --region =" ${REGION} " \ --service-account =" ${SERVICE_ACCOUNT} " \ --no-allow-unauthenticated \ --memory = 2Gi \ --cpu = 2 \ --concurrency = 1 \ --timeout = 3600s \ --env-vars-file = env.yaml åè : gcloud run deploy åè : gcloud topic gcloudignore 5. Gemini Enterprise app ãžã®ç»é² Gemini Enterprise app ã¯ãDiscovery Engine ã®ãµãŒãã¹ãšãŒãžã§ã³ãïŒ service-ãããžã§ã¯ãçªå·@gcp-sa-discoveryengine.iam.gserviceaccount.com ïŒãšããŠãšãŒãžã§ã³ããåŒã³åºããŸããèªèšŒå¿
é ã® Cloud Run ãµãŒãã¹ãåŒã¹ãããã«ããã®ãµãŒãã¹ãšãŒãžã§ã³ãã« Cloud Run èµ·åå
ãä»äžããŸãã PROJECT_NUMBER = $( gcloud projects describe " ${PROJECT_ID} " --format =' value(projectNumber) ' ) gcloud run services add-iam-policy-binding " ${SERVICE_NAME} " \ --project =" ${PROJECT_ID} " --region =" ${REGION} " \ --member =" serviceAccount:service- ${PROJECT_NUMBER} @gcp-sa-discoveryengine.iam.gserviceaccount.com " \ --role =" roles/run.invoker " gcloud run services add-iam-policy-binding " ${SERVICE_NAME} " \ --project =" ${PROJECT_ID} " --region =" ${REGION} " \ --member =" serviceAccount: ${SERVICE_ACCOUNT} " \ --role =" roles/run.invoker " 2 ã€ç®ã¯åäœç¢ºèªã®ããã®ãã®ã§ãããã®ããšããšãŒãžã§ã³ãã®ãµãŒãã¹ã¢ã«ãŠã³ãã®æš©éãåçšã㊠ID ããŒã¯ã³ãçºè¡ãããã®ããŒã¯ã³ã§ãµãŒãã¹ãåŒã³åºããŸãããµãŒãã¹ãå®è¡ãããµãŒãã¹ã¢ã«ãŠã³ãã§ããããšãšããã®ãµãŒãã¹ãåŒã³åºããããšã¯å¥ãªã®ã§ããã®ã¢ã«ãŠã³ãã«ã Cloud Run èµ·åå
ãä»äžããŸããä»äžãããŠããªããšãåŒã³åºã㯠403 ãš insufficient_scope ãè¿ããŸãã ç»é²ã«ã¯ããããã€æžã¿ã®ãµãŒãã¹ããååŸãã Agent Card ã® JSON ããã®ãŸãŸäœ¿çšããŸããCloud Run ã®èªèšŒãéãããã«ããµãŒãã¹ã¢ã«ãŠã³ãã®æš©éãåçšããŠããªãŒãã£ãšã³ã¹ããµãŒãã¹ã® URL ã«ãã ID ããŒã¯ã³ãçºè¡ããŸãããã®ããã«ãäœæ¥è
ã®ã¢ã«ãŠã³ãã«ãµãŒãã¹ ã¢ã«ãŠã³ã ããŒã¯ã³äœæè
ãä»äžããŠãããŸãã gcloud iam service-accounts add-iam-policy-binding " ${SERVICE_ACCOUNT} " \ --project =" ${PROJECT_ID} " \ --member =" user: $( gcloud config get-value account ) " \ --role =" roles/iam.serviceAccountTokenCreator " TOKEN = $( gcloud auth print-identity-token \ --impersonate-service-account =" ${SERVICE_ACCOUNT} " --audiences =" ${SERVICE_URL} " ) CARD = $( curl -sS -H " Authorization: Bearer ${TOKEN} " " ${SERVICE_URL} /.well-known/agent-card.json " ) Gemini Enterprise app ã®ç»é² API ã« POST ããŸãã a2aAgentDefinition.jsonAgentCard ã«ã¯ãAgent Card ã® JSON ãæååãšããŠåã蟌ã¿ãŸããåœèšäºã® Gemini Enterprise app ã¯ãã±ãŒã·ã§ã³ã global ãªã®ã§ããšã³ããã€ã³ãã®ãã¹ãåã«ãã±ãŒã·ã§ã³ã®æ¥é èŸã¯ä»ããŸããã export APP_ID =my-gemini-enterprise-app ENDPOINT = " https://discoveryengine.googleapis.com/v1alpha/projects/ ${PROJECT_ID} /locations/global/collections/default_collection/engines/ ${APP_ID} /assistants/default_assistant/agents " BODY = $( printf ' %s ' " ${CARD} " | python3 -c ' import json, sys print(json.dumps({ "displayName": "æ¥åããŒã¿åæãšãŒãžã§ã³ã", "description": "BigQuery ã®æ¥åããŒã¿ãšå€éšããŒã¿ãåæãããšãŒãžã§ã³ã", "a2aAgentDefinition": {"jsonAgentCard": sys.stdin.read()}, }, ensure_ascii=False)) ' ) curl -sS -X POST \ -H " Authorization: Bearer $( gcloud auth print-access-token ) " \ -H " X-Goog-User-Project: ${PROJECT_ID} " \ -H " Content-Type: application/json " \ " ${ENDPOINT} " -d " ${BODY} " ç»é²ããããšãŒãžã§ã³ãã¯ãåããšã³ããã€ã³ããžã® GET ã§äžèЧã§ããŸããGoogle Cloud ã³ã³ãœãŒã«ã® Gemini Enterprise app ã®ç®¡çç»é¢ã§ã確èªã§ããŸãã åè : A2A ãšãŒãžã§ã³ããç»é²ããŠç®¡çãã åè : ãµãŒãã¹éèªèšŒ åäœç¢ºèª ãµãŒãã¹ãžã®çéç¢ºèª ãŸããCloud Run ã®ãµãŒãã¹ã«ãªã¯ãšã¹ããå±ããŠãããã確èªããŸããèªèšŒå¿
é ã®ãµãŒãã¹ãªã®ã§ãæé 5 ã§çºè¡ãã TOKEN ãä»ã㊠/health ãåŒã³ãŸãã curl -sS -H " Authorization: Bearer ${TOKEN} " " ${SERVICE_URL} /health " {"status":"ok"} ãè¿ãã°ãèªèšŒãéã£ãŠã³ã³ãããŸã§ãªã¯ãšã¹ããå±ããFastAPI ãå¿çããŠããŸããããããå
ã§å€±æããå Žåã¯ãåå ããšãŒãžã§ã³ãæ¬äœã A2A ã®å®è£
ã«çµã蟌ããŸãã 403 ãè¿ãå Žå㯠IAM ã®èšå®ããå¿çããªãå Žåã¯ã³ã³ããã®èµ·åãçããŸãã åè : ãµãŒãã¹ã«ã³ã³ããã®ãã«ã¹ãã§ãã¯ãæ§æãã Agent Card ãš A2A ãšã³ããã€ã³ãã®ç¢ºèª Gemini Enterprise app ãéããã«ãA2A ã®ãšã³ããã€ã³ããçŽæ¥åŒãã§ç¢ºèªããŸããæé 5 ã§çºè¡ãã ID ããŒã¯ã³ããã®ãŸãŸäœ¿ããJSON-RPC ã® message/send ãéããŸãã curl -sS -X POST " ${SERVICE_URL} / " \ -H " Authorization: Bearer ${TOKEN} " \ -H " Content-Type: application/json " \ -d ' { "jsonrpc": "2.0", "id": "1", "method": "message/send", "params": { "message": { "role": "user", "parts": [{"kind": "text", "text": "ãã®ããŒãã«ã¯å
šéšã§äœè¡ãããŸãã"}], "messageId": "msg-1" } } } ' ã¬ã¹ãã³ã¹ã® status.state ã completed ã«ãªãã artifacts ã«åçã®ããã¹ããå
¥ã£ãŠããã°ãA2A ãµãŒããŒãšãšãŒãžã§ã³ãæ¬äœã¯æ£åžžã§ãã Gemini Enterprise app ããã®å®è¡ Gemini Enterprise app ã®ç»é¢ã§ãç»é²ãããšãŒãžã§ã³ããéžãã§æ¥æ¬èªã§è³ªåããŸããåœèšäºã§ã¯ä»¥äžã® 2 ã€ã詊ããŸããã 質å åŒã°ããããŒã«ïŒ ToolSearch ãé€ãïŒ ãã®ããŒãã«ã¯å
šéšã§äœè¡ãããŸãã BigQuery MCP ã®ããŒã«ã®ã¿ 2023å¹Žã®æ±äº¬éœã®æå¥å£²äžåèšãåºããŠãåãæéã®æ±äº¬ã®æå¹³åæ°æž©ãšçªãåãã㊠get_table_info â execute_sql_readonly â get_daily_weather â execute_sql_readonly 2 ã€ç®ã®è³ªåã§ã¯ã1 åã®å¿çã®äžã§ BigQuery ã®ããŒã«ãšå€éš API ã®ããŒã«ãäž¡æ¹åŒã°ããæå¥ã®å£²äžãšæ°æž©ã察å¿ã¥ãã衚ãšåæã³ã¡ã³ããè¿ããŸããã ããŒã«åŒã³åºãã®å
é ã«ã¯ ToolSearch ãå
¥ããŸããClaude Agent SDK ã®ããŒã«æ€çŽ¢ã¯æ¢å®ã§æå¹ãšèšèŒãããŠãããAgent Platform äžã® Claude Haiku 4.5 以éã®ã¢ãã«ã察象ã§ããããŒã«ã®æ°ãå°ãªãæ§æã§ã¯å
ã«ãã¹ãŠèªã¿èŸŒãã»ããéããšèšèŒãããŠãããããç°å¢å€æ° ENABLE_TOOL_SEARCH ã« false ãæå®ãããšããã® 1 åŸåŸ©ãçããŸãã åè : Scale to many tools with tool search 泚æç¹ Agent Card ã® url ã¯ãµãŒãã¹ã® URL ãšäžèŽããã Cloud Run ã® ID ããŒã¯ã³ã¯ããªãŒãã£ãšã³ã¹ãåä¿¡åŽãµãŒãã¹ã® URL ã«ããå¿
èŠããããŸããGemini Enterprise app 㯠Agent Card ã® url ãå®å
ãšããŠåŒã³åºãããã url ãå®éã®ãµãŒãã¹ã® URL ãšéããšèªèšŒã«å€±æããŸãã Cloud Run ã¯ããã¹ãŠã®ãµãŒãã¹ã«ããã·ã¥ãå«ãéæ±ºå®è«ç URL ãå²ãåœãŠãŸãããµãŒãã¹åã®é·ããèš±ãã°ã決å®è«ç URL ã远å ã§å²ãåœãŠãããŸãã1 ã€ã®ãµãŒãã¹ã« 2 ã€ã® URL ãããã gcloud run services describe ã®è¡šç€ºã§ã¯æ±ºå®è«ç URL ãåªå
ããããšèšèŒãããŠããŸããäžæ¹ --format='value(status.url)' 㯠status.url ã®å€ããã®ãŸãŸè¿ããããäž¡è
ã¯äžèŽããªãããšããããŸããURL ã¯æã§çµã¿ç«ãŠããã³ãã³ãã§ã®åºåããã®ãŸãŸäœ¿ããŸãã gcloud run services describe SERVICE --format ' value(status.url) ' æé 4 ã§ãããã€ã 2 åå®è¡ããŠããã®ã¯ã1 åç®ã§ç¢ºå®ãããµãŒãã¹ã® URL ã env.yaml ã® AGENT_BASE_URL ã«æžãæ»ããAgent Card ã® url ã«åæ ãããããã§ãã åè : ãµãŒãã¹éèªèšŒ åè : HTTPS ãªã¯ãšã¹ãã§åŒã³åºã åè : A2A ãšãŒãžã§ã³ããç»é²ããŠç®¡çãã a2a-sdk 㯠0.3 ç³»ã«åºå®ãã 2026幎9æçŸåšãGemini Enterprise app ã¯ãA2A v0.3 ã®ã¹ããªãŒãã³ã°æ©æ§ããµããŒãããŠããããšæ¡å
ãããŠããŸãããŸã a2a-sdk 㯠1.0 ã§ A2AFastAPIApplication ãªã©ã®ã©ãããŒã¯ã©ã¹ãåé€ããããµãŒããŒã®çµã¿ç«ãŠæ¹ãå€ãããŸããã åœèšäºã®ã³ãŒã㯠0.3 ç³»ãåæã«ããŠãããããããŒãžã§ã³ã®äžéãå«ããŠåºå®ããŸãã åè : a2a-python v1.0 Migration Guide MIME ã¿ã€ã㯠text/plain ã«ãã Agent Card ã® defaultInputModes ãš defaultOutputModes ã¯ãå
¬åŒããã¥ã¡ã³ãã®ãµã³ãã«ãšåã text/plain ã«ããŸããæ€èšŒäžã« text ãšæžãã Agent Card ã¯ãGemini Enterprise app ãžã®ç»é²ã§æåŠãããŸããã å¥¥ç° æ¢šçŽ (èšäºäžèЧ) ã¯ã©ãŠããœãªã¥ãŒã·ã§ã³éšããŒã¿ã€ã³ããªãžã§ã³ã¹èª² Google Cloudã®å¯èœæ§ã«æ¹ããã2024幎4æG-genã«ãžã§ã€ã³ã Google Cloud Partner Top Engineer 2025&2026 Follow @risa_hochiminh
æ¬ããã°ã¯ 2026 幎 5 æ 15 æ¥ã«å
¬éããã AWS Blog â The AWS AI Security Framework: Securing AI with the right controls, at the right layers, at the right phases â ã翻蚳ãããã®ã§ãã å¿ããçµå¶è
åãã®èŠçŽ AWS AI Security Framework ã¯ãã»ãã¥ãªãã£ãªãŒããŒã AI ãæŽ»çšããŠè¿
éã«è¡åããå®å
šæ§ãç¶æããã®ã«åœ¹ç«ã¡ãŸããã¯ãŒã¯ããŒãããããã¿ã€ãããæ¬çªç°å¢ããããŠã¹ã±ãŒã«ãžãšé²åããäžã§ãã»ãã¥ãªãã£ã¯åæ¥ããè€åçã«åŒ·åãããŸãã ãŸãè©äŸ¡ãè¡ãã ç¡åã® SHIP ãšã³ã²ãŒãžã¡ã³ãããªã¯ãšã¹ãããŠãçŸåšã®ã»ãã¥ãªãã£æ
å¢ãããŒã¹ã©ã€ã³åããåªå
é äœä»ããããããŒãããããæ§ç¯ããŸãã ãã§ãŒãº 1 â Foundational (ãŒããããããã¿ã€ããŸã§)ã æ¢åã®ã³ã³ãããŒã«ã AI ã«æ¡åŒµããŸãã忥ãããšãŒãžã§ã³ã ID ãšãã现ããã¢ã¯ã»ã¹ã³ã³ãããŒã«ã確ç«ããŸããã³ã³ãã³ããã£ã«ã¿ãªã³ã°ãšã¬ãŒãã¬ãŒã«ã远å ããŸãããããã¯ãã¢ãŒããã¯ãã£ã®å€æŽã§ã¯ãªããèšå®ã®å€æŽã§ãã ãã§ãŒãº 2 â Enhanced (ãããã¿ã€ãããæ¬çªãŸã§)ã è
åšæ€åºãããŒã¿åé¡ãAI åºæã®ã¢ãã¿ãªã³ã°ã«ãããæ¬çªç°å¢ã匷åããŸãã ãã§ãŒãº 3 â Advanced (ç¶ç¶çãªæ¹åãšã¹ã±ãŒã«)ã ã¬ããã³ã¹ãã³ã³ãã©ã€ã¢ã³ã¹ãã€ã³ã·ãã³ã察å¿ãå€§èŠæš¡ã«èªååããŸãã æ žãšãªãåå: AI ã«ã»ãã¥ãªãã£ã远å ããã®ã§ã¯ãããŸãããã»ãã¥ãªãã£ã®äžã« AI ãæ§ç¯ããã®ã§ãã ãã¬ãŒã ã¯ãŒã¯ã®å
šäœã«ã€ããŠã¯ã以äžããèªã¿ãã ããã AWS AI Security Framework ã®ãçŽ¹ä» ãã¹ãŠã®ã»ãã¥ãªãã£ãªãŒããŒã¯åã質åãããŸããã€ãããŒã·ã§ã³ã®é床ãèœãšããã« AI ãã©ã®ããã«ä¿è·ããã°ããã®ãïŒ çµç¹ã® 80% ã AI ãæ¡çšããŠããŸãããããã管çããŠããã®ã¯ããã 10% ã§ã (McKinsey)ã AI é¢é£ã®ã»ãã¥ãªãã£ã€ã³ã·ãã³ããå ±åããçµç¹ã® 97% ã¯ãé©å㪠AI ã¢ã¯ã»ã¹ã³ã³ãããŒã«ãæ¬ åŠããŠããŸãã (IBM)ã課é¡ã¯æ°ãããã®ã§ã¯ãããŸãããããããã«å¯ŸåŠããããã®äœç³»çãªãã¬ãŒã ã¯ãŒã¯ãæ¬ ããŠããŸããã ãã®æçš¿ã§ã¯ã Amazon Web Services (AWS) AI Security Framework ã玹ä»ããŸããããã¯ãé©åãªã»ãã¥ãªãã£ã³ã³ãããŒã«ããé©åãªãŠãŒã¹ã±ãŒã¹ã«ãé©åãªã¬ã€ã€ãŒã§ãé©åãªãã§ãŒãºã§æŽåãããããã®æ§é åãããã¢ãã«ã§ããã»ãã¥ãªãã£ãªãŒããŒãšããžãã¹ãªãŒããŒã«å
±éã®èšèªãæäŸããAI ããããã¿ã€ãããæ¬çªç°å¢ãžèªä¿¡ãæã£ãŠç§»è¡ã§ããããã«ããŸãã ããã¯ãæéã®çµéãšãšãã«æ¡åŒµå¯èœãªããã«èšèšããããã¬ãŒã ã¯ãŒã¯ã§ããAWS å
šäœã§æ°ããã»ãã¥ãªãã£ãµãŒãã¹ãæ©èœãããã©ã«ãã§ã»ãã¥ã¢ãªæ©èœãç»å Žãããšããããã¯ãã§ã«ç¥ã£ãŠãããŠãŒã¹ã±ãŒã¹ãã¬ã€ã€ãŒããã§ãŒãºã«çŽæ¥ãããã³ã°ãããŸãããã®ãã¬ãŒã ã¯ãŒã¯ã¯ãããŒã ããã§ã«äœ¿çšããæ
£ã芪ããã§ãããµãŒãã¹ãããŒã¹ã«æ§ç¯ãããŠãããããæå©ãªã¹ã¿ãŒããåãããšãã§ããŸãããŸããAI ãã©ã®ããã«æ§ç¯ããŠããäžè²«ããã»ãã¥ãªãã£ã³ã³ãããŒã«ãå®çŸã§ããŸãã 以äžã®ã»ã¯ã·ã§ã³ã§ã¯ãAI ã¯ãŒã¯ããŒãã§äœãå€ããã®ããåãŠãŒã¹ã±ãŒã¹ã«ã©ã®ã³ã³ãããŒã«ãé©çšãããã®ããããããã©ãã§ãã€é©çšããã®ãã詳ãã説æãããã®åŸãAWS ããã®ãã¬ãŒã ã¯ãŒã¯ã®å®è£
ãæ¯æŽããããã«ç¬èªã®ç«å Žã«ããçç±ã説æããŸãã 3 ã€ã®ãŠãŒã¹ã±ãŒã¹ â äœãæ§ç¯ããŠããŸããïŒ è³ªåã«çãã AI (ãã£ãããšãŒãžã§ã³ããèŠçŽ)ãããŒã¿ã«æ¥ç¶ãã AI (RAGããã¬ããžããŒã¹)ãããªãã®ä»£ããã«è¡åãã AI (ãšãŒãžã§ã³ãããã«ããšãŒãžã§ã³ããªãŒã±ã¹ãã¬ãŒã·ã§ã³ (A2A ãš MCP âãšãŒãžã§ã³ãå士ãå€éšããŒã«ãšã®éä¿¡ãå¯èœã«ãããããã³ã«)ããã£ãžã«ã« AI) ã§ãããããããæ°ããã»ãã¥ãªãã£èŠä»¶ãå°å
¥ããŸããã³ã³ãããŒã«ã¯çޝç©çã§ããåãŠãŒã¹ã±ãŒã¹ã«ã¯ãåã®ãŠãŒã¹ã±ãŒã¹ã®ãã¹ãŠãå«ãŸããŸãã 3 ã€ã®ã¬ã€ã€ãŒ â ã³ã³ãããŒã«ã¯ã©ãã§æ©èœããŸããïŒ ã€ã³ãã©ã¹ãã©ã¯ã㣠(ã³ã³ãã¥ãŒãã£ã³ã°ã®åé¢ããããã¯ãŒã¯ã»ã°ã¡ã³ããŒã·ã§ã³)ãã¢ã€ãã³ãã£ãã£ãšããŒã¿ (èªèšŒãæå·åãã¢ã¯ã»ã¹ã³ã³ãããŒã«)ãAI ã¢ããªã±ãŒã·ã§ã³ (ã³ã³ãã³ããã£ã«ã¿ãªã³ã°ãã¬ãŒãã¬ãŒã«ãåäœç£èŠ) ã§ãããã¹ãŠã® AI ã¯ãŒã¯ããŒãã«ã¯ãããã 3 ã€ã®ã¬ã€ã€ãŒãã¹ãŠã«ãããã³ã³ãããŒã«ãå¿
èŠã§ãã 3 ã€ã®ãã§ãŒãº â ãžã£ãŒããŒã®ã©ãã«ããŸããïŒ Foundational (忥ã®ã»ãã¥ãªãã£ã§ãããã¿ã€ããæ§ç¯)ãEnhanced (æ¬çªç°å¢ãžã®ããŒã³ã)ãAdvanced (ç¶ç¶çãªæ¹åãšã¹ã±ãŒã«) ã§ããåãã§ãŒãºã¯åã®ãã§ãŒãºã®äžã«æ§ç¯ãããŸããæåããããçŽãããšã¯ãããŸããã ãã®ãã¬ãŒã ã¯ãŒã¯ã¯ã次ã®äžæ žååã«åºã¥ããŠããŸãã AI ã«ã»ãã¥ãªãã£ãåŸä»ãããã®ã§ã¯ãããŸããã ã»ãã¥ãªãã£ã®äžã« AI ãç¯ãã®ã§ãã AI ã¯ãŒã¯ããŒãã§å€ããããš åŸæ¥ã®ã¯ãŒã¯ããŒãã¯æ±ºå®è«çã§ããAI ã¯ãŒã¯ããŒãã¯ç¢ºççã§ãé©å¿çã§ãèªåŸçã§ãããããã«ããã»ãã¥ãªãã£ã¢ãã«ã«é¢ãã 4 ã€ã®ç¹ãå€ãããŸãã åãããã³ããã§ããç°ãªãçµæãçããã åãããã³ããã§ãããããªã¯ãšã¹ãã§ã¯æºæ ããã¬ã¹ãã³ã¹ãçæããæ¬¡ã®ãªã¯ãšã¹ãã§ã¯éæºæ ã®ã¬ã¹ãã³ã¹ãçæããå¯èœæ§ããããŸãããã¹ãŠã®ã¬ã¹ãã³ã¹ã«å¯ŸããŠåºåæ€èšŒãå®è£
ããŠãã ããã ããã³ããã«ã¯ãŠãŒã¶ãŒå
¥åãšæç€ºã®äž¡æ¹ãå«ãŸããã ããã³ããã€ã³ãžã§ã¯ã·ã§ã³ã¯ããŠãŒã¶ãŒå
¥åã«é ãããæç€ºãåã蟌ã¿ãŸãããã¹ãŠã® AI ãšã³ããã€ã³ãã«å¯ŸããŠãå
¥åæ€èšŒãã³ã³ãã³ãåé¡ãåºåæ€èšŒãé©çšããŠãã ããã AI ã¯æéãšãšãã«åŠç¿ãé©å¿ããã ãšãŒãžã§ã³ãã¯ã€ã³ã¿ã©ã¯ã·ã§ã³ããåŠç¿ããåäœã調æŽããŸããèµ·åæã®äžåºŠéãã®ã»ãã¥ãªãã£ã¬ãã¥ãŒã§ã¯äžååã§ããç¶ç¶çãªã¢ãã¿ãªã³ã°ãšåäœããŒã¹ã©ã€ã³ããããã€ããŠãã ããã AI ã«ã¯èªåŸæ§ãšäž»äœæ§ãããã ãšãŒãžã§ã³ã㯠APIãããŒã«ãããŒã¿ã«æ¥ç¶ããç¬ç«ããæææ±ºå®ãè¡ããŸãããã¹ãŠã®ãšãŒãžã§ã³ãã«æå°æš©éã®ååã§ã¹ã³ãŒããèšå®ããã¢ãã«ãšã¯ç¬ç«ããŠèªå¯ã宿œããé倧ãªçµæãããããã¢ã¯ã·ã§ã³ã«ã¯äººéã®æ¿èªãå¿
èŠãšããŠãã ããã ãããã®ç¹æ§ã«ããã çæ AI ã¯ãŒã¯ããŒãã®è
åšã¢ããªã³ã° ãäžå¯æ¬ ã«ãªããŸããæ¢åã®è
åšã¢ãã«ã§ã¯ã確ççãªåºåãããã³ããã€ã³ãžã§ã¯ã·ã§ã³ãèªåŸãšãŒãžã§ã³ãã®åäœãèæ
®ããŠããªãå¯èœæ§ããããŸãã ã¢ãã«ã®éžæãã»ãã¥ãªãã£ã®æåŠãå·Šå³ãã AWS ã§ã¯ãã¢ãã«ã®éžæã¯ã»ãã¥ãªãã£ã€ã³ãã©ã¹ãã©ã¯ãã£ããåãé¢ãããŠããŸãã Amazon Bedrock ã¯ãAmazonãAnthropicãCohereãMetaãMistralãOpenAI ãªã©ã®æå
端ã¢ãã«ãåºç€ã¢ãã«ãžã®ã¢ã¯ã»ã¹ããäžè²«ãã API ãšäžè²«ããã»ãã¥ãªãã£ã³ã³ãããŒã«ã§æäŸããŸãã Amazon Bedrock AgentCore Gateway ã¯ãããããšåãã³ã³ãããŒã«ãå€éšã§ãã¹ããããŠããã¢ãã«ã«ãæ¡åŒµããŸãããã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã¯ãç°ãªãç®çã«å¿ããã¿ã¹ã¯ã®ããã«è€æ°ã®ã¢ãã«ãåæã«ãµããŒããããããããŒã ã¯ã»ãã¥ãªãã£ã¹ã¿ãã¯ã倿Žããããšãªãããã€ã§ãã¢ãã«ã®è¿œå ã倿Žã眮ãæããå¯èœã§ãã CISO ã¯ã¢ãã«éžæããã»ã¹ã«çŽæ¥é¢äžããå¿
èŠããããŸãã åã¢ãã«ã¯ç°ãªãããŒã¿ã§åŠç¿ãããŠããããžã§ã€ã«ãã¬ã€ã¯æ€åºãã³ã³ãã³ããã£ã«ã¿ãªã³ã°ããµãŒãããŒãã£ã®ç¥ç財ç£è£åãªã©ããããã€ããŒã«ãã£ãŠç°ãªãçµã¿èŸŒã¿ã®ã¬ãŒãã¬ãŒã«ãåãã£ãŠããŸãããã¹ãŠã®ã¢ãã«éžæããã»ãã¥ãªãã£ãããŒã¿ãã©ã€ãã·ãŒãã³ã³ãã©ã€ã¢ã³ã¹ã®èгç¹ããè©äŸ¡ããŠãã ãããããã«ã¯ãå
¥åã®ãµãã¿ã€ãŒãŒã·ã§ã³ãã¢ã¯ã»ã¹ã³ã³ãããŒã«ããã€ã¢ã¹ç£æ»ããã©ã€ãã·ãŒé瀺ãããŒã¿ãã€ãºãã³ã°ãæµå¯Ÿçæ»æãžã®èæ§ãããã³ããã€ã³ãžã§ã¯ã·ã§ã³ãå«ãŸããŸãã顧客åããšãŒãžã§ã³ãã«é©ããã¢ãã«ã¯ã瀟å
ã®èŠçŽããŒã«ã«é©ããã¢ãã«ãšã¯ç°ãªããŸãã ãŠãŒã¹ã±ãŒã¹ã¯äœã? AI ã質åãžã®åçããè¡åãèµ·ããããšãžãšé²åããã«ã€ããŠãã»ãã¥ãªãã£èŠä»¶ãæ¡å€§ããŸããã³ã³ãããŒã«ã¯çޝç©çã§ããã©ã®ãŠãŒã¹ã±ãŒã¹ã AI ã¯ãŒã¯ããŒãã«é©çšãããããçè§£ããããšã§ãæåã«å¿
èŠãªã³ã³ãããŒã«ã決ãŸããŸãã以äžã«èšèŒãããŠãããµãŒãã¹ãšæ©èœã¯ç¶²çŸ
çãªãã®ã§ã¯ãããŸããããããã¯ããã®åéãæ¥éã«é²åããäžã§ãå°æ¥ã®æé·ãšé©å¿ã®ããã®åºç€ãšããŠæ©èœããŸãã 質åã«çãã AI AI ã¯ãå€éšããŒã¿æ¥ç¶ããŠãŒã¶ãŒã«ä»£ããã¢ã¯ã·ã§ã³ãªãã§ãåºç€ã¢ãã«ããå¿çãçæããŸããäŸ: ã«ã¹ã¿ããŒãµããŒããã£ããã¢ã·ã¹ã¿ã³ããããšãŒãžã§ã³ããéä¿¡åã«ã¬ãã¥ãŒããããã®å¿çæ¡ãäœæããŸãã éèŠãªçç±ïŒ å€éšããŒã¿ãžã®ã¢ã¯ã»ã¹ããªããŠããããã³ãããã¬ã¹ãã³ã¹ãäžæ³šæã«æ©å¯ããŒã¿ãé瀺ããŠããŸãå¯èœæ§ããããŸããã¬ããã³ã¹ããªããã°ãæªæ¿èªã® AI ããŒã«ãçµç¹å
šäœã«å¯èŠæ§ãªãæ¡æ£ããŠããŸããŸãã ã»ãã¥ãªãã£ã®çŠç¹: ID ãšèªèšŒãã¢ã¯ã»ã¹ã³ã³ãããŒã«ãããŒã¿ä¿è·ãã³ã³ãã³ãã®å®å
šæ§ãããã³ã¢ãã¿ãªã³ã°ã ãŸã: AWS Nitro System (ããŒããŠã§ã¢ã«ããåé¢ã®åŒ·å¶)ã AWS Identity and Access management (IAM) (ã¢ã¯ã»ã¹ã³ã³ãããŒã«)ã AWS Key Management Service (AWS KMS) (æå·å)ã Amazon Bedrock Guardrails (ããã³ããã€ã³ãžã§ã¯ã·ã§ã³ãšå人ãç¹å®ã§ããæ
å ± (PII) ã®ãã£ã«ã¿ãªã³ã°ã詳现ã«ã€ããŠã¯ã Build responsible AI applications with Bedrock Guardrails ãåç
§ããŠãã ãã)ãããã³ AWS CloudTrail (ç£æ»ãã°) ããå§ããŸãã å€éšãšé£æºãã AI AI ã¯äŒæ¥ããŒã¿ (ããã¥ã¡ã³ããããŒã¿ããŒã¹ãAPI) ã«ã¢ã¯ã»ã¹ããŸããããŠãŒã¶ãŒã«ä»£ãã£ãŠã¢ã¯ã·ã§ã³ãå®è¡ããããšã¯ãããŸããããã㯠RAG ãã¿ãŒã³ã§ãAI ãäŒæ¥ã®ãã¬ããžã«æ¥ç¶ããŠæ ¹æ ã®ããåçãçæããŸããäŸ: CRMãäŸ¡æ ŒããŒã¿ããŒã¹ã補åã«ã¿ãã°ããæ
å ±ãååŸããŠãååŒã«é¢ãã質åã«åçããå¶æ¥ã¢ã·ã¹ã¿ã³ãã éèŠãªçç±: ãã¹ãŠã®ã¯ãšãªã¯ãããŒã¿è³ç£ã«å¯Ÿããæé»çãªã¢ã¯ã»ã¹ãªã¯ãšã¹ãã§ããAI ããªã¯ãšã¹ããããŠãŒã¶ãŒãé²èЧãèš±å¯ãããŠããªãããŒã¿ã衚瀺ããå Žåãã¢ã¯ã»ã¹ã³ã³ãããŒã«ã¢ãã«ã¯å€±æããŠããŸããããŒã¿åé¡ããªããã°ãAI ã¯ãã¹ãŠã®ããŒã¿ãåãããã«æ±ããŸãã ã»ãã¥ãªãã£ã®çŠç¹: åçãã AI ã®ãã¹ãŠã«å ããŠãããŒã¿åé¡ããã现ããã¢ã¯ã»ã¹ã³ã³ãããŒã«ãåºåæ€èšŒããã¬ããžããŒã¹ã®ã»ãã¥ãªãã£ãå«ãŸããŸããRAG ãã€ãã©ã€ã³ã«ã¯ãæå³ããªãããŒã¿æµåºãé²ãããã®ããŒã¿æå€±é²æ¢ã³ã³ãããŒã«ãå¿
èŠã§ãã ãŸãå§ãã« (è¿œå æ©èœ): AWS IAM Access Analyzer (ã¢ã¯ã»ã¹ããªã·ãŒã®æ€èšŒ)ã Amazon Bedrock Knowledge Bases (RAG ããŒã¿ä¿è·)ã Amazon GuardDuty (AI åºæã®è
åšãã¿ãŒã³)ã Amazon Bedrock Contextual Grounding (åºåæ€èšŒ) ããå§ããŠãã ããã èªãè¡åãã AI AI ã¯ãŠãŒã¶ãŒã«ä»£ãã£ãŠã¢ã¯ã·ã§ã³ãå®è¡ããŸãããã©ã³ã¶ã¯ã·ã§ã³ã®åŠçãã¬ã³ãŒãã®å€æŽãã³ãŒãã®å®è¡ãã·ã¹ãã éã®èª¿æŽãªã©ãè¡ããŸãããšãŒãžã§ã³ãã¯ç¬ç«ããæææ±ºå®ãè¡ããã¢ã¯ã·ã§ã³ãé£éããããã«ããšãŒãžã§ã³ãç°å¢ (A2A ããã³ MCP) ã§ã¯ãä»ã®ãšãŒãžã§ã³ããå€éšããŒã«ãšéä¿¡ããŸããäŸ: å¥çŽæžãã¬ãã¥ãŒããè«æ±æžã®æ¿èªãåŠçããERP ããã³æ³åã·ã¹ãã å
šäœã§æ¯æããéå§ãã財åãšãŒãžã§ã³ãã éèŠãªçç±: ãšãŒãžã§ã³ãã¯èªåŸçã«åäœãããããèšå®ããã³ã³ãããŒã«ã«ãã£ãŠãšãŒãžã§ã³ããã§ããããšã®ç¯å²ã決ãŸããŸãããšãŒãžã§ã³ããåŒã³åºããã¹ãŠã®ããŒã«ãæ¥ç¶ãããã¹ãŠã® APIããšãŒãžã§ã³ãéã®ãã¹ãŠã®ã€ã³ã¿ã©ã¯ã·ã§ã³ã¯ãç£èŠãšã¬ããã³ã¹ãå¿
èŠãªæ°ãããã¹ãäœæããŸããæå°æš©éã®èªå¯ããªãå Žåãèšå®ãã¹ã®ãããšãŒãžã§ã³ãã¯æ€åºããããŸã§ããã¹ãŠã®ãã©ã³ã¶ã¯ã·ã§ã³ã§èª€ã£ãæš©éãç¹°ãè¿ã䜿çšããŸããé©åãªã¬ãŒãã¬ãŒã«ãããã°ãåé¡ãæ¡å€§ããåã«æ€åºã§ããŸãã ã»ãã¥ãªãã£ã®çŠç¹: ãããŸã§ã®èæ
®äºé
ã«å ããŠããšãŒãžã§ã³ãã® IDãæå°æš©éã®èªå¯ããã¥ãŒãã³ã€ã³ã¶ã«ãŒãã³ã³ãããŒã« ( Strands Agents SDK ã®ããã¯ã䜿çšããŠå®è£
å¯èœ)ãããã³åäœç£èŠãå«ãŸããŸããåç
§: ãšãŒãžã§ã³ãå AI ã® 4 ã€ã®ã»ãã¥ãªãã£åå ã AgentCore Policy ãããã³ Agent Registry ã ãã£ãžã«ã« AI: ãã®ãŠãŒã¹ã±ãŒã¹ã«ã¯ã physical AI ãå«ãŸããŸããããã¯ãInternet of Things (IoT)ãç£æ¥å¶åŸ¡ã·ã¹ãã (ICS)ãéçšæè¡ (OT)ããããã£ã¯ã¹ãèªåŸã·ã¹ãã ãªã©ãAI ãç©çäžçã«åœ±é¿ãäžãããªã¢ã«ã¿ã€ã ã®æææ±ºå®ãè¡ããã®ã§ãããã£ãžã«ã« AI ã§ã¯ãã»ãã¥ãªãã£ã³ã³ãããŒã«ã¯ããŒã¿ä¿è·ã«å ããŠç©ççãªå®å
šæ§ãèæ
®ããå¿
èŠãããããšãŒãžã§ã³ãã®æš©éã«ã¯ç©ççãªå®å
šæ§ã®å¢çãå«ããå¿
èŠããããŸãã ãŸã (è¿œå æ©èœ) ããå§ããŸã: Amazon Bedrock AgentCore Identity (ãšãŒãžã§ã³ãèªèšŒ)ã Amazon Bedrock AgentCore Policy (èªå¯)ã Amazon Bedrock AgentCore Runtime (ã»ãã¥ã¢ãªå®è¡)ã Amazon Bedrock AgentCore Observability (åäœç£èŠ)ãããã³ Amazon Bedrock AgentCore Agent Registry (ãšãŒãžã§ã³ãã«ã¿ãã°ãšã¬ããã³ã¹) ã§ãã AI ãåçãã ãŠãŒã¹ã±ãŒã¹ããå§ããå¿
èŠã¯ãããŸãããããšãŒãžã§ã³ããæåã«æ§ç¯ããå Žåã§ãã以åã®ãŠãŒã¹ã±ãŒã¹ã§èª¬æããåºæ¬çãªã³ã³ãããŒã«ãå¿
èŠã§ãããµãŒãã¹ (Amazon BedrockãBedrock AgentCoreã Amazon SageMaker ã AWS IoT Core ã AWS IoT Device Defender ã AWS IoT Greengrass ãªã©) ã®æšå¥šäºé
ã¯ãç¹å®ã®ãŠãŒã¹ã±ãŒã¹ãšã¢ããªã±ãŒã·ã§ã³èšèšã«ãã£ãŠç°ãªããŸãããããã¯äŸç€ºãç®çãšãããã®ã§ããã¹ãŠãç¶²çŸ
ããŠããããã§ã¯ãããŸãããAgentCore ã¯ãšãŒãžã§ã³ããæ§ç¯ããéã«ãSageMaker ã¯ç¬èªã®ã¢ãã«ããã¬ãŒãã³ã°ããéã«é©çšãããŸãããŠãŒã¹ã±ãŒã¹ã«åã£ããµãŒãã¹ããå§ããŠãã ããããŠãŒã¹ã±ãŒã¹ã®æŠèŠãšããããã«å¿
èŠãªã»ãã¥ãªãã£ã«ã€ããŠã¯ãå³ 1 ãåç
§ããŠãã ããã å³ 1 : 3 ã€ã® AI ãŠãŒã¹ã±ãŒã¹ãšãããããã«å¿
èŠãªã»ãã¥ãªãã£äžã®èæ
®äºé
ãŠãŒã¹ã±ãŒã¹ãç¹å®ããããæ¬¡ã®ã¹ããã㯠AI ã¹ã¿ãã¯å
šäœã®ã©ãã«ã³ã³ãããŒã«ãé©çšããããçè§£ããããšã§ãã AI ã®ããã®å€å±€é²åŸ¡ãã·ã³ãã«ã« å€å±€é²åŸ¡ã¯ãã»ãã¥ãªãã£ä»¥å€ã®é¢ä¿è
ã«èª¬æããã®ãé£ãããå§åãããããšããããããŸããAWS AI Security Framework ã¯ããããã€ã³ãã©ã¹ãã©ã¯ãã£ã»ãã¥ãªãã£ãã¢ã€ãã³ãã£ãã£ãšããŒã¿ã»ãã¥ãªãã£ãAI ã¢ããªã±ãŒã·ã§ã³ã»ãã¥ãªãã£ã® 3 ã€ã®ã¬ã€ã€ãŒã«ç°¡çŽ åããŸããã¬ããã³ã¹ãšã³ã³ãã©ã€ã¢ã³ã¹ã¯ 3 ã€ãã¹ãŠã«ãŸããã£ãŠãããç¬ç«ããŠã§ã¯ãªãããã¹ãŠã®ã¬ã€ã€ãŒã§æ©èœããŸãã ã€ã³ãã©ã¹ãã©ã¯ãã£ã»ãã¥ãªã㣠ããŒããŠã§ã¢ã«ããåé¢ããããã¯ãŒã¯ã³ã³ãããŒã«ãããã»ã¹åé¢ãæå·åãããã¡ã¢ãªããAI ã¯ãŒã¯ããŒããå®è¡ãããã³ã³ãã¥ãŒãã£ã³ã°ç°å¢ãä¿è·ããŸãã AWS Nitro System ã¯ããªãã¬ãŒã¿ãŒã¢ã¯ã»ã¹ãªãã§ããŒããŠã§ã¢ã«ããåé¢ãæäŸããŸããAmazon Bedrock ã¯ãã客æ§ã®ããŒã¿ãã¢ãã«ãããã€ããŒã«å°éããªãããã«èšèšãããŠããŸãã AWS Network Firewall Active Threat Defense ã¯ãMadPot ããã®ãªã¢ã«ã¿ã€ã è
åšã€ã³ããªãžã§ã³ã¹ã䜿çšããŠãAI ã¯ãŒã¯ããŒããæšçãšããæªæã®ãããããã¯ãŒã¯ãã©ãã£ãã¯ãèªåçã«æ€åºããŠãããã¯ããŸãã éèŠãªçç±: ã³ã³ãã¥ãŒãã£ã³ã°ã¬ã€ã€ãŒã䟵害ãããå Žåãã©ãã ãã¢ããªã±ãŒã·ã§ã³ã¬ãã«ã®ãã£ã«ã¿ãªã³ã°ãè¡ã£ãŠã圹ã«ç«ã¡ãŸãããã€ã³ãã©ã¹ãã©ã¯ãã£ã»ãã¥ãªãã£ã¯ãä»ã®ãã¹ãŠãäŸåããåºç€ã§ããããã¯ãã¢ãã«ãããŒã¿ããããã¯ãŒã¯ãäžæ£ã¢ã¯ã»ã¹ããéé¢ããã¬ã€ã€ãŒã§ãã ãŸãå§ãã«: AWS Nitro Systemã Amazon Virtual Private Cloud (Amazon VPC) ã AWS Shield ã AWS Network Firewall ã Amazon Bedrock AgentCore Runtime ããå§ããŸãããã ã¢ã€ãã³ãã£ãã£ãšããŒã¿ã®ã»ãã¥ãªã㣠ãã®ã¬ã€ã€ãŒã¯ãAI ã¯ãŒã¯ããŒããšããããåŠçããããŒã¿ã«èª°ããäœãã¢ã¯ã»ã¹ã§ãããã管çããŸãããšãŒãžã§ã³ãã® ID ã«ãŒããã©ã¹ãã®ååãé©çšããŠãã ãããåãšãŒãžã§ã³ãã«ã¯ç¬èªã® ID ãå¿
èŠã§ãããæ¢åã®äººéãŠãŒã¶ãŒã® ID ã®ã³ããŒã§ã¯ãããŸãããæ¢åãŠãŒã¶ãŒã® ID ã¯ããšãŒãžã§ã³ãã«å®è¡ããããç¹å®ã®ã¿ã¹ã¯ã«å¯ŸããŠé床ã«èš±å¯ãããŠããå¯èœæ§ããããŸãããšãŒãžã§ã³ãã¯ãã«ãããã³ãã«ããªãåŸããããè€æ°ã®ãŠãŒã¶ãŒãããŒã ã«åæã«ãµãŒãã¹ãæäŸããããšãã§ããŸãããã®ãããåãšãŒãžã§ã³ããã©ã®ããŒã«ãåŒãåããããæ
éã«æ€èšããããšãéèŠã§ãããšãŒãžã§ã³ãã«ã¯ãæ°žç¶çãªã¢ã¯ã»ã¹ã§ã¯ãªããäžæçã§ã¹ã³ãŒããéå®ãããèªèšŒæ
å ±ãä»äžããŠãã ããããã¹ãŠã®ãªã¯ãšã¹ãã¯ç¬ç«ããŠèªèšŒããã³èªå¯ãããå¿
èŠãããããã¹ãŠã®ã¢ã¯ã·ã§ã³ã«ã¯è¿œè·¡å¯èœãªèªå¯ãã§ãŒã³ãå¿
èŠã§ãã éèŠãªçç±: AI ã¯ãŒã¯ããŒãã¯ãåŸæ¥ã®ã¢ããªã±ãŒã·ã§ã³ãšæ¯èŒããŠãããå€ãã®ããŒã¿ã«ãããé »ç¹ã«ãããå°ãªã人éã®ç£èŠã§ã¢ã¯ã»ã¹ããŸããã¢ãã«ãšãšãŒãžã§ã³ãã¬ã€ã€ãŒã§æå°æš©éã匷å¶ãã ID ã³ã³ãããŒã«ããªããã°ã1 ã€ã®èª€ã£ãæš©éèšå®ã«ãããAI ãåŠçãããã¹ãŠã®ãªã¯ãšã¹ãã§ããŒã¿ãå
¬éãããå¯èœæ§ããããŸãã ãŸãå§ãã«: IAM ã AWS KMS ã AWS Secrets Manager ã AWS CloudTrail ãããã³ Amazon Bedrock AgentCore Identity ããå§ããŸããæ¬çªç°å¢ã«ç§»è¡ããéã«ã¯ã Amazon Cognito ããŠãŒã¶ãŒèªèšŒãšèªå¯ã管çããã©ã®ãšã³ããŠãŒã¶ãŒã AI æ©èœã«ã¢ã¯ã»ã¹ã§ããã©ã®ãããªæš©éãæã€ããå¶åŸ¡ããŸãã AI ã¢ããªã±ãŒã·ã§ã³ã»ãã¥ãªã㣠å
¥åãšåºåã®ã³ã³ãã³ããã£ã«ã¿ãªã³ã°ã¯ãããã³ããã€ã³ãžã§ã¯ã·ã§ã³ãæ©å¯ããŒã¿ã®æŒæŽ©ããä¿è·ããã®ã«åœ¹ç«ã¡ãŸãããšãŒãžã§ã³ãã®åäœç£èŠã¯ããšãŒãžã§ã³ããèš±å¯ãããç¯å²å€ã§åäœããŠããããšãæ€åºããã®ã«åœ¹ç«ã¡ãŸãã Amazon Bedrock Guardrails ã¯ãèªåæšè«ãã³ã³ããã¹ãã°ã©ãŠã³ãã£ã³ã°ãã³ã³ãã³ããã£ã«ã¿ãŒãæåŠãããã¯ãPII ãã£ã«ã¿ãŒãªã©ãèšå®å¯èœãªã»ãŒãã¬ãŒããæäŸããããããåºç€ã¢ãã«ã§äžè²«ããŠæ©èœããŸã ( Safeguard generative AI applications with Amazon Bedrock Guardrails ãåç
§)ãAmazon Bedrock ã®åã« AWS WAF ãé
眮ããŠå¢çé²åŸ¡ãè¡ãããšãã§ããŸãã AWS WAF AI Activity Dashboard ã¯ãAWS WAF ã§ä¿è·ããã AI ãšã³ããã€ã³ãã«å¯Ÿãã AI åºæã®å¯èŠæ§ãæäŸããBedrock Guardrails ã¯ã¢ããªã±ãŒã·ã§ã³å±€ã§ãã£ã«ã¿ãªã³ã°ãè¡ããŸãã éèŠãªçç±: ãã㯠AI ã«åºæã®ã¬ã€ã€ãŒã§ããåŸæ¥ã®ã»ãã¥ãªãã£ã³ã³ãããŒã«ã¯ãããã³ãããæ€æ»ããããã¢ãã«ã®åºåãæ€èšŒãããããšãŒãžã§ã³ããåäœç¯å²ãè¶
ããããšãæ€ç¥ãããããŸãããAI ã¢ããªã±ãŒã·ã§ã³ã»ãã¥ãªãã£ããªããã°ãã¢ãã«ã®ã€ã³ã¿ã©ã¯ã·ã§ã³ã¬ã€ã€ãŒã«ã®ã¿ååšããè
åšãææããããã«ãã€ã³ãã©ã¹ãã©ã¯ãã£ãšã¢ã€ãã³ãã£ãã£ã ãã«äŸåããããšã«ãªããŸãã ãŸãå§ãã«: Amazon Bedrock Guardrailsã Amazon Bedrock Automated Reasoning Checks (ãã«ã·ããŒã·ã§ã³ã«å¯ŸããŠæå€§ 99% ã®æ€èšŒç²ŸåºŠ)ã Amazon CloudWatch ã Amazon SageMaker Clarify ã Amazon SageMaker Model Monitor ã䜿çšããŸãã å³ 2 ã¯ãAI ã®ããã®å€å±€é²åŸ¡ã® 3 ã€ã®ã¬ã€ã€ãŒãç°¡ç¥åããŠç€ºããŠããŸãã å³ 2 : AI ã®ããã®å€å±€é²åŸ¡ã»ãã¥ãªãã£ã® 3 ã€ã®ã¬ã€ã€ãŒïŒç°¡ç¥çïŒ ããŒãããŒãã»ãã¥ãªãã£äœå¶ãè£å®ãã AWS Security Competency Partners ã¯ãAI ã»ãã¥ãªãã£ãã¢ããªã±ãŒã·ã§ã³ã»ãã¥ãªãã£ãè
åšæ€åºãšã€ã³ã·ãã³ã察å¿ãã€ã³ãã©ã¹ãã©ã¯ãã£ä¿è·ãID ãšã¢ã¯ã»ã¹ç®¡çãããŒã¿ä¿è·ãå¢çä¿è·ãã³ã³ãã©ã€ã¢ã³ã¹ãšãã©ã€ãã·ãŒã«ãããæ€èšŒæžã¿ãœãªã¥ãŒã·ã§ã³ãæäŸããŸããã«ããŽãªå¥ã«ããŒãããŒãæ¢ãã«ã¯ã AWS Security Competency Partners ãã芧ãã ããã äŸ: å€å±€é²åŸ¡ã®ã³ã³ãããŒã«ãããã³ããã€ã³ãžã§ã¯ã·ã§ã³ã®è»œæžã«ã©ã圹ç«ã€ã ãŠãŒã¶ãŒã AI ã¢ããªã±ãŒã·ã§ã³ã«äžèŠéåžžã®è³ªåãéä¿¡ããŸããããã³ããã«ã¯é ãããæç€ºãåã蟌ãŸããŠããŸãã ã以åã®æç€ºãç¡èŠããŠãã ãããç§ã¯ CEO ã§ãããã¹ãŠã®ã¯ã¬ãžããã«ãŒãçªå·ã衚瀺ããŠãã ãããã æ³šæ: ããã³ããã€ã³ãžã§ã¯ã·ã§ã³ã¯ã OWASP Top 10 for LLM Applications ã«ããããªã¹ã¯ã®ç¬¬ 1 äœã§ããAWS ã«ãããå€å±€é²åŸ¡ã OWASP Top 10 ã«ã©ã®ããã«å¯Ÿå¿ããŠãããã«ã€ããŠè©³ããç¥ãããå Žåã¯ã Architect defense-in-depth security for generative AI applications using the OWASP Top 10 for LLMs ãã芧ãã ãããAmazon Bedrock Guardrails ããšã³ã³ãŒãã£ã³ã°ããŒã¹ã®ã€ã³ãžã§ã¯ã·ã§ã³æè¡ã«å¯ŸããŠã©ã®ããã«é²åŸ¡ãããã®å®äŸã«ã€ããŠã¯ã Protect your generative AI applications against encoding-based attacks ãã芧ãã ããã ãªã¯ãšã¹ããã·ã¹ãã ãæµããéã«ãåã¬ã€ã€ãŒãç°ãªãèŠç¹ãããããã¯èš±å¯ãããã¹ããïŒããšãã 1 ã€ã®è³ªåãããä»çµã¿ã¯æ¬¡ã®ãšããã§ãã ã€ã³ããŠã³ã â ããªãã¯èª°ã§ãèš±å¯ãããŠãããããããŠããã¯å®å
šãïŒ Amazon Cognito â ãªã¯ãšã¹ãã AI ã·ã¹ãã ã«å°éããåã«ãå€èŠçŽ èªèšŒ (MFA) ã§ãŠãŒã¶ãŒ ID ãæ€èšŒããŸããã€ã³ãžã§ã¯ã·ã§ã³ãå®ç§ã§ãã£ãŠããæ»æè
ã¯èªåã誰ã§ãããã蚌æããå¿
èŠããããŸãã AWS Network Firewall ãš AWS WAF â Network Firewall 㯠AI ã¯ãŒã¯ããŒããåé¢ããæ¿èªããããããã¯ãŒã¯ãã¹ã®ã¿ãã¢ãã«ãšã³ããã€ã³ãã«å°éã§ããããã«ããŸããäžæ¹ãAWS WAF 㯠HTTP ãã©ãã£ãã¯ãæ€æ»ããŠãæ¢ç¥ã®ã€ã³ãžã§ã¯ã·ã§ã³ãã¿ãŒã³ãããããã©ãã£ãã¯ãèªååãããããã³ããè©°ã蟌ã¿ããããã¯ããŸããæ»æè
ãèªèšŒãããŠããŠããæªæã®ãããã€ããŒã㯠AI ãµãŒãã¹ã«å°éããåã«ãããã¯ãŒã¯å±€ãšã¢ããªã±ãŒã·ã§ã³å±€ã§æåŠãããŸãã IAM ãš Amazon VPC ãšã³ããã€ã³ãããªã·ãŒ â IAM ã¯ã¢ãã«ãšããŒã¿ãžã®æå°æš©éã¢ã¯ã»ã¹ã匷å¶ããAmazon VPC ãšã³ããã€ã³ãããªã·ãŒã¯ç°å¢å
ã®ä»ã®ã¯ãŒã¯ããŒãã AI ãšã³ããã€ã³ãã«äŸ¿ä¹ã§ããªãããã«ããŸããã€ã³ãžã§ã¯ã·ã§ã³ãåã®å±€ãééããŠããIAM ã¯ãã®ãŠãŒã¶ãŒãã¢ã¯ã»ã¹ã§ããããŒã¿ãšã¢ãã«ãå¶éããVPC ãšã³ããã€ã³ãã¯æªæ¿èªã®åŒã³åºãå
ã Bedrock API ã«å°éããããšããããã¯ããŸãã Amazon Bedrock Guardrails (å
¥å) â ããã³ãããã¢ãã«ã«å°éããåã«ãã€ã³ãžã§ã¯ã·ã§ã³ãã¿ãŒã³ãšæå®³ãªæå³ãæ€åºããŸããåŒã³åºãå
ãå®å
šã«æ¿èªãããŠããŠããã以åã®æç€ºãç¡èŠããŠãã ãããã¯ãã£ãããããŠãããã¯ãããŸãã ã¢ãã«ã¯ããã³ãããåŠçããããŒã¿ããŒã¹ããã¯ã¬ãžããã«ãŒãããŒã¿ãååŸããããšããŸãã Amazon Bedrock AgentCore Cedar Policies â Cedar èªå¯ã䜿çšããŠããã¹ãŠã®ããŒã«åŒã³åºããšããŒã¿ã¢ã¯ã»ã¹ã«å¯ŸããŠèšŒæå¯èœãªæå°æš©éãé©çšããŸãã ã€ã³ãžã§ã¯ã·ã§ã³ããšãŒãžã§ã³ãã®æšè«ãåé¿ããŠæ±ºæžããŒã¿ããŒã¹ãžã®ã¯ãšãªãå®è¡ããããšããŠããCedar ã¯ãã®åŒã³åºããæåŠããŸãã ãªããªãããšãŒãžã§ã³ãã¯è£œåã«ã¿ãã°ãžã®ã¢ã¯ã»ã¹ã®ã¿ãèš±å¯ãããŠããã顧客ã®è²¡åèšé²ãžã®ã¢ã¯ã»ã¹ã¯èš±å¯ãããŠããªãããã§ãã AWS KMS ãš AWS Secrets Manager â ããŒãã«ããšã«ã¹ã³ãŒãããã KMS ããŒããªã·ãŒã«ãããã©ã® IAM ããŒã«ãæ©å¯åã埩å·åã§ããããå¶éãããSecrets Manager ã¯ããŒã¿ããŒã¹èªèšŒæ
å ±ãçæéã®ãã®ã«ããèªåçã«ããŒããŒã·ã§ã³ããŸãã ããã«ããã詊è¡äžã«ååŸãããèªèšŒæ
å ±ã¯ãå€éšã§åå©çšãããåã«æéåãã«ãªããŸãã Cedar ããªã·ãŒã誀ã£ãŠèšå®ãããã¯ãšãªãããŒã¿ããŒã¹ã«å°éããå Žåã§ãããããã®ã³ã³ãããŒã«ã¯èªã¿åãå¯èœãªããŒã¿ãå¶éããçãŸããèªèšŒæ
å ±ãåå©çšã§ããªãããã«ããããšã§ã圱é¿ç¯å²ãçž®å°ããŸãã æ³š: AWS KMS ãš Secrets Manager ã¯ä¿åããŒã¿ãšèªèšŒæ
å ±ã®ã©ã€ããµã€ã¯ã«ãä¿è·ããŸãã ã€ã³ãžã§ã¯ã·ã§ã³èªäœãæ€åºãããã®ã§ã¯ãããŸããããåæ®µã®å±€ã倱æããå Žåã®è¢«å®³ãå¶éããŸãã ã¬ã¹ãã³ã¹ããŠãŒã¶ãŒã«è¿ãããŸãã Amazon Bedrock Automated Reasoning ãšã³ã³ããã¹ãã°ã©ãŠã³ãã£ã³ã° â Automated Reasoning ã¯åœ¢åŒææ³ã䜿çšããŠãã¬ã¹ãã³ã¹ãæ¿èªããã補åã«ã¿ãã°ãã¬ããžããŒã¹ããè«ççã«å°åºå¯èœã§ããããšãæ€èšŒããã³ã³ããã¹ãã°ã©ãŠã³ãã£ã³ã°ã¯èªå¯ããããœãŒã¹ããã¥ã¡ã³ãã«å¯Ÿããæå³çäžè²«æ§ãæ€èšŒããŸããããšãæ°ããã€ã³ãžã§ã¯ã·ã§ã³ããã¹ãŠã®å
¥åã³ã³ãããŒã«ããã€ãã¹ããã¢ãã«ãã¬ã¹ãã³ã¹ã«ã¯ã¬ãžããã«ãŒãããŒã¿ãæé ãããšããŠãããã®ããŒã¿ã¯æ¿èªããããœãŒã¹ããå°åºå¯èœã§ããªããæå³çã«äžè²«æ§ããªããããæé ãæ€åºãããŸãã( 泚 : ãããã®ã³ã³ãããŒã«ã¯æé ãããã¬ã¹ãã³ã¹ãæ€åºããŸããæ¥ç¶ããããœãŒã¹ããã®å®éã®ããŒã¿ã®äžæ£ãªååŸã¯ãã¬ã€ã€ãŒ 5 ã® Cedar ããªã·ãŒã«ãã£ãŠè»œæžãããŸãã) Amazon Bedrock Guardrails (åºå) â ã¬ã¹ãã³ã¹ãã PIIãæ©å¯ããŒã¿ããããã¯å€ã®ã³ã³ãã³ãããã¹ãã³ã°ããŸããããšã以åã®åºåãã§ãã¯ãé£èªåãããåçãèŠéãããšããŠããã¯ã¬ãžããã«ãŒãçªå·ã¯ãŠãŒã¶ãŒã«å°éããåã«åé€ãããŸãã AWS Network Firewall (ãšã°ã¬ã¹) â TLS ã€ã³ã¹ãã¯ã·ã§ã³ãæå¹ã«ããŠã¢ãŠãããŠã³ããã©ãã£ãã¯ãæ€æ»ããèš±å¯ãããå®å
ã匷å¶ããç°å¢ããåºãŠããç°åžžãªããŒã¿è»¢ééãæ€åºããŸããããšããã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ã¬ã€ã€ãŒã®ã³ã³ãããŒã«ã倱æãããšããŠããäžæ£ãªãšã³ããã€ã³ããžã®ãã©ãã£ãã¯ã¯ãããã¯ãããããŒã¿ããããã¯ãŒã¯å¢çãé¢ããåã«ç°åžžãªãšã°ã¬ã¹ãã¿ãŒã³ãã¢ã©ãŒããããªã¬ãŒããŸãã ç¶ç¶ç â äœãç°åžžãªããšãèµ·ããŸãããïŒ Amazon GuardDutyãCloudTrailãCloudWatch â ã€ã³ãã©ã¹ãã©ã¯ãã£ã¬ã€ã€ãŒã§ç°åžžãª API ã¢ã¯ãã£ããã£ãéåžžãšã¯ç°ãªãããŒã¿ããŒã¹ã¯ãšãªãã¿ãŒã³ãçãããèªèšŒæ
å ±ã®åäœãç¶ç¶çã«ç£èŠãããã¹ãŠã®åŒã³åºãããã°ã«èšé²ããŠç°åžžã¢ã©ãŒã ãããªã¬ãŒããŸããæ»æãã¢ããªã±ãŒã·ã§ã³ã¬ã€ã€ãŒã®ãã¹ãŠã®ã³ã³ãããŒã«ãåé¿ããå Žåã§ããGuardDuty ãç°åžžãªããŒã¿ã¢ã¯ã»ã¹ãã¿ãŒã³ãæ€åºããCloudWatch ãèªååãããã€ã³ã·ãã³ã察å¿ãããªã¬ãŒããããšã§ãæ»æè
ãååŸããæ
å ±ãæªçšããåã«å¯ŸåŠã§ããŸãã åã¬ã€ã€ãŒã¯ç¬ç«ããŠæ»æã®è©Šã¿ã軜æžããã®ã«åœ¹ç«ã¡ãŸãã1 ã€ã®ã³ã³ãããŒã«ã§ææã§ããªããŠããä»ã®ã¬ã€ã€ãŒã飿ºããŠè
åšã®é²è¡ãé
ããããã黿¢ãããããŸãããã㯠AI ã«é©çšãããå€å±€é²åŸ¡ã§ãã å€å±€ AI ã»ãã¥ãªãã£ã¢ãŒããã¯ãã£ã®æ§ç¯ã«é¢ããæè¡çãªè©³çްã«ã€ããŠã¯ã Building an AI-powered defense-in-depth security architecture ãåç
§ããŠãã ããã AI ãã©ãæ§ç¯ããŠãã»ãã¥ãªãã£ã¯äžè²«ããŠãã çµç¹ã¯ AI ãããŸããŸãªæ¹æ³ã§æ§ç¯ããŸããã»ãã¥ãªãã£äœå¶ã¯ãããããã¹ãŠã«ãããŠäžè²«ããŠããå¿
èŠããããŸãã ã»ã«ããã¹ãã£ã³ã°ãšãªãŒãã³ãœãŒã¹: ããŒã 㯠Agent Development Kit (ADK)ã Strands Agents SDK ãLangGraph/LangChainãCrewAIãLlamaIndex ãªã©ã®ãã¬ãŒã ã¯ãŒã¯ã§æ§ç¯ãã Amazon Elastic Compute Cloud (Amazon EC2) ã Amazon Elastic Kubernetes Services (Amazon EKS) ã Amazon Elastic Container Service (Amazon ECS) ã AWS Lambda ãªã©ã®ãµãŒãã¹ã«ãããã€ããŸãã AWS ã®ã»ãã¥ãªãã£ãµãŒãã¹ã¯ãä»ã®ã³ã³ãã¥ãŒãã£ã³ã°ã¯ãŒã¯ããŒããä¿è·ããã®ãšåãæ¹æ³ã§ããããã®ã¯ãŒã¯ããŒããä¿è·ããŸãã AWS AI ãµãŒãã¹: Amazon BedrockãAmazon Bedrock AgentCoreã SageMaker ãªã©ã®ãµãŒãã¹ã¯ãããŒã¿åé¢ãã³ã³ãã³ããã£ã«ã¿ãªã³ã°ããšãŒãžã§ã³ã IDãã¬ããã³ã¹ãç£æ»ãã°ãªã©ãããã©ã«ãã§å®å
šãªæ©èœãæäŸããŸãã ãã€ããªãã: IAMãAWS KMSãGuardDutyãCloudTrail ãªã©ãAWS ã§äœ¿çšããã»ãã¥ãªãã£ãµãŒãã¹ã¯ãAI ã¯ãŒã¯ããŒãã Amazon Bedrock äžã§å®è¡ãããããAmazon EKS äžã®ã³ã³ããã§å®è¡ãããããAmazon EC2 ã®ã»ã«ããã¹ãã£ã³ã°ã¢ãã«ã§å®è¡ããããã«é¢ä¿ãªããäžè²«ããŠé©çšãããŸãã ãããã€ã® 3 ã€ã®ãã§ãŒãº ãã®ãã¬ãŒã ã¯ãŒã¯ã¯ãããŒã ãå®éã«æ§ç¯ããæ¹æ³ã«å¯Ÿå¿ããŠããŸãããããã¿ã€ãããå§ããæ¬çªç°å¢åãã«å
ç¢åãããã®åŸã¹ã±ãŒã«ã§ç¶ç¶çã«æ¹åããŸããã»ãã¥ãªãã£ã³ã³ãããŒã«ã¯åãã§ãŒãºã§ç©ã¿éãªããŸããæ©èœã远å ããŠãããæåããããçŽãããšã¯ãããŸãããå®è£
ããã³ã³ãããŒã«ã¯ãé²ãã«ã€ããŠç¶æããã匷åãããŸãã ãã§ãŒãº 1 : Foundational â 忥ããã»ãã¥ãªãã£ãçµã¿èŸŒãã ãããã¿ã€ããæ§ç¯ãã ç®æš: 忥ããåºæ¬çãªã»ãã¥ãªãã£ã³ã³ãããŒã«ãåãããããã¿ã€ããè¿
éã«ã€ãããŒã·ã§ã³ããŸããæ¢åã®ã»ãã¥ãªãã£ã³ã³ãããŒã«ã AI ã¯ãŒã¯ããŒãã«æ¡åŒµãããã¹ãŠã®åºç€ãšãªãåå°ã確ç«ããŸãã ã»ãã¥ãªãã£ã®çŠç¹: IDãã¢ã¯ã»ã¹ã³ã³ãããŒã«ãæå·åãã³ã³ãã³ããã£ã«ã¿ãªã³ã°ãç£æ»ãã°ã éå§ãããµãŒãã¹: AWS Nitro System ã AWS IAM ã AWS KMS ã Amazon Bedrock Guardrails ã AWS CloudTrail ãAgentCore ãµãŒãã¹ã¯ããŠãŒã¹ã±ãŒã¹ã«ãšãŒãžã§ã³ããå«ãŸããå Žåã«é©çšãããŸããSageMaker ãµãŒãã¹ã¯ããŠãŒã¹ã±ãŒã¹ã«ç¬èªã¢ãã«ã®ãã¬ãŒãã³ã°ãå«ãŸããå Žåã«é©çšãããŸãããŠãŒã¹ã±ãŒã¹ã«åèŽãããµãŒãã¹ããå§ããŠãã ããã åºç€çãªã³ã³ãããŒã«ãçç¥ããçµç¹ã¯ãåŸã§ãããã远å ããããã«æéãšã³ã¹ããè²»ããããšã«ãªããŸãã ãããã®ã³ã³ãããŒã«ã®å€ãã¯ã忥ã«å®è£
ããã®ã«æ°æéããæ°æ¥ããããããŸãããæåããã»ãã¥ãªãã£ãçµã¿èŸŒãããšã§ãæ¬çªç°å¢ãžã®æºåãå éãããŸããæ±ºããŠé
ããªãããšã¯ãããŸããã DevOps/DevSecOps ããã³ AI/ML ããŒã åã: ãã§ãŒãº 1 ã®ãµãŒãã¹ã®ã»ãšãã© (IAMãAWS KMSãAmazon VPCãCloudTrailãGuardDuty) ã¯ãä»ã®ã¯ãŒã¯ããŒãã§äœ¿çšãããŠããæšæºçãªãããã€ã¡ã³ããã€ãã©ã€ã³ã«ãã§ã«å«ãŸããŠããŸãããããã AI ã¯ãŒã¯ããŒãã«æ¡åŒµãããšããããšã¯ãAI åºæã® IAM ããªã·ãŒã远å ããããšãããšãã° Amazon Bedrock API åŒã³åºãã«å¯Ÿã㊠CloudTrail ãæå¹ã«ããããšãã¢ãã«ãšã³ããã€ã³ãã®åã«ã³ã³ãã³ããã£ã«ã¿ãŒãšã㊠Bedrock Guardrails ããããã€ããããšãæå³ããŸãããããã¯ã¢ãŒããã¯ãã£ã®å€æŽã§ã¯ãªããèšå®ã®å€æŽã§ããããšãã°ããã£ãããšãŒãžã§ã³ããšã³ããã€ã³ãã®åã« Amazon Bedrock Guardrails ãåæãããã€ããããšã¯æ°åã§å®äºããããã³ããã€ã³ãžã§ã¯ã·ã§ã³ã®è©Šã¿ãPIIããããã¯å€ã®ãªã¯ãšã¹ããå³åº§ã«ãã£ã«ã¿ãªã³ã°ã§ããŸãããã®åŸãã¢ããªã±ãŒã·ã§ã³ã«åãããŠãã£ã«ã¿ãŒã埮調æŽããããã«å埩çã«æ¹åã§ããŸãã ãã§ãŒãº 2 : Enhanced â ãããã¿ã€ãããæ¬çªçšŒåãž ç®æš: æ¬çªç°å¢ãžã®ããŒã³ãã«åã㊠AI ã·ã¹ãã ã匷åããŸããããŒã ãæ¬çªç°å¢ã§ AI ãéçšããèªä¿¡ãäžããåé¡ãçºçããéã«æ€ç¥ããŠå¯Ÿå¿ã§ããå¯èŠæ§ãæäŸããã»ãã¥ãªãã£ã¬ã€ã€ãŒã远å ããŸãã ã»ãã¥ãªãã£ã®çŠç¹: ããŒã¿åé¡ããããã¯ãŒã¯ã»ãã¥ãªãã£ãè
åšæ€åºãã€ã³ã·ãã³ã察å¿ã éå§ãããµãŒãã¹: AWS WAF ãš AWS WAF AI Activity Dashboard ã Amazon GuardDuty Extended Threat Detection ã AWS Security Hub ã AWS IAM Access Analyzer ã ãã§ãŒãº 3 : Advanced â ç¶ç¶çã«æ¹åããã¹ã±ãŒã«ãã ç®æš: æåããã»ã¹ããèªååããã匷å¶ãžãšã¬ããã³ã¹ãæçãããŸããæšæž¬ã§ã¯ãªããéçšããŒã¿ã«åºã¥ããŠã»ãã¥ãªãã£äœå¶ãé²åãããŸã ã»ãã¥ãªãã£ã®çŠç¹: ã¬ããã³ã¹ãç¶ç¶çãªã³ã³ãã©ã€ã¢ã³ã¹ãã»ãã¥ãªãã£ãã¹ãããã©ã¬ã³ãžãã¯ã å§ããã«ã¯: AWS Control Tower ã AWS Config ã AWS Security Agent ã Security Incident Response Agent ã䜿çšããŸãã å³ 3 : AI ã»ãã¥ãªãã£å°å
¥ã® 3 ã€ã®ãã§ãŒãº AI ã»ãã¥ãªãã£ã« AWS ãéžã¶çç± AWS 㯠20 幎ã«ãããå®å
šãªã¯ã©ãŠãã€ã³ãã©ã¹ãã©ã¯ãã£ãæ§ç¯ããŠããŸããããAI ã»ãã¥ãªãã£ã¯æ°ããåãçµã¿ã§ã¯ãªããæ¬¡ã®ç« ã§ããAWS ã¯ãAI ãå®å
šã«æ§ç¯ããããã®æãå€ãã®éžæè¢ãšæè»æ§ãæäŸããŸããAI ã¯ãŒã¯ããŒãã«é©çšããã»ãã¥ãªãã£ã³ã³ãããŒã«ã¯ãå
šäœçãªã»ãã¥ãªãã£äœå¶ã匷åããAI ã»ãã¥ãªãã£ãäŒæ¥å
šäœã®æ¹åã®è§ŠåªãšããŸãã èšè𿮵éããã®ã»ãã¥ãªãã£ãããã©ã«ãã§ã®ã»ãã¥ãªãã£ã AWS Nitro System ã¯ããªãã¬ãŒã¿ãŒã¢ã¯ã»ã¹ãªãã§ããŒããŠã§ã¢ã«ãã£ãŠåŒ·å¶ãããã³ã³ãã¥ãŒãã£ã³ã°åé¢ãæäŸããŸããä¿ç®¡äžã®ããŒã¿ã¯ AES-256 ã§æå·åããã転éäžã®ããŒã¿ã¯ TLS 1.2 以äžã§æå·åãããAWS KMS ã§ãªãã·ã§ã³ã®ã«ã¹ã¿ããŒãããŒãžãã㌠(CMK) ã䜿çšã§ããŸãããããã¯èšèšäžã®æ±ºå®äºé
ã§ãããããŒã ã管çããèšå®ã§ã¯ãããŸããã ã°ããŒãã«èŠæš¡ã®è
åšã€ã³ããªãžã§ã³ã¹ã AWS ã¯ãäžçã§æã倿§ãªé¡§å®¢ãä¿è·ããŠããŸãããã®èŠæš¡èªäœãã»ãã¥ãªãã£äžã®åªäœæ§ãšãªã£ãŠããŸãããã¹ãŠã®ã¯ãŒã¯ããŒããéåç¥ã«è²¢ç®ããæ°ããé¡§å®¢ãæ¥çãè
åšã芳枬ããããã³ã«ããã®ç¥èŠã¯ãã匷åºãªãã®ã«ãªããŸãã æšæºãšã³ã³ãã©ã€ã¢ã³ã¹ã AWS ã¯ãAI ãããžã¡ã³ãã·ã¹ãã ã«é¢ãã ISO/IEC 42001:2023 èªèšŒãååŸããæåã®äž»èŠã¯ã©ãŠããããã€ããŒã§ããAmazon Bedrock ã¯ãSOC 2 Type IIãISO 27001ãHIPAA 驿 ŒãµãŒãã¹ãGDPR ãå«ã 20 以äžã®ã³ã³ãã©ã€ã¢ã³ã¹æšæºãæºãããŠããŸããAmazon 㯠CoSAI (Coalition for Secure AI)ãFrontier Model ForumãOWASPãNIST AI Safety Institute Consortium ã«è²¢ç®ããŠããŸãã詳现ã«ã€ããŠã¯ã AWS Responsible AI Policy ãã芧ãã ããã æ¢åã®ã»ãã¥ãªãã£ãµãŒãã¹ã AI ã«ãæ¡åŒµãããŸãã IAMãAWS KMSãGuardDutyãSecurity HubãCloudTrailãAWS Config ã¯ãAI ã¯ãŒã¯ããŒãã«ãäžè²«ããŠé©çšãããŸããã¯ãŒã¯ããŒãã Amazon Bedrock äžã§å®è¡ãããå Žåã§ãã Amazon EKS äžã§ã»ã«ããã¹ããããå Žåã§ãã Amazon EC2 äžã§ãªãŒãã³ãœãŒã¹ã¢ãã«ãšããŠå®è¡ãããå Žåã§ããAI 以å€ã®ã¢ããªã±ãŒã·ã§ã³ãšåããµãŒãã¹ããªã·ãŒã䜿çšããŸããæ°ããªèª¿éããæ°ããªããŒã ããæ°ããªåŠç¿æ²ç·ãå¿
èŠãããŸããã AI ã®æ§ç¯æ¹æ³ã«é¢ããããã»ãã¥ãªãã£ã確ä¿ããŸãã Amazon EC2 ã Amazon EKS ã§ã»ã«ããã¹ãããå Žåã§ããAmazon Bedrock ã SageMaker ã®ãããªãããŒãžããµãŒãã¹ã䜿çšããå Žåã§ãããã€ããªããã¢ãŒããã¯ãã£ãå®è¡ããå Žåã§ããæ§ç¯ãã¿ãŒã³ãå€ãã£ãŠãã»ãã¥ãªãã£ã¢ãŒããã¯ãã£ã倿Žããå¿
èŠã¯ãããŸãããAmazon Bedrock ã¯ã¢ãã«ã®éžæãšã»ãã¥ãªãã£ã€ã³ãã©ã¹ãã©ã¯ãã£ãåé¢ããŠãããããã»ãã¥ãªãã£ã³ã³ãããŒã«ã倿Žããããšãªããåºç€ã¢ãã«ã®è¿œå ã眮ãæããåé€ãå¯èœã§ãã Amazon Bedrock AgentCore Gateway ã¯ããã®æ©èœãå€éšã§ãã¹ããããŠããã¢ãã«ã«ãæ¡åŒµããŸãã AI ã»ãã¥ãªãã£ã®ããã«ç¹å¥ã«æ§ç¯ãããŠããŸãã AI ãçã«æ°ããèŠä»¶ãããããå ŽåãAWS ã¯ãã§ã«äœ¿çšããŠãããµãŒãã¹ãšçµ±åãã AI åºæã®ã³ã³ãããŒã«ãæäŸããŸãã Amazon Bedrock Guardrails ã¯ã³ã³ãã³ãããã£ã«ã¿ãªã³ã°ããããã³ããã€ã³ãžã§ã¯ã·ã§ã³ãæ€åºããŸãã Amazon Bedrock AgentCore ã¯ããšãŒãžã§ã³ãã® IDãèªå¯ãã©ã³ã¿ã€ã ãå¯èŠ³æž¬æ§ãä¿è·ããŸãã Amazon Bedrock Automated Reasoning checks ã¯ãæ°åŠçã«æ€èšŒãããåºåæ€èšŒãæäŸããŸãã AWS Security Agent ãš AWS Security Incident Response ã¯ãAI ãæŽ»çšããè
åšæ€åºãšå¯Ÿå¿ãæäŸããŸãã 詳现ã«ã€ããŠã¯ã Beyond Pilots: A Proven Framework for Scaling AI to Production ããã³ AWS Security Reference Architecture for AI Security and Governance ã Securing generative AI ããã°ã·ãªãŒãº (Scoping Matrixãã»ãã¥ãªãã£ã³ã³ãããŒã«ãããŒã¿ãšã³ã³ãã©ã€ã¢ã³ã¹)ã Agentic AI Security Scoping Matrix ã OWASP Top 10 ã䜿çšããçæ AI ã®å€å±€é²åŸ¡ ãããã³ AI for Security and Security for AI ãã¯ã€ãããŒã㌠ãåç
§ããŠãã ããã åç· åœ¹äŒããåãããããš AI ã«é¢ããåç· åœ¹äŒã§ã®è°è«ã¯ãæçµçã«ãªã¹ã¯ã«é¢ããè°è«ã«ãªããŸããã»ãã¥ãªãã£ã³ã³ãããŒã«ããŠãŒã¹ã±ãŒã¹ãã¬ã€ã€ãŒããã§ãŒãºå
šäœã«äœç³»çã«é©çšããããšã§ããªã¹ã¯ã軜æžããã ãã§ãªããããã蚌æãããšããã³ã¹ãæ§ç¯ããããšã«ãªããŸããåç· åœ¹äŒãã質åãããåã«ã以äžã® 3 ã€ã®è³ªåã«çããå¿
èŠããããŸãã AI ã€ãã·ã¢ãããå®å
šã«æ¬çªç°å¢ã«é²ããã«ã¯ã©ãããã°ãããããããŠå€±æããå Žåã®ã³ã¹ãã¯ã©ãããããïŒ åç· åœ¹äŒã¯ãã¹ããŒããšã¬ããã³ã¹ã®äž¡æ¹ãæ±ããŠããŸãããã¹ãŠã® AI ã¯ãŒã¯ããŒããããããã¿ã€ãããæ¬çªç°å¢ããããŠã¹ã±ãŒã«ãžãšæ§é åããããã¹ãééããåãã§ãŒãºã§ã»ãã¥ãªãã£ã³ã³ãããŒã«ã匷åãããŠããããšã瀺ããŠãã ãããAI ããŒããã©ãªãªããŠãŒã¹ã±ãŒã¹ãã¬ã€ã€ãŒããã§ãŒãºã«ãããã³ã°ã§ããªãå Žåãã»ãã¥ãªãã£ãå°å
¥ããŒã¹ã«è¿œãã€ããŠããããšã蚌æã§ããŸãããã³ã¹ãã®è°è«ã¯æç¢ºã§ããåºç€çãªã³ã³ãããŒã«ãã¹ãããããçµç¹ã¯ãåŸã§ãããã远å ããããã«ããå€ãã®æéãšã³ã¹ããè²»ããããšã«ãªããŸããæãé«äŸ¡ãªã»ãã¥ãªãã£ã³ã³ãããŒã«ã¯ãã€ã³ã·ãã³ãçºçåŸã«è¿œå ãããã®ã§ãã AI ãã¢ã¯ã»ã¹ã§ããããŒã¿ã¯äœãããããŠããã¯ã©ã®ããã«ç®¡çãããŠãããïŒ ããã¯èŠå¶åœå±ãæåã«å°ãã質åã§ãããAI ããã°ã©ã ãã¹ã±ãŒã«ãããåæ»ããããæ±ºå®ãã質åã§ããAI ããªã¯ãšã¹ããããŠãŒã¶ãŒãé²èЧãèš±å¯ãããŠããªãããŒã¿ã«ã¢ã¯ã»ã¹ã§ããå ŽåããŸãã¯ã¢ã¯ã»ã¹ã§ããªãããšã蚌æã§ããªãå Žåãæ°ãããŠãŒã¹ã±ãŒã¹ããšã«æªåããããŒã¿ã¬ããã³ã¹ã®ã®ã£ãããååšããŸãããã®è³ªåã«çããã«ã¯ãã¢ãã«ã¬ã€ã€ãŒã§æå°æš©éã¢ã¯ã»ã¹ã匷å¶ãã ID ã³ã³ãããŒã«ãAI ãèªèããåã«æ©å¯æ
å ±ãèå¥ããããŒã¿åé¡ããããŠã¢ããªã±ãŒã·ã§ã³ã ãã§ãªãããŒã¿ãšãšãã«ç§»åããã¢ã¯ã»ã¹ããªã·ãŒãå¿
èŠã§ãã ã³ã³ãããŒã«ãæ©èœããŠããããšãã©ã®ããã«ç¢ºèªããã€ã³ã·ãã³ãã管çããèªä¿¡ããããïŒ åŸæ¥ã®ã€ã³ã·ãã³ã察å¿ã¯ãã¢ã¯ã·ã§ã³ããŠãŒã¶ãŒã«è¿œè·¡ã§ããããšãåæãšããŠããŸããAI ã¯ãã®åæãå€ããŸãããšãŒãžã§ã³ãã¯èªåŸçã«è¡åããã·ã¹ãã éã§æ±ºå®ãé£éããããã·ã³ã¹ããŒãã§åäœããŸããAI ã»ãã¥ãªãã£ã€ãã³ãããªã¢ã«ã¿ã€ã ã§æ€åºã§ããªãå Žåãããªã¬ãŒãšãªã£ãããã³ãããããã¢ã¯ã»ã¹ããããŒã¿ãå®è¡ããã¢ã¯ã·ã§ã³ãŸã§ãå®å
šãªæ±ºå®ãã§ãŒã³ãåæ§ç¯ããèª°ãæ¿èªãããã蚌æã§ããªãå Žåã説æè²¬ä»»ã®ã®ã£ãããååšããŸããç¶ç¶çãªã¢ãã¿ãªã³ã°ãAI åºæã®è
åšæ€åºããã㊠3 ã€ã®ã¬ã€ã€ãŒãã¹ãŠã«ãããäžå€ã®ç£æ»ãã°ã¯ãèŠå¶åœå±ãç£æ»äººãåç· åœ¹äŒã«ãšã£ãŠåºæ¬çãªèŠä»¶ã§ãã AWS AI Security Framework ã¯ãé©åãªãŠãŒã¹ã±ãŒã¹ã«ãé©åãªã¬ã€ã€ãŒã§ãé©åãªãã§ãŒãºã§ãé©åãªã³ã³ãããŒã«ããããã³ã°ããããšã§ãããã 3 ã€ãã¹ãŠã«çããããã®æ§é åãããæ¹æ³ãæäŸããŸããAI ã®å°å
¥ãå¯èœã«ããã»ãã¥ãªãã£ããŒã ã¯ãAI ã«å¯Ÿã㊠ã㌠ãšã¯èšããŸããããããããã°ããã®ã§ãããšããã®ãããªæ¹æ³ã瀺ãã®ã§ãã ä»åŸã®éã®ã AI ã¯ã€ã³ãã©ã¹ãã©ã¯ãã£ã®ããããã¬ã€ã€ãŒãããããã¢ããªã±ãŒã·ã§ã³ããããããšã³ã¿ãŒãã©ã€ãºã¯ãŒã¯ãããŒããããããµãã©ã€ãã§ãŒã³ã«çµã¿èŸŒãŸããŠããŸããããã¯åŸæ»ãããããšã®ãªããã¬ã³ãã§ããã»ãã¥ãªãã£ã¯ãAI ãåããããããå ŽæãAI ãæ¥ç¶ããããããå Žæã«è¿œåŸããå¿
èŠããããŸãã IAM ããªã·ãŒã¯ããšãŒãžã§ã³ããªã©ã®äººé以å€ã®ã¢ã€ãã³ãã£ãã£ãèæ
®ããå¿
èŠæ§ãé«ãŸã£ãŠããŸããè
åšã¢ãã«ã«ã¯ããšãŒãžã§ã³ãçãªæ¯ãèããå«ããå¿
èŠããããŸããã³ã³ãã©ã€ã¢ã³ã¹ãã¬ãŒã ã¯ãŒã¯ã¯ãããŒã¹ã©ã€ã³ãšã㊠AI åºæã®ã³ã³ãããŒã«ãèŠæ±ãå§ããŠããŸããããå€ãã®ã¯ãŒã¯ããŒãã« AI ãçµã¿èŸŒãŸããçµ±åããããŸãã¯ã¢ã¯ã»ã¹ããããã«ãªãã«ã€ããŠã AI ã»ãã¥ãªã㣠㚠ã»ãã¥ãªã㣠ã®åºå¥ã¯çãŸã£ãŠããŸãã ä»ãã®åºç€ãæ§ç¯ããçµç¹ã¯ãåã«ä»æ¥ã® AI ãä¿è·ããŠããã ãã§ã¯ãããŸãããæ¬¡ã«æ¥ããã®ã«åããã»ãã¥ãªãã£ã¢ãŒããã¯ãã£ãæ§ç¯ããŠããã®ã§ããAI ã¯ãäŒæ¥å
šäœã®ã»ãã¥ãªãã£æ
å¢ãšã³ã³ãããŒã«ãæ¹åããããã®è§ŠåªãšãªããŸãã仿¥ãããã®ã³ã³ãããŒã«ãå®è£
ããããšã§ãAI ã¯ãŒã¯ããŒãã®ãªã¹ã¯ã軜æžããã ãã§ãªããAI ãé©çšããããããå Žæã§ã»ãã¥ãªãã£ã匷åã§ããŸããAWS ã§ã¯ãAI ã«ã»ãã¥ãªãã£ã远å ããã®ã§ã¯ãªããã»ãã¥ãªãã£ã®äžã« AI ãæ§ç¯ããŠããŸãããããŠãAI ã«å¯ŸããŠè¡ããæè¯ã®ã»ãã¥ãªãã£æè³ãšã¯ãAI ãè§Šããä»ã®ãã¹ãŠã®ãã®ãããå®å
šã«ããæè³ãªã®ã§ãã AWS ã§ AI ã»ãã¥ãªãã£ãå§ãã CISOãCIOãCTO ã®ãããã§ãã£ãŠãã3 ã€ã®ãã§ãŒãºãã¹ãŠã«ãããŠæãéèŠãª AI ã¬ããã³ã¹ãš AI ã³ã³ãã©ã€ã¢ã³ã¹ã®ã¢ã¯ã·ã§ã³ã¯æ¬¡ã®ãšããã§ãã AI ãã©ãã§å®è¡ãããŠããããææ¡ããã æ¿èªããã AI ãšã·ã£ã㌠AI ãå«ããã¹ãŠã® AI ã¯ãŒã¯ããŒããç£æ»ããéžå®ã¬ããã³ã¹ãåããã¢ãã«ã€ã³ãã³ããªãç¶æããŸãã 忥ãã ID ãšã¢ã¯ã»ã¹ã³ã³ãããŒã«ã確ç«ããã ãŒããã©ã¹ãã®ååãé©çšããŸãããã¹ãŠã®ãšãŒãžã§ã³ãã«ãã¹ã³ãŒããããèªèšŒæ
å ±ãæã€ç¬èªã® ID ãä»äžããŸããIAMãAWS KMSãCloudTrail ã AI ã¯ãŒã¯ããŒãã«æ¡åŒµããŸããã³ã³ãã³ããã£ã«ã¿ãªã³ã°ãš AI ã¬ãŒãã¬ãŒã«ããããã€ããŸãã ããŒã¿ãåé¡ããŠç®¡çããã AI ãã¢ã¯ã»ã¹ã§ããããŒã¿ããã®ã¢ã¯ã»ã¹ãæ¿èªãã人ç©ãææ¡ããã¯ãŒã¯ããŒããã³ã³ãã©ã€ã¢ã³ã¹èŠä»¶ã«ãããã³ã°ããŸãã æ¬çªç°å¢åã«è
åšã¢ããªã³ã°ãšãã¹ãã宿œããã çæ AI ã¯ãŒã¯ããŒãã®è
åšã¢ããªã³ã° ãè¡ããAI åºæã®ãªã¹ã¯ãæ©æã«ç¹å®ããŸããããã³ããã€ã³ãžã§ã¯ã·ã§ã³ããžã§ã€ã«ãã¬ã€ã¯ãããŒã¿æµåºãªã©ã®ãªã¹ã¯ã«å¯ŸããŠã¬ããããŒã ãã¹ãã宿œããŸããAI åºæã®ãã¿ãŒã³ã«å¯Ÿããè
åšæ€åºãå®è£
ããŸãã詳现ã«ã€ããŠã¯ã çæ AI ã¢ããªã±ãŒã·ã§ã³ã®è
åšã¢ããªã³ã° ãåç
§ããŠãã ããã ãšãŒãžã§ã³ããå€§èŠæš¡ã«ç®¡çããã ãšãŒãžã§ã³ããš MCP ãµãŒããŒãäžå€®ã¬ãžã¹ããªã«ç»é²ããŸããé倧ãªåœ±é¿ãåãŒãã¢ã¯ã·ã§ã³ã«å¯ŸããŠããªãã¶ãŒãããªãã£ãè©äŸ¡ããã¥ãŒãã³ã€ã³ã¶ã«ãŒãã³ã³ãããŒã«ãæå¹ã«ããŸãã ã€ã³ã·ãã³ã察å¿èšç»ãæŽæ°ããã æ¢åã® IR ããã³äºæ¥ç¶ç¶èšç»ã¯ãAI åºæã®ã·ããªãªãã«ããŒããŠããªãå¯èœæ§ããããŸããããããæŽæ°ããAI ã®æ©èœãšè
åšã®å€åã«å¿ããŠç¶ç¶çã«é²åãããŸãã å§ããæºåã¯ã§ããŸãããïŒ ç¡æã® SHIP ãšã³ã²ãŒãžã¡ã³ãããªã¯ãšã¹ãããã¯ãŒã¯ããŒãã AWS Security Reference Architecture for AI ã«ãããã³ã°ããAWS ã¢ã«ãŠã³ãããŒã ã«é£çµ¡ãã Securing AI ã§ããããªãœãŒã¹ãããã¯ããŒã¯ããŠãã ããã AI ã§è¿
éã«é²ããŸããããAWS ã§å®å
šãä¿ã¡ãŸãããã å³ 4 : AWS AI Security Framework Riggs Goodman III Riggs 㯠AWS ã®ããªã³ã·ãã«ãœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ãã§ããçŸåšã¯ AI ã»ãã¥ãªãã£ã«æ³šåããã客æ§ãããŒãããŒã AWS äžã§ AI ã¯ãŒã¯ããŒããæ§ç¯ããããã®æè¡ã¬ã€ãã³ã¹ãã¢ãŒããã¯ãã£ãã¿ãŒã³ããªãŒããŒã·ãããæäŸããŠããŸãã瀟å
ã§ã¯ãã客æ§ãããŒãããŒã®èª²é¡ã«å¯Ÿå¿ãããããAWS ãµãŒãã¹ããŒã å
šäœã®æè¡æŠç¥ãšã€ãããŒã·ã§ã³ã®æšé²ã«åãçµãã§ããŸãã Christopher Rae Christopher 㯠AWS ã®ããªã³ã·ãã«ã¯ãŒã«ãã¯ã€ãã»ãã¥ãªãã£ã¹ãã·ã£ãªã¹ãã§ãããAI Security GTM ãªãŒãã§ããAI ã¯ãŒã¯ããŒãã®ã»ãã¥ãªãã£ç¢ºä¿ãAI ãæŽ»çšããã»ãã¥ãªãã£æ©èœãé²åãã AI ç±æ¥ã®è
åšãžã®èæ§ã«ã€ããŠãåžå Žæå
¥æŠç¥ãçå®ããŠããŸããã»ãã¥ã¢ãã€ãã¶ã€ã³ãšå€å±€é²åŸ¡ã®ãœãªã¥ãŒã·ã§ã³ãæšé²ããå®å
šãª AI å°å
¥ã®å éã«åãçµãã§ããŸããUC San Diego ã§ MBAãUniversity of Maine ã§ BA ãååŸãäœæã«ã¯çŸé£ãç®çãšããæ
è¡ãããã±ãŒãã¹ããŒãæ°ãã鳿¥œã®çºæã楜ããã§ããŸãã æ¬ããã°ã¯ Security Solutions Architect ã® é ç° è¡ ã翻蚳ããŸããã
G-gen ã®äœã
æšã§ããåœèšäºã§ã¯ãCloud Run ã«ãããã€ãã AI ãšãŒãžã§ã³ãã MCP ãµãŒããŒã«ãšãŒãžã§ã³ã ID ãå²ãåœãŠãAgent Registry ã«èªåç»é²ããã Cloud Run ã® Agent Platform æ©èœ ãã«ã€ããŠè§£èª¬ããŸãã åæç¥è Cloud Run ãšã¯ Gemini Enterprise Agent Platform ãšã¯ Agent Platform ã®æŠèŠ Agent Identity Agent Registry Cloud Run ã® Agent Platform æ©èœãšã¯ Agent Platform æ©èœã®åºæ¬ æ©èœã¿ã€ããšã¢ã€ãã³ãã£ãã£ã¿ã€ã çµã¿åããã«ããæå ãšãŒãžã§ã³ã ID ãžã®æš©éä»äž èªåä»äžãããäºåå®çŸ©ããŒã« Agent Registry ãžã®èªåç»é² 泚æç¹ å¶éäºé
èšå®æé åœèšäºã§æ±ãæé äºåæºå ãšãŒãžã§ã³ãã®ããã〠MCP ãµãŒããŒã®ããã〠æ¢åãµãŒãã¹ã®ç§»è¡ ãšãŒãžã§ã³ã ID ã®ç¢ºèª Agent Registry ã§ã®ç¢ºèª ãšãŒãžã§ã³ãã®èªèšŒ Google Cloud API ãžã®èªèšŒ ä»ã® Cloud Run äžã®ãšãŒãžã§ã³ãã»MCP ãµãŒããŒãžã®èªèšŒ ãã€ã³ãããŒã¯ã³ã«ããä¿è·ã®åŒ·å åäœç¢ºèª æ€èšŒæ§æ ãšãŒãžã§ã³ãã®ãœãŒã¹ã³ãŒã ããã〠ãšãŒãžã§ã³ãã®åŒã³åºã ããŒã«ä»äžåã®åäœ ããŒã«ã®ä»äž ããŒã«ä»äžåŸã®åäœ ç£æ»ãã°ã§ã®ç¢ºèª åæç¥è Cloud Run ãšã¯ Cloud Run ã¯ãã³ã³ãããå®è¡ããããã® Google Cloud ã®ãã«ãããŒãžããªãµãŒããŒã¬ã¹ã³ã³ãã¥ãŒãã£ã³ã°ãµãŒãã¹ã§ãããµãŒããŒã®ç®¡çãå¿
èŠãšãããã³ã³ããã€ã¡ãŒãžãæå®ããã ãã§ã¢ããªã±ãŒã·ã§ã³ãå®è¡ã§ããŸãã Cloud Run ã«ã¯ãŠãŒã¹ã±ãŒã¹ã«å¿ãããªãœãŒã¹ã¿ã€ããååšããWeb ã¢ããªã±ãŒã·ã§ã³ã API ã®ãã¹ãã£ã³ã°åãã® Cloud Run servicesïŒä»¥äžã ãµãŒãã¹ ãšèšèŒïŒããããåŠçãã¹ã±ãžã¥ãŒã«å®è¡åãã® Cloud Run jobsïŒä»¥äžã ãžã§ã ãšèšèŒïŒãã¡ãã»ãŒãžãã¥ãŒã® pull ååŠçåãã® Cloud Run worker poolsãé·æéåäœãããšãŒãžã§ã³ããªã©ãã¹ã±ãŒã«ããªãåäžããã»ã¹ã®åžžé§åãã® Cloud Run instances ãæäŸãããŠããŸãã Cloud Run ã®åºæ¬ã«ã€ããŠã¯ã以äžã®èšäºãåç
§ããŠãã ããã blog.g-gen.co.jp Gemini Enterprise Agent Platform ãšã¯ Agent Platform ã®æŠèŠ Gemini Enterprise Agent Platform ïŒæ§ç§° Vertex AIãä»¥äž Agent Platform ãšèšèŒïŒã¯ãAI ãšãŒãžã§ã³ãã®æ§ç¯ã»ãããã€ã»ç®¡çã®ããã®æ©èœçŸ€ãæäŸãã Google Cloud ã®ãã©ãããã©ãŒã ã§ãã ãã®ãã¡ããšãŒãžã§ã³ãã®çµ±å¶ãæ
ãæ©èœãšããŠããšãŒãžã§ã³ãåºæã® ID ãçºè¡ãã Agent Identity ããšãŒãžã§ã³ããããŒã«ãç»é²ããŠæ€åºå¯èœã«ãã Agent Registry ãããããåç
§ããŠéä¿¡ãå¶åŸ¡ãã Agent Gateway ããããŸãã Agent Platform ã®å
šäœåã«ã€ããŠã¯ã以äžã®èšäºãåç
§ããŠãã ããã blog.g-gen.co.jp Agent Identity Agent Identity ã¯ãAgent Platform ã®ã¯ãŒã¯ããŒãèªèšŒã³ã³ããŒãã³ãã§ããAI ãšãŒãžã§ã³ãã MCP ãµãŒããŒãªã©ã®ã¯ãŒã¯ããŒãã«ãã¯ãŒã¯ããŒãããšã«åºæã§ãèšŒææžã«ãã£ãŠæ€èšŒå¯èœãª IDïŒ ãšãŒãžã§ã³ã ID ïŒãå²ãåœãŠãŸãã ãšãŒãžã§ã³ã ID 㯠SPIFFEïŒSecure Production Identity Framework for EveryoneïŒæšæºã«åºã¥ãæžåŒãæã¡ãIAM èš±å¯ããªã·ãŒã§ã¯ principal:// ããå§ãŸãããªã³ã·ãã«èå¥åãšããŠæå®ããŸãã ãšãŒãžã§ã³ã ID ã¯ããµãŒãã¹ã¢ã«ãŠã³ããšç°ãªããè€æ°ã®ã¯ãŒã¯ããŒãéã§å
±æããããæš©éåçšãã§ãããé·æããŒãçæã§ããŸãããGoogle Cloud API åãã®ã¢ã¯ã»ã¹ããŒã¯ã³ã¯ã¯ãŒã¯ããŒãã® X.509 èšŒææžãšçµã³ä»ããŠçºè¡ããããããããŒã¯ã³ãçªåãããŠãä»ã®ã¯ãŒã¯ããŒãããåå©çšã§ããŸããã åœèšäºã§ã¯ããã® Agent Identity ã Cloud Run ã®ãµãŒãã¹ããžã§ãã§æå¹ã«ããå²ãåœãŠããããšãŒãžã§ã³ã ID ã§èªèšŒããæ¹æ³ã解説ããŸãã Agent Identity ã®è©³çްã«ã€ããŠã¯ã以äžã®èšäºãåç
§ããŠãã ããã blog.g-gen.co.jp Agent Registry Agent Registry ã¯ãçµç¹å
ã§æ¿èªããããšãŒãžã§ã³ããããŒã«ãç»é²ããä»ã®éçºè
ããšãŒãžã§ã³ãããæ€åºå¯èœã«ãã Agent Platform ã®äžå€®ã©ã€ãã©ãªã§ãããšãŒãžã§ã³ãã¯ãšãŒãžã§ã³ãã«ã¿ãã°ã«ãMCP ãµãŒããŒã¯ MCP ãµãŒããŒã«ã¿ãã°ã«ç»é²ãããŸããGoogle Cloud äžã®ãšãŒãžã§ã³ãã ãã§ãªãããµãŒãããŒãã£ã® MCP ãµãŒããŒãç»é²ã§ããŸãã ç»é²ãããã¡ã¿ããŒã¿ã¯ãAgent Gateway ãã¢ã¯ã»ã¹å¶åŸ¡ãè¡ãéã«ãåç
§ãããŸãããã ãã2026幎9æçŸåšãAgent Gateway ãéä¿¡ãå¶åŸ¡ã§ããã©ã³ã¿ã€ã 㯠Agent RuntimeïŒæ§ç§° Agent EngineïŒãš Gemini Enterprise ã®ã¿ã§ãCloud Run äžã®ãšãŒãžã§ã³ãã¯å¶åŸ¡ã®å¯Ÿè±¡å€ã§ãã åœèšäºã§ã¯ãCloud Run ã®ã¯ãŒã¯ããŒãã Agent Registry ã«èªåç»é²ãããä»çµã¿ãšãç»é²ããããšã³ããªã®ç¢ºèªæ¹æ³ã解説ããŸãã Agent RegistryãAgent Gateway ã®è©³çްã«ã€ããŠã¯ã以äžã®èšäºãåç
§ããŠãã ããã blog.g-gen.co.jp blog.g-gen.co.jp Cloud Run ã® Agent Platform æ©èœãšã¯ Cloud Run ã® Agent Platform æ©èœ ïŒAgent Platform features for Cloud RunïŒã¯ãCloud Run ã®ãµãŒãã¹ããžã§ãã§ Agent Identity ãš Agent Registry ãæå¹ã«ããæ©èœã§ãã察象ãšãªãã¯ãŒã¯ããŒãã¯ãAI ãšãŒãžã§ã³ããš MCP ãµãŒããŒã§ãããããã€æã«ã¯ãŒã¯ããŒãã®çšéïŒãšãŒãžã§ã³ããŸã㯠MCP ãµãŒããŒïŒãš ID ã®çš®é¡ã宣èšããã ãã§ã以äžã®2ã€ãèªåã§è¡ãããŸãã ã¯ãŒã¯ããŒãã«å¯ŸããŠãã¯ãŒã¯ããŒãåºæã§ãèšŒææžã«ãã£ãŠæ¬ç©ã§ããããšãæ€èšŒã§ãããšãŒãžã§ã³ã ID ãå²ãåœãŠããã ã¯ãŒã¯ããŒãããããžã§ã¯ãã® Agent Registry ã«èªåç»é²ãããä»ã®éçºè
ããšãŒãžã§ã³ãããæ€åºå¯èœã«ãªã åŸæ¥ãCloud Run ã®ã¯ãŒã¯ããŒãã¯ããµãŒãã¹ã¢ã«ãŠã³ãã䜿çšããŠä»ã®ãµãŒãã¹ã Google Cloud API ãžã®èªèšŒãè¡ã£ãŠããŸãããAgent Platform æ©èœã䜿çšãããšããšãŒãžã§ã³ãã¯ãµãŒãã¹ã¢ã«ãŠã³ãã®ä»£ããã«èªèº«å°çšã®ãšãŒãžã§ã³ã ID ã§ä»ã®ãšãŒãžã§ã³ãã»ããŒã«ã»Google Cloud API ã«èªèšŒã§ããŸãã ãªããCloud Run ã«ã¯4çš®é¡ã®ãªãœãŒã¹ã¿ã€ãããããŸããã2026幎9æçŸåšãAgent Platform æ©èœãèšå®ã§ããã®ã¯ãµãŒãã¹ãšãžã§ãã®2çš®é¡ã§ãã åè : Configure Agent Platform features for Cloud Run åè : Authenticate your AI agents ãã®æ©èœã¯2026幎9æ1æ¥ã« Preview å
¬éãããŸãããPreview 段éã®æ©èœã¯ããµããŒããéå®ãããå ŽåããGA ãŸã§ã«ä»æ§ãå€ããå¯èœæ§ããããããæ¬çªç°å¢ã§ã®äœ¿çšã¯æšå¥šãããŸããã åè : Cloud Run release notes - September 01, 2026 åè : Previewçã®ãµãŒãã¹ã䜿ããšã¯ã©ãããããšãªã®ã Agent Platform æ©èœã®åºæ¬ æ©èœã¿ã€ããšã¢ã€ãã³ãã£ãã£ã¿ã€ã Agent Platform æ©èœã¯ãCloud Run ã®ãµãŒãã¹ããžã§ãã« æ©èœã¿ã€ã ïŒfunctional typeïŒãš ã¢ã€ãã³ãã£ãã£ã¿ã€ã ïŒidentity typeïŒã®2ã€ã®ããããã£ãèšå®ããããšã§æ§æããŸããgcloud CLI ã§ã¯ããããã€æã« --functional-type ãš --identity-type ã®2ã€ã®ãã©ã°ã§æå®ããŸãã # æ©èœã¿ã€ããšã¢ã€ãã³ãã£ãã£ã¿ã€ããæå®ããŠããã〠# æ©èœã¿ã€ã=agentãã¢ã€ãã³ãã£ãã£ã¿ã€ã=agent-identity ã®äŸ $ gcloud beta run deploy < ãµãŒãã¹å > \ --image =< ã³ã³ããURL > \ --functional-type = agent \ --identity-type = agent-identity \ --region = asia-northeast1 --project =< ãããžã§ã¯ãID > ãšãŒãžã§ã³ããš MCP ãµãŒããŒããããã®ãããã€ã³ãã³ãã¯ãåŸè¿°ã®èšå®æé ã§è§£èª¬ããŸãã æ©èœã¿ã€ãã¯ãã¯ãŒã¯ããŒãã®äž»ãªçšéã宣èšããããããã£ã§ããäžåºŠèšå®ãããšå€æŽãè§£é€ãã§ããŸããã æ©èœã¿ã€ã æå³ å¶çŽ agent ã¯ãŒã¯ããŒãã AI ãšãŒãžã§ã³ããšããŠç»é²ãã ã¢ã€ãã³ãã£ãã£ã¿ã€ã㯠agent-identity ãå¿
é mcp-server ã¯ãŒã¯ããŒãããŠãŒã¶ãŒç®¡çã® MCP ãµãŒããŒãšããŠç»é²ãã ã©ã¡ãã®ã¢ã€ãã³ãã£ãã£ã¿ã€ãã䜿çšã§ãã ã¢ã€ãã³ãã£ãã£ã¿ã€ãã¯ãã¯ãŒã¯ããŒãã«å²ãåœãŠã ID ã®çš®é¡ãæå®ããããããã£ã§ãã ã¢ã€ãã³ãã£ãã£ã¿ã€ã æå³ agent-identity ã·ã¹ãã 管çã®ãšãŒãžã§ã³ã ID ãå²ãåœãŠããID èšŒææžãããã©ã«ãã§æå¹ã«ãªã service-account åŸæ¥ã©ããã® Google Cloud ãµãŒãã¹ã¢ã«ãŠã³ãã䜿çšãã agent-identity ãæå®ããŠãããã€ãããšãAgent Platform ã¯ã¯ãŒã¯ããŒãã® ID èšŒææžïŒX.509 èšŒææžïŒãããã©ã«ãã§æå¹ã«ããŸããèšŒææžã䜿çšããªãå Žåã¯ã --no-identity-certificate ãã©ã°ãä»ããããã¢ãããŒã·ã§ã³ run.googleapis.com/identity-certificate-enabled: "false" ãèšå®ããŸãã æ©èœã¿ã€ã mcp-server ã§ã¯ãã¢ã€ãã³ãã£ãã£ã¿ã€ãã« service-account ãæå®ãããçç¥ãããšãåŸæ¥ã©ãããµãŒãã¹ã¢ã«ãŠã³ãã§åäœããŸãããã®å ŽåãMCP ãµãŒããŒãã Google Cloud API ãä»ã®ãµãŒãã¹ãžã®èªèšŒã¯ããããŸã§ãšåãããµãŒãã¹ã¢ã«ãŠã³ãã§è¡ãããŸãã çµã¿åããã«ããæå æ©èœã¿ã€ããšã¢ã€ãã³ãã£ãã£ã¿ã€ãã®çµã¿åããã«ãã£ãŠãã¯ãŒã¯ããŒãã®æåã¯ä»¥äžã®ããã«å€ãããŸãã æ©èœã¿ã€ã ã¢ã€ãã³ãã£ãã£ã¿ã€ã æå agent agent-identity Agent Registry ã«ãšãŒãžã§ã³ããšããŠç»é²ããããšãŒãžã§ã³ã ID ãå²ãåœãŠããã agent ãã®ä»ããŸãã¯æªæå® ãšã©ãŒã«ãªã mcp-server agent-identity ã service-account ããŸãã¯æªæå® Agent Registry ã« MCP ãµãŒããŒãšããŠç»é²ããããæªæå®ã®å Žåã¯ãµãŒãã¹ã¢ã«ãŠã³ãã䜿çšããã æªæå® service-account éåžžã® Cloud Run ãµãŒãã¹ãŸãã¯ãžã§ããšããŠåäœãã æ©èœã¿ã€ãã« agent ãæå®ããŠã¢ã€ãã³ãã£ãã£ã¿ã€ããçç¥ãããšããããã€ã¯ãµãŒããŒåŽã§æåŠãããŸããgcloud CLI ã¯ãããã€åã«èŠåã衚瀺ããŸããåŠçã¯æ¢ãŸããã以äžã®ãšã©ãŒã§å€±æããŸãã ERROR: (gcloud.beta.run.deploy) spec.template.spec.identity_type: Identity type must be AGENT when functional type is AGENT. ãšãŒãžã§ã³ã ID ãžã®æš©éä»äž agent-identity ãèšå®ãã Cloud Run ã®ã¯ãŒã¯ããŒãã«ã¯ã以äžã®åœ¢åŒã®ãšãŒãžã§ã³ã ID ãå²ãåœãŠãããŸããã¯ãŒã¯ããŒãã Google Cloud API ãä»ã® Cloud Run ãµãŒãã¹ã«ã¢ã¯ã»ã¹ããããã®æš©éã¯ããµãŒãã¹ã¢ã«ãŠã³ãã®ä»£ããã«ãã®ãšãŒãžã§ã³ã ID ã«å¯ŸããŠä»äžããŸããIAM èš±å¯ããªã·ãŒã§ã¯ããã®æååããã®ãŸãŸããªã³ã·ãã«ãšããŠæå®ããŸãã principal://agents.global.org-<çµç¹ID>.system.id.goog/resources/run/projects/<ãããžã§ã¯ãçªå·>/locations/<ãªãŒãžã§ã³>/services/<ãµãŒãã¹å> ãšãŒãžã§ã³ã ID ã§åäœãããªããžã§ã³ã§ã¯ããµãŒãã¹ã¢ã«ãŠã³ãã¯äœ¿çšãããŸããããµãŒãã¹ã¢ã«ãŠã³ãã«ä»äžããŠããããŒã«ã¯æ®ããŸããããã®ãªããžã§ã³ããã¯åç
§ãããªããããå¿
èŠãªããŒã«ã¯ãšãŒãžã§ã³ã ID ã«ä»ãçŽããŸãã ãµãŒãã¹ã¢ã«ãŠã³ãã§ã¯ãªããšãŒãžã§ã³ã ID ã«æš©éãä»äžããå©ç¹ã¯ãæš©éã®ä»äžå
ãšã¯ãŒã¯ããŒãã1察1ã§å¯Ÿå¿ããç¹ã§ãããšãŒãžã§ã³ã ID ã¯ã¯ãŒã¯ããŒãããšã«ã·ã¹ãã ãèªåã§å²ãåœãŠãããããµãŒãã¹ã¢ã«ãŠã³ããäœæããŠç®¡çããæéããªããè€æ°ã®ã¯ãŒã¯ããŒãã§1ã€ã® ID ãå
±æããŠæš©éãéå°ã«ãªãããšããããŸããã ãŸããæš©éåçšãé·æããŒã®çºè¡ãã§ããªããããã¢ã¯ã»ã¹ããŒã¯ã³ã¯ã¯ãŒã¯ããŒãã® X.509 èšŒææžã«çŽã¥ããããèªèšŒæ
å ±ã®æŒæŽ©ãåå©çšã®ãªã¹ã¯ãæããããŸãã ç£æ»ãã°ã«ã¯ããªã³ã·ãã«ãšããŠãšãŒãžã§ã³ã ID ãèšé²ããããããã©ã®ã¯ãŒã¯ããŒããæäœããããåå¥ã«è¿œè·¡ã§ããŸãã çµç¹ã«å±ããªããããžã§ã¯ãã§ã¯ããã©ã¹ããã¡ã€ã³ïŒ principal:// ã®çŽåŸãã /resources/ ãŸã§ã®éšåïŒã® org-<çµç¹ID> ã project-<ãããžã§ã¯ãçªå·> ã«ãªããŸãã principal://agents.global.project-<ãããžã§ã¯ãçªå·>.system.id.goog/resources/run/projects/<ãããžã§ã¯ãçªå·>/locations/<ãªãŒãžã§ã³>/services/<ãµãŒãã¹å> ãªããCloud Run ã®ãžã§ãã®å Žåã¯æ«å°Ÿã jobs/<ãžã§ãå> ã«ãªããŸãã principal://agents.global.org-<çµç¹ID>.system.id.goog/resources/run/projects/<ãããžã§ã¯ãçªå·>/locations/<ãªãŒãžã§ã³>/jobs/<ãžã§ãå> ãžã§ãã«å²ãåœãŠããã ID ã¯ããžã§ãèªäœã§ã¯ãªãå®è¡ïŒexecutionïŒã®è©³çްã«è¡šç€ºãããŸããgcloud CLI ã§ã¯ gcloud beta run jobs executions describe ãã³ã³ãœãŒã«ã§ã¯ãžã§ãã®ãå®è¡ãã¿ãããå®è¡ãéžæããŠç¢ºèªããŸãã ãšãŒãžã§ã³ã ID 㯠Agent Runtime ã Gemini Enterprise ã®ãšãŒãžã§ã³ãã«ãå²ãåœãŠãããŸããã resources/ çŽåŸã®ãµãŒãã¹åã®éšåã run ã«ãªã£ãŠããç¹ã Cloud Run ã® ID ã®ç¹åŸŽã§ãã åè : ãšãŒãžã§ã³ã ID ã®æŠèŠ åè : Principal identifiers èªåä»äžãããäºåå®çŸ©ããŒã« ãããžã§ã¯ãã§åããŠæ©èœã¿ã€ã agent ã®ã¯ãŒã¯ããŒãããããã€ãããšãGoogle Cloud ã¯ãã®ãããžã§ã¯ãã® IAM ããªã·ãŒã«ä»¥äžã®ããŒã«ãã€ã³ãã£ã³ã°ãèªåã§è¿œå ããŸãã ããŒã« ããªã³ã·ãã« Cloud Run Agent - Agent Default Access RoleïŒ roles/run.agentDefaultAccess ïŒ principalSet://agents.global.org-<çµç¹ID>.system.id.goog/attribute.platformContainer/run/projects/<ãããžã§ã¯ãçªå·> ããªã³ã·ãã«ã® principalSet:// 圢åŒã¯ããã®ãããžã§ã¯ãã® Cloud Run äžã§åäœãããã¹ãŠã®ãšãŒãžã§ã³ã ID ããŸãšããŠæãããªã³ã·ãã«ã»ããã§ãã ãã®ããŒã«ã«ã¯ãAgent Platform ã®æšè«ïŒ aiplatform.endpoints.predict ïŒã«å ããŠãCloud Loggingã»Cloud Monitoringã»Cloud Trace ãžã®æžãèŸŒã¿æš©éãå«ãŸããŸãã # èªåä»äžãããäºåå®çŸ©ããŒã«ã®å
容ã衚瀺ïŒ2026幎9æçŸåšïŒ $ gcloud iam roles describe roles/run.agentDefaultAccess ----- åºåäŸ ----- description: Default role for Cloud Run Agent identities providing basic AI and telemetry access. includedPermissions: - aiplatform.endpoints.predict - cloudtrace.traces.patch - logging.logEntries.create - logging.logEntries.route - monitoring.metricDescriptors.create - monitoring.metricDescriptors.get - monitoring.metricDescriptors.list - monitoring.monitoredResourceDescriptors.get - monitoring.monitoredResourceDescriptors.list - monitoring.timeSeries.create - telemetry.traces.write - trafficdirector.networks.getConfigs - trafficdirector.networks.reportMetrics name: roles/run.agentDefaultAccess stage: ALPHA title: Cloud Run Agent - Agent Default Access Role ãããžã§ã¯ãå
ã® Cloud Run ã«çŽã¥ããšãŒãžã§ã³ã ID å
šãŠã« Cloud Run Agent - Agent Default Access Role ããŒã«ãä»äžãããŠãã ãã®ãããCloud Run äžã®ãšãŒãžã§ã³ãã¯è¿œå ã®ããŒã«ä»äžãªãã§ãAgent Platform çµç±ã§ Gemini ã¢ãã«ã® generateContent ãåŒã³åºããŸããäžæ¹ã§ãCloud Storage ã BigQuery ãªã©ä»ã® Google Cloud API ãžã®ã¢ã¯ã»ã¹ã«ã¯ãåŸè¿°ã®æé ã§ãšãŒãžã§ã³ã ID ã«åå¥ã®ããŒã«ãä»äžããå¿
èŠããããŸãã Agent Registry ãžã®èªåç»é² æ©èœã¿ã€ãã agent ãŸã㯠mcp-server ã«èšå®ããŠãããã€ãã Cloud Run ã®ãªãœãŒã¹ã¯ãåããããžã§ã¯ãã® Agent Registry ã«èªåç»é²ãããŸãããšãŒãžã§ã³ãã¯ãšãŒãžã§ã³ãã«ã¿ãã°ïŒ /agents ïŒã«ãMCP ãµãŒããŒã¯ MCP ãµãŒããŒã«ã¿ãã°ïŒ /mcpServers ïŒã«ç»é²ãããŸãããªããèªåç»é²ã®å¯Ÿè±¡ã¯åããããžã§ã¯ãå
ã®ãªãœãŒã¹ã®ã¿ã§ãä»ã®ãããžã§ã¯ãã«ãããã€ãããšãŒãžã§ã³ããç»é²ããã«ã¯æåç»é²ãå¿
èŠã§ãã ç»é²å
ã®ãã±ãŒã·ã§ã³ã¯ Cloud Run ã®ãªãœãŒã¹ãšåããªãŒãžã§ã³ã§ããCloud Run ã®ãžã§ãããæ©èœã¿ã€ã agent ã§äœæãããšãšãŒãžã§ã³ããšããŠç»é²ãããŸãã Agent Registry ã¯ãç»é²æã«ãšãŒãžã§ã³ãããã¡ã¿ããŒã¿ã®ååŸã詊ã¿ãŸããA2A ãããã³ã«ã«å¯Ÿå¿ãããšãŒãžã§ã³ãã§ã¯ã /.well-known/agent-card.json ã® Agent Card ããã¹ãã«ãªã©ã®ã¡ã¿ããŒã¿ãåã蟌ãŸããŸããA2A ã«å¯Ÿå¿ããŠããªããšãŒãžã§ã³ãã§ã¯ãç»é²ããããšã³ããªã« ID ãšã©ã³ã¿ã€ã ãžã®åç
§ïŒ RuntimeReference ïŒãèšå®ãããã ãã§ã説æãã¹ãã«ãªã©ã®ã¡ã¿ããŒã¿ã¯èªåã§ã¯åã蟌ãŸããŸããã åè : ãšãŒãžã§ã³ããç»é²ãã - èªåç»é² åè : èªåç»é²ã䜿çšãã æ³šæç¹ æ©èœã¿ã€ããšã¢ã€ãã³ãã£ãã£ã¿ã€ãã¯äžåºŠèšå®ãããšå€æŽãè§£é€ãã§ããŸãããããšãã°æ©èœã¿ã€ã agent ã®ãµãŒãã¹ã mcp-server ã«å€æŽããããšãããšã以äžã®ãšã©ãŒã«ãªããŸãã ERROR: (gcloud.beta.run.services.update) spec.functional_type: Functional type cannot be updated or unset once set. ãŸãããµãŒãã¹ã¢ã«ãŠã³ãã§åäœããŠããæ¢åã®ãµãŒãã¹ã«ãããšãã Agent Platform æ©èœãèšå®ããŠãšãŒãžã§ã³ã ID ã«åãæ¿ããå ŽåãCloud Run ã¯ãã®ãµãŒãã¹ã«æ°ãããšãŒãžã§ã³ã ID ãå²ãåœãŠãŸãã ãã®ãšãŒãžã§ã³ã ID ã¯ã以åã®ãµãŒãã¹ã¢ã«ãŠã³ãã«ä»äžãããŠããæš©éãåŒãç¶ããŸããã æ¥ç¶æãé¿ãããããPolicy Analyzer ã§å¿
èŠãªããŒã«ãæŽãåºããŠäºåã«ä»äžãããã --no-traffic ãã©ã°ãä»ããŠæŽæ°ããæš©éãä»äžããŠãããã©ãã£ãã¯ãç§»è¡ããŠãã ããã åè : èš±å¯ããªã·ãŒçšã® Policy Analyzer å¶éäºé
2026幎9æçŸåšã以äžã®å¶éããããŸãã Agent Platform æ©èœãèšå®ã§ããã®ã¯ Cloud Run ã®ãµãŒãã¹ãšãžã§ãã®ã¿ãworker pools ãš instances ã«ã¯èšå®ã§ããªã Agent Gateway ã®å¶åŸ¡å¯Ÿè±¡ãšãªãã©ã³ã¿ã€ã 㯠Agent Runtime ãš Gemini Enterprise ã®ã¿ã§ãCloud Run äžã®ãšãŒãžã§ã³ãã¯å¯Ÿè±¡å€ãCloud Run ã®ãšãŒãžã§ã³ãã«å¯Ÿããéä¿¡å¶åŸ¡ã¯ãIAM ããªã·ãŒã«ããåŒã³åºãå
ã®å¶éã Identity-Aware ProxyïŒä»¥äžãIAP ãšèšèŒïŒã§è¡ã èšå®ã«äœ¿çšãã gcloud CLI ã®ã³ãã³ãã¯ãå
¬åŒããã¥ã¡ã³ãã§ã¯ gcloud beta run ã³ãã³ãçŸ€ã§æ¡å
ãããŠãã Agent Identity ã®å¶éãšããŠãCloud Storage ã®ã¬ã¬ã·ãŒ ãã±ããããŒã«ïŒ roles/storage.legacyBucketReader ãªã©ïŒã¯ãšãŒãžã§ã³ã ID ã«ä»äžã§ããªã èšå®æé åœèšäºã§æ±ãæé åœèšäºã§ã¯ãgcloud CLI ã䜿çšã㊠Cloud Run ã®ãµãŒãã¹ã« Agent Platform æ©èœãèšå®ããå²ãåœãŠããããšãŒãžã§ã³ã ID ã§ Google Cloud API ãšä»ã® Cloud Run ãµãŒãã¹ã«èªèšŒããæé ãæ±ããŸãã åäœç¢ºèªã§ã¯ãAgent Development KitïŒä»¥äžãADK ãšèšèŒïŒã§äœæãã BigQuery ã®ããŒã¿åæãšãŒãžã§ã³ãããšãŒãžã§ã³ã ID ä»ãã§ãããã€ããããŒã«ä»äžã®ååŸã§ BigQuery ãžã®ã¢ã¯ã»ã¹ãã©ãå€ãããã瀺ããŸãã éçºè
ã®ããŒã«ã«ç°å¢ãã IAP çµç±ã§ MCP ãµãŒããŒã«æ¥ç¶ããæé ãšãAgent Identity auth manager ã䜿ã£ãŠãšãŒãžã§ã³ãããŠãŒã¶ãŒã®ä»£çã§å€éšãµãŒãã¹ã«èªèšŒããæ¹æ³ã¯ãåœèšäºã§ã¯æ±ããŸãããauth manager ã«ã€ããŠã¯ã以äžã®ããã¥ã¡ã³ããåç
§ããŠãã ããã åè : ãšãŒãžã§ã³ã ID èªèšŒãããŒãžã£ãŒã®æŠèŠ åè : ããŒã«ãšãªãœãŒã¹ã«å¯ŸããèªèšŒ ãªããåœèšäºã®èšè¿°ã«ã€ããŠã¯ãèšäºãå·çãã2026幎9æçŸåšã®ãããã¯ã仿§ã«åºã¥ããŠããç¹ã«æ³šæããŠãã ãããææ°ã®è£œå仿§ãã¢ãŒããã¯ãã£ããã¹ããã©ã¯ãã£ã¹ã«ã€ããŠã¯å
¬åŒããã¥ã¡ã³ããåç
§ãã確èªããŠãã ããã äºåæºå ãããžã§ã¯ãã§ä»¥äžã® API ãæå¹åããŸãã # å¿
èŠãª API ãæå¹å $ gcloud services enable \ run.googleapis.com \ iam.googleapis.com \ agentregistry.googleapis.com \ apphub.googleapis.com \ --project =< ãããžã§ã¯ãID > Agent Registry API ãæå¹åãããšããã®ãããžã§ã¯ãã§ Agent Registry ã䜿çšã§ããããã«ãªããŸãã åè : ãšãŒãžã§ã³ã ã¬ãžã¹ããªãèšå®ãã ãšãŒãžã§ã³ãã®ããã〠æ©èœã¿ã€ãã« agent ãã¢ã€ãã³ãã£ãã£ã¿ã€ãã« agent-identity ãæå®ããŠãµãŒãã¹ããããã€ããŸãã # ãšãŒãžã§ã³ããšããŠãµãŒãã¹ãããã〠$ gcloud beta run deploy agent-a \ --image =< ã³ã³ããURL > \ --functional-type = agent \ --identity-type = agent-identity \ --region = asia-northeast1 --project =< ãããžã§ã¯ãID > ----- åºåäŸ ----- WARNING: Updating the functional type to an agent also requires updating its identity to agent_identity. Make sure to update the IAM policies on the agent_identity to ensure no issues with connectivity to other services. Deploying container to Cloud Run service [ agent -a] in project [< ãããžã§ã¯ãID >] region [ asia-northeast1 ] Deploying new service... Creating Revision.................................................................................done Routing traffic.....done Done. Service [ agent -a] revision [ agent-a-00001-nmz ] has been deployed and is serving 100 percent of traffic. Service URL: https://agent-a- < ãããžã§ã¯ãçªå· > .asia-northeast1.run.app åé ã® WARNING ã¯ãã¢ã€ãã³ãã£ãã£ã¿ã€ããæ£ããæå®ããŠããŠãæ¯å衚瀺ãããŸãããšãŒãžã§ã³ã ID ã«å¯Ÿãã IAM ããªã·ãŒã®æŽåãä¿ãå
容ã§ããããã€èªäœã¯æ£åžžã«å®äºããŸãã MCP ãµãŒããŒã®ããã〠æ©èœã¿ã€ãã« mcp-server ãæå®ããŸããã¢ã€ãã³ãã£ãã£ã¿ã€ãã¯ä»»æã§ãçç¥ããå Žåã¯ãµãŒãã¹ã¢ã«ãŠã³ãã䜿çšãããŸãã # MCP ãµãŒããŒãšããŠãµãŒãã¹ããããã€ïŒã¢ã€ãã³ãã£ãã£ã¿ã€ãã¯çç¥ïŒ $ gcloud beta run deploy mcp-a \ --image =< ã³ã³ããURL > \ --functional-type = mcp-server \ --region = asia-northeast1 --project =< ãããžã§ã¯ãID > MCP ãµãŒããŒã«ããšãŒãžã§ã³ã ID ãå²ãåœãŠãå Žåã¯ã --identity-type=agent-identity ã远å ããŸããCloud Run ã§ MCP ãµãŒããŒããã¹ãããæ¹æ³ã«ã€ããŠã¯ã以äžã®ããã¥ã¡ã³ããåç
§ããŠãã ããã åè : Cloud Run ã§ MCP ãµãŒããŒããã¹ããã æ¢åãµãŒãã¹ã®ç§»è¡ ãµãŒãã¹ã¢ã«ãŠã³ãã§åäœããŠããæ¢åã®ãµãŒãã¹ããšãŒãžã§ã³ã ID ã«åãæ¿ããå Žåã¯ã --no-traffic ãä»ããŠæŽæ°ããŸããæ°ãããªããžã§ã³ã¯ãã©ãã£ãã¯ãåããªãç¶æ
ã§äœæãããŸãã # æ¢åãµãŒãã¹ããšãŒãžã§ã³ã ID ã«æŽæ°ïŒãã©ãã£ãã¯ã¯ç§»è¡ããªãïŒ $ gcloud beta run services update plain-svc \ --functional-type = agent \ --identity-type = agent-identity \ --no-traffic \ --region = asia-northeast1 --project =< ãããžã§ã¯ãID > ----- åºåäŸ ----- WARNING: Updating the functional type to an agent also requires updating its identity to agent_identity. Make sure to update the IAM policies on the agent_identity to ensure no issues with connectivity to other services. Deploying... Creating Revision......................done Routing traffic.....done Done. Service [ plain-svc ] revision [ plain-svc-00002-k94 ] has been deployed and is serving 0 percent of traffic. ãªããžã§ã³ã®äžèЧã確èªãããšãæ°ãããªããžã§ã³ã¯äœææžã¿ã§ããããã©ãã£ãã¯ãåããŠããã®ã¯æ§ãªããžã§ã³ã®ãŸãŸã§ãã # ãªããžã§ã³ã®äžèЧã衚瀺 $ gcloud run revisions list --service = plain-svc --region = asia-northeast1 --project =< ãããžã§ã¯ãID > ----- åºåäŸ ----- REVISION ACTIVE SERVICE DEPLOYED DEPLOYED BY â plain-svc-00002-k94 plain-svc 2026-09-02 01:14:45 UTC < ãŠãŒã¶ãŒ > â plain-svc-00001-k5k yes plain-svc 2026-09-02 01:11:48 UTC < ãŠãŒã¶ãŒ > ãã®ç¶æ
ã§æ°ãããšãŒãžã§ã³ã ID ã«å¿
èŠãªããŒã«ãä»äžãããã®åŸã«ãã©ãã£ãã¯ãç§»è¡ããŸãã # ææ°ãªããžã§ã³ã«ãã©ãã£ãã¯ãç§»è¡ $ gcloud run services update-traffic plain-svc --to-latest --region = asia-northeast1 --project =< ãããžã§ã¯ãID > ----- åºåäŸ ----- Updating traffic... Routing traffic.......................................................................................................................done Done. URL: https://plain-svc- < ããã·ã¥ > -an.a.run.app Traffic: 100 % LATEST ( currently plain-svc-00002-k94 ) ãšãŒãžã§ã³ã ID ã®ç¢ºèª å²ãåœãŠããããšãŒãžã§ã³ã ID ã¯ããªããžã§ã³ã® describe ã§ç¢ºèªã§ããŸãããµãŒãã¹ã® describe ã«ã¯ ID ã®å€ã衚瀺ãããªãããããªããžã§ã³ãæå®ããŠãã ããã # ãªããžã§ã³ã®è©³çްã衚瀺 $ gcloud beta run revisions describe agent-a-00001-nmz --region = asia-northeast1 --project =< ãããžã§ã¯ãID > ----- åºåäŸ ----- â Revision agent-a-00001-nmz in region asia-northeast1 Container < ã³ã³ããå > Image: < ã³ã³ããURL > Port: 8080 Memory: 512Mi CPU: 1000m Startup Probe: TCP every 240s Port: 8080 Initial delay: 0s Timeout: 240s Failure threshold: 1 Type: Default Identity: //agents.global.org- < çµç¹ID > .system.id.goog/resources/run/projects/ < ãããžã§ã¯ãçªå· > /locations/asia-northeast1/services/agent-a Identity Type: agent-identity Identity Certificate Enabled: true Concurrency: 80 Timeout: 300s Execution Environment: Second Generation â Deploying revision succeeded in 6 .28s. Identity ã®å€ã¯ principal:// ã®æ¥é èŸãé€ãã圢åŒã§è¡šç€ºãããŸããIAM ããªã·ãŒã«æå®ããéã¯ãå
é ã« principal: ãä»ã㊠principal://agents.global... ã®åœ¢åŒã«ããŸãã Google Cloud ã³ã³ãœãŒã«ã§ã¯ããµãŒãã¹ã®ããªããžã§ã³ãã¿ãã§ãªããžã§ã³ãéžæãããã»ãã¥ãªãã£ãã¿ãã®ãIdentityããã£ãŒã«ãã«è¡šç€ºãããŸãã Agent Registry ã§ã®ç¢ºèª èªåç»é²ããããšãŒãžã§ã³ãã¯ãgcloud CLI ã® gcloud agent-registry agents list ã³ãã³ãã§äžèЧã§ããŸãã äžèЧã«ã¯ Google Workspace ãšãŒãžã§ã³ããªã©ã® Google æäŸã®ãšãŒãžã§ã³ãããAgent Runtime äžã®ãšãŒãžã§ã³ããå«ãŸããããã以äžã®äŸã§ã¯ agentId ã« run: ãå«ããšã³ããªã ãã衚瀺ããŠããŸãã # Agent Registry ã«ç»é²ããã Cloud Run ã®ãšãŒãžã§ã³ããäžèЧ $ gcloud agent-registry agents list \ --location = asia-northeast1 --project =< ãããžã§ã¯ãID > \ --filter =" agentId ~ 'run:' " \ --format =" table(agentId,createTime) " ----- åºåäŸ ----- AGENT_ID CREATE_TIME urn:agent:projects- < ãããžã§ã¯ãçªå· > :projects: < ãããžã§ã¯ãçªå· > :locations:asia-northeast1:run:jobs:agent-job 2026-09-02T01:10:13.286069Z urn:agent:projects- < ãããžã§ã¯ãçªå· > :projects: < ãããžã§ã¯ãçªå· > :locations:asia-northeast1:run:services:agent-a 2026-09-02T01:07:49.566835Z urn:agent:projects- < ãããžã§ã¯ãçªå· > :projects: < ãããžã§ã¯ãçªå· > :locations:asia-northeast1:run:services:agent-b 2026-09-02T01:11:58.117538Z urn:agent:projects- < ãããžã§ã¯ãçªå· > :projects: < ãããžã§ã¯ãçªå· > :locations:asia-northeast1:run:services:plain-svc 2026-09-02T01:11:48.365980Z MCP ãµãŒããŒã¯ãgcloud CLI ã§ã¯ gcloud agent-registry mcp-servers list ãAPI ã§ã¯ agents ã®ä»£ããã« mcpServers ãæå®ããŠäžèЧããŸãã mcpServerId 㯠urn:mcp:...:run:services:<ãµãŒãã¹å> ã®åœ¢åŒã§ãã ãšãŒãžã§ã³ãã®èªèšŒ Google Cloud API ãžã®èªèšŒ ãšãŒãžã§ã³ãã¯ãCloud Run ã®ã¡ã¿ããŒã¿ãµãŒããŒããååŸããã¢ã¯ã»ã¹ããŒã¯ã³ã§ Agent Platform ã Cloud Storage ãªã©ã® Google Cloud API ã«èªèšŒããŸãã ãã®ä»çµã¿ã¯åŸæ¥ã®ãµãŒãã¹ã¢ã«ãŠã³ããšåãã§ãã¢ããªã±ãŒã·ã§ã³ã³ãŒãã§ã¯æšæºã® Google Cloud ã¯ã©ã€ã¢ã³ãã©ã€ãã©ãªã䜿çšããã ãã§æžã¿ãŸããã¯ã©ã€ã¢ã³ãã©ã€ãã©ãªã¯ Application Default CredentialsïŒADCïŒã®ä»çµã¿ã§ã¡ã¿ããŒã¿ãµãŒããŒããçæã®ã¢ã¯ã»ã¹ããŒã¯ã³ãèªåååŸããŸãã å¿
èŠãªããŒã«ã¯ããšãŒãžã§ã³ã ID ãããªã³ã·ãã«ãšããŠä»äžããŸãã以äžã¯ Agent Platform ãŠãŒã¶ãŒïŒ roles/aiplatform.user ïŒããããžã§ã¯ãã¬ãã«ã§ä»äžããäŸã§ãã # ãšãŒãžã§ã³ã ID ã« Agent Platform ãŠãŒã¶ãŒã®ããŒã«ãä»äž $ gcloud projects add-iam-policy-binding < ãããžã§ã¯ãID > \ --member =" <ãšãŒãžã§ã³ãID> " \ --role =" roles/aiplatform.user " # äŸ : ãããžã§ã¯ã myproject ã®ãµãŒãã¹ myagent ã®ãšãŒãžã§ã³ã ID ã«ä»äž $ gcloud projects add-iam-policy-binding myproject \ --member =" principal://agents.global.org-111111111111.system.id.goog/resources/run/projects/222222222222/locations/asia-northeast1/services/myagent " \ --role =" roles/aiplatform.user " åè¿°ã®ãšãããAgent Platform çµç±ã® Gemini ã¢ãã«ã® generateContent ã¯ãèªåä»äžãããäºåå®çŸ©ããŒã«ã®æš©éã§åŒã³åºããŸããStorage ãªããžã§ã¯ãé²èЧè
ïŒ roles/storage.objectViewer ïŒãªã©ããã以å€ã®ã¢ã¯ã»ã¹ã«ã¯å¯Ÿè±¡ãªãœãŒã¹ã«å¯ŸããŠåå¥ã«ããŒã«ãä»äžããŠãã ããã åè : ã¢ããªã±ãŒã·ã§ã³ã®ããã©ã«ãèªèšŒæ
å ±ã®ä»çµã¿ ä»ã® Cloud Run äžã®ãšãŒãžã§ã³ãã»MCP ãµãŒããŒãžã®èªèšŒ ãšãŒãžã§ã³ã ID ãæã€ Cloud Run äžã®ãšãŒãžã§ã³ãã MCP ãµãŒããŒããCloud Run äžã®å¥ã®ãšãŒãžã§ã³ãã MCP ãµãŒããŒãåŒã³åºãå Žåã¯ãID ããŒã¯ã³ïŒJWTïŒã䜿çšããCloud Run çµã¿èŸŒã¿ã® Cloud Run èµ·åå
ïŒ roles/run.invoker ïŒã«ãã IAM ãã§ãã¯ã§æ€èšŒããŸããA2A ãããã³ã«ã«æºæ ãããšãŒãžã§ã³ããåŒã³åºãå Žåãåæ§ã§ãã ãã㯠Cloud Run ã®ãµãŒãã¹éèªèšŒãšåãä»çµã¿ã§ãåŒã³åºãå
ã®ããªã³ã·ãã«ããšãŒãžã§ã³ã ID ã«ãªãç¹ã ããç°ãªããŸãã ãŸããåŒã³åºãå
ãšãŒãžã§ã³ãã® ID ã«å¯ŸããŠãåŒã³åºãå
ãµãŒãã¹ã® Cloud Run èµ·åå
ããµãŒãã¹ã¬ãã«ã§ä»äžããŸãã # åŒã³åºãå
ãšãŒãžã§ã³ã ID ã«åŒã³åºãå
ãµãŒãã¹ã®èµ·åå
ããŒã«ãä»äž $ gcloud run services add-iam-policy-binding < åŒã³åºãå
ã®ãµãŒãã¹å > \ --member =" <åŒã³åºãå
ã®ãšãŒãžã§ã³ãID> " \ --role =" roles/run.invoker " \ --region = asia-northeast1 --project =< ãããžã§ã¯ãID > # äŸ : ãããžã§ã¯ã myproject ã®ãµãŒãã¹ myagent ã®ãšãŒãžã§ã³ã ID ãåŒã³åºãå
ãšããŠæå® $ gcloud run services add-iam-policy-binding < åŒã³åºãå
ã®ãµãŒãã¹å > \ --member =" principal://agents.global.org-111111111111.system.id.goog/resources/run/projects/222222222222/locations/asia-northeast1/services/myagent " \ --role =" roles/run.invoker " \ --region = asia-northeast1 --project = myproject <åŒã³åºãå
ã®ãšãŒãžã§ã³ãID> ã«ã¯ã principal:// ããå§ãŸããšãŒãžã§ã³ã ID ã®æååããã®ãŸãŸæå®ããŸããåŒã³åºãå
ã MCP ãµãŒããŒã®å Žåããã³ãã³ãã®ç¬¬1åŒæ°ã« MCP ãµãŒããŒã®ãµãŒãã¹åãæå®ããç¹ä»¥å€ã¯åãã§ãã æ¬¡ã«ãåŒã³åºãå
ã®ã³ã³ããå
ã§ãåŒã³åºãå
ãµãŒãã¹ã® URL ã audience ã«æå®ã㊠ID ããŒã¯ã³ãååŸãã Authorization ããããŒã«ä»ããŠãªã¯ãšã¹ãããŸããããŒã¯ã³ã®ååŸå
ã¯ãµãŒãã¹ã¢ã«ãŠã³ãã®å Žåãšåãã¡ã¿ããŒã¿ãµãŒããŒã§ãã¢ããªã±ãŒã·ã§ã³ã³ãŒãã®å€æŽã¯äžèŠã§ãã # åŒã³åºãå
ã® URL ã audience ã«ã㊠ID ããŒã¯ã³ãååŸ $ TOKEN = $( curl -s -H " Metadata-Flavor: Google " \ " http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/identity?audience=<åŒã³åºãå
ã®ãµãŒãã¹ã®URL> " ) # ååŸããããŒã¯ã³ã§åŒã³åºãå
ãåŒã³åºã $ curl -H " Authorization: Bearer $TOKEN " < åŒã³åºãå
ã®ãµãŒãã¹ã®URL > åè : ãµãŒãã¹éèªèšŒ åè : Authenticate MCP servers ãã€ã³ãããŒã¯ã³ã«ããä¿è·ã®åŒ·å åè¿°ã®æé ã§ååŸãã ID ããŒã¯ã³ã¯éãã€ã³ãããŒã¯ã³ãšåŒã°ããæšæºçãªãã®ã§ãããšãŒãžã§ã³ã ID ãæã€ã¯ãŒã¯ããŒãã§ã¯ãããã«å ããŠãã€ã³ãããŒã¯ã³ã䜿çšã§ããŸãã æ¹åŒ å
容 éãã€ã³ãããŒã¯ã³ ã¡ã¿ããŒã¿ãµãŒããŒãçæãããaudience ä»ãã®æšæºç㪠ID ããŒã¯ã³ããµãŒãã¹éèªèšŒã»ãšãŒãžã§ã³ãéèªèšŒã®ããã©ã«ã ãã€ã³ãããŒã¯ã³ mTLS ã«ãããããŒã¯ã³ãã¯ãŒã¯ããŒãã®èšŒææžãšçµã³ä»ãããåŒã³åºãå
ããªã¯ãšã¹ãã«èªèº«ã®èšŒææžãã§ãŒã³ãå«ãã ã©ã¡ããã¡ã¿ããŒã¿ãµãŒããŒãçºè¡ãã ID ããŒã¯ã³ã§ãåŒã³åºãå
ã誰ãã蚌æããç¹ã¯åãã§ããéãã¯ãããŒã¯ã³ãæã£ãŠããã ãã§äœ¿ãããã©ããã«ãããŸããéãã€ã³ãããŒã¯ã³ã¯ãæå¹æéå
ã§ããã°ããŒã¯ã³ãæã€èª°ãã䜿ããŸãã äžæ¹ããã€ã³ãããŒã¯ã³ã«ã¯åŒã³åºãå
ã®ã¯ãŒã¯ããŒãèšŒææžã®ãã£ã³ã¬ãŒããªã³ãïŒèšŒææžã®ããã·ã¥å€ïŒãåã蟌ãŸããŠãããåŒã³åºãå
㯠TLS ã®æ¥ç¶æã«æç€ºãããèšŒææžããã®ãã£ã³ã¬ãŒããªã³ããšäžèŽããããæ€èšŒããŸããèšŒææžã®ç§å¯éµã¯ã³ã³ããã®å€ã«åºãªããããããŒã¯ã³ã ããæŒæŽ©ããŠã第äžè
ã¯åå©çšã§ããŸããã ã©ã¡ãã®æ¹åŒã«ãªããã¯ãåŒã³åºãå
ã«æå®ãã URL ã§æ±ºãŸããŸããéåžžã® URLïŒ run.app ïŒãæå®ãããšéãã€ã³ãããŒã¯ã³ãmTLS çš URLïŒ mtls.run.app ïŒãæå®ãããšãã€ã³ãããŒã¯ã³ã䜿çšããŸãã æšæºã® Google Cloud ã¯ã©ã€ã¢ã³ãã©ã€ãã©ãªã¯ãèšŒææžãããç°å¢ã§ã¯èªåã§ãã€ã³ãããŒã¯ã³ãååŸããŠèšŒææžãæç€ºãã ãããéåžžã¯æ¹åŒãæèããã«æžã¿ãŸããID èšŒææžãç¡å¹åããã¯ãŒã¯ããŒããããµãŒãã¹ã¢ã«ãŠã³ãã§åäœããåŒã³åºãå
ã«ã¯èšŒææžããªããããéãã€ã³ãããŒã¯ã³ã®ã¿äœ¿çšã§ããŸãã åãä»çµã¿ã¯ Google Cloud API ãžã®èªèšŒã§ãåããŠããŸããåŸè¿°ã®åäœç¢ºèªã§ã¯ãBigQuery ã®ã¯ã©ã€ã¢ã³ãã©ã€ãã©ãªãæ¥ç¶å
ãšã㊠bigquery.mtls.googleapis.com ãèªåã§éžæããŠããããšãŒãžã§ã³ã ID ã«ãã Google Cloud API ãžã®ã¢ã¯ã»ã¹ãããã©ã«ãã§ mTLS ã«ãªã£ãŠããããšã確èªã§ããŸããcurl ã§ãã€ã³ãããŒã¯ã³ãæåååŸããæé ã¯ãå
¬åŒããã¥ã¡ã³ãã«èšèŒãããŠããŸãã åè : Authenticate your AI agents - Fetch a bound ID token (mTLS) åè : A2A ãšãŒãžã§ã³ãã Cloud Run ã«ãããã€ãã åäœç¢ºèª æ€èšŒæ§æ ãšãŒãžã§ã³ã ID ã«ããèªèšŒã®æåã確èªãããããADK ã§äœæãã BigQuery ã®ããŒã¿åæãšãŒãžã§ã³ããããšãŒãžã§ã³ã ID ãæå¹ã«ãã Cloud Run ãµãŒãã¹ã«ãããã€ããŸããããšãŒãžã§ã³ã㯠Gemini ã®åŒã³åºããš BigQuery ã®ã¯ãšãªå®è¡ã®äž¡æ¹ã«ããµãŒãã¹ã¢ã«ãŠã³ãã§ã¯ãªããšãŒãžã§ã³ã ID ã§èªèšŒããŸãã ãªãœãŒã¹ èšå® åœ¹å² Cloud Run ãµãŒãã¹ bq-agent --functional-type=agent --identity-type=agent-identity ADK ãšãŒãžã§ã³ããADK ã® API ãµãŒããŒãšã㊠HTTP ã§è³ªåãåãä»ãã GeminiïŒ gemini-3.5-flash ãasia-northeast1ïŒ äºåå®çŸ©ããŒã«ã§åŒã³åºãå¯èœ 質åã®è§£éãšããŒã«ã®éžæ BigQuery å
¬éããŒã¿ã»ãã bigquery-public-data.samples.shakespeare ãšãŒãžã§ã³ã ID ã« BigQuery ãžã§ããŠãŒã¶ãŒãä»äž ãšãŒãžã§ã³ããã¯ãšãªãå®è¡ãã察象 æ€èšŒã¯ä»¥äžã®é ã§è¡ããŸããã ãšãŒãžã§ã³ãããããã€ããå²ãåœãŠããããšãŒãžã§ã³ã ID ã確èªãã ããŒã«ãä»äžããåã«ãGemini ã ãã䜿ã質åãš BigQuery ã䜿ã質åãéã ãšãŒãžã§ã³ã ID ã« BigQuery ãžã§ããŠãŒã¶ãŒïŒ roles/bigquery.jobUser ïŒãä»äžãã åã質åãéããçµæãæ¯èŒãã Cloud Audit Logs ã§ãBigQuery ãžã®ã¢ã¯ã»ã¹ããšãŒãžã§ã³ã ID ãšããŠèšé²ãããŠããããšã確èªãã ãšãŒãžã§ã³ãã®ãœãŒã¹ã³ãŒã ãã£ã¬ã¯ããªæ§æã¯ä»¥äžã®ãšããã§ããADK ã®å
¬åŒããã¥ã¡ã³ãã«ãã Cloud Run ãžã®ãããã€æ§æã«åŸã£ãŠããŸãã bq-agent/ âââ bq_agent/ â âââ __init__.py â âââ agent.py âââ main.py âââ requirements.txt âââ Dockerfile ãšãŒãžã§ã³ãæ¬äœã¯ agent.py ã§ããBigQuery ããŒã«ã»ããã®èªèšŒæ
å ±ã«ã¯ ADC ã䜿çšããŸããCloud Run äžã§ã¯ãã¡ã¿ããŒã¿ãµãŒããŒãéããŠãšãŒãžã§ã³ã ID ã®èªèšŒæ
å ±ã䜿ãããŸãã # bq_agent/agent.py import os import google.auth from google.adk.agents import Agent from google.adk.tools.bigquery import BigQueryCredentialsConfig, BigQueryToolset from google.adk.tools.bigquery.config import BigQueryToolConfig, WriteMode # ã¯ãšãªãå®è¡ãããããžã§ã¯ã PROJECT_ID = os.environ[ "GOOGLE_CLOUD_PROJECT" ] # Application Default Credentials ã䜿çšãã # Cloud Run äžã§ã¯ã¡ã¿ããŒã¿ãµãŒããŒçµç±ã§ãšãŒãžã§ã³ã ID ã®èªèšŒæ
å ±ã䜿ããã credentials, _ = google.auth.default() bigquery_toolset = BigQueryToolset( credentials_config=BigQueryCredentialsConfig(credentials=credentials), bigquery_tool_config=BigQueryToolConfig(write_mode=WriteMode.BLOCKED), tool_filter=[ "get_dataset_info" , "get_table_info" , "execute_sql" ], ) root_agent = Agent( name= "bq_agent" , model= "gemini-3.5-flash" , description= "BigQuery ã®ããŒã¿ã«ã€ããŠè³ªåã«çãããšãŒãžã§ã³ã" , instruction=( "ããªã㯠BigQuery ã®ããŒã«ã䜿ã£ãŠããŒã¿ã®è³ªåã«çããããŒã¿åæãšãŒãžã§ã³ãã§ãã" f "ããŒã«ã® project_id ã«ã¯åžžã« {PROJECT_ID} ãæå®ããŠãã ããã" "ããŒã«ã®å®è¡ããšã©ãŒã«ãªã£ãå Žåã¯å詊è¡ããããšã©ãŒã¡ãã»ãŒãžããã®ãŸãŸåçã«å«ããŠãã ããã" ), tools=[bigquery_toolset], ) # bq_agent/__init__.py from . import agent main.py ã¯ãADK ãæäŸãã FastAPI ã¢ããªã±ãŒã·ã§ã³ããã®ãŸãŸèµ·åããŸãã # main.py import os import uvicorn from google.adk.cli.fast_api import get_fast_api_app AGENT_DIR = os.path.dirname(os.path.abspath(__file__)) app = get_fast_api_app(agents_dir=AGENT_DIR, web= False ) if __name__ == "__main__" : uvicorn.run(app, host= "0.0.0.0" , port= int (os.environ.get( "PORT" , 8080 ))) äŸåé¢ä¿ã¯ google-adk[gcp] ã®1è¡ã§ããBigQuery ããŒã«ã»ãã㯠BigQuery ãš Dataplex ã®ã¯ã©ã€ã¢ã³ãã©ã€ãã©ãªãå¿
èŠãšããããã㯠google-adk ã® gcp extra ã«å«ãŸããŸãã # requirements.txt google-adk[gcp] # Dockerfile FROM python:3.13-slim WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . CMD [ " sh ", " -c ", " uvicorn main:app --host 0.0.0.0 --port $PORT " ] ããã〠ãœãŒã¹ããçŽæ¥ãããã€ããŸããæ©èœã¿ã€ããšã¢ã€ãã³ãã£ãã£ã¿ã€ãã®ãã©ã°ã«å ããŠãGemini ã Agent Platform çµç±ã§åŒã³åºãããã®ç°å¢å€æ°ãèšå®ããŸãã # ADK ãšãŒãžã§ã³ãããšãŒãžã§ã³ã ID ä»ãã§ããã〠$ gcloud beta run deploy bq-agent \ --source . \ --functional-type = agent \ --identity-type = agent-identity \ --set-env-vars =" GOOGLE_CLOUD_PROJECT=<ãããžã§ã¯ãID>,GOOGLE_CLOUD_LOCATION=asia-northeast1,GOOGLE_GENAI_USE_ENTERPRISE=True " \ --region = asia-northeast1 --project =< ãããžã§ã¯ãID > ----- åºåäŸ ----- WARNING: Updating the functional type to an agent also requires updating its identity to agent_identity. Make sure to update the IAM policies on the agent_identity to ensure no issues with connectivity to other services. Building using Dockerfile and deploying container to Cloud Run service [ bq-agent ] in project [< ãããžã§ã¯ãID >] region [ asia-northeast1 ] Building and deploying new service... Validating configuration..........done Uploading sources.........done Building Container.............................................done Creating Revision..............................................done Routing traffic.....done Done. Service [ bq-agent ] revision [ bq-agent-00001-9x6 ] has been deployed and is serving 100 percent of traffic. Service URL: https://bq-agent- < ãããžã§ã¯ãçªå· > .asia-northeast1.run.app ãªããžã§ã³ã®è©³çްã§ããšãŒãžã§ã³ã ID ãå²ãåœãŠãããŠããããšã確èªããŸãã # ãªããžã§ã³ã®è©³çްãããšãŒãžã§ã³ã ID ãç¢ºèª $ gcloud beta run revisions describe bq-agent-00001-9x6 --region = asia-northeast1 --project =< ãããžã§ã¯ãID > | grep Identity ----- åºåäŸ ----- Identity: //agents.global.org- < çµç¹ID > .system.id.goog/resources/run/projects/ < ãããžã§ã¯ãçªå· > /locations/asia-northeast1/services/bq-agent Identity Type: agent-identity Identity Certificate Enabled: true ã³ã³ãœãŒã«ãã Cloud Run ãªããžã§ã³ã®ãšãŒãžã§ã³ã ID ã確èªãã Agent Registry ã«ãããšãŒãžã§ã³ããšããŠèªåç»é²ãããŠããŸãã # Agent Registry ã®ç»é²ãç¢ºèª $ gcloud agent-registry agents list \ --location = asia-northeast1 --project =< ãããžã§ã¯ãID > \ --filter =" agentId ~ 'bq-agent' " ----- åºåäŸ ----- --- agentId: urn:agent:projects- < ãããžã§ã¯ãçªå· > :projects: < ãããžã§ã¯ãçªå· > :locations:asia-northeast1:run:services:bq-agent attributes: agentregistry.googleapis.com/system/RuntimeReference: uri: //run.googleapis.com/projects/ < ãããžã§ã¯ãçªå· > /locations/asia-northeast1/services/bq-agent createTime: ' 2026-09-02T16:43:08.933443Z ' displayName: bq-agent name: projects/ < ãããžã§ã¯ãID > /locations/asia-northeast1/agents/agentregistry-00000000-0000-0000-da87-53c426078b85 uid: agentregistry-00000000-0000-0000-da87-53c426078b85 updateTime: ' 2026-09-02T16:54:39.553087Z ' ã³ã³ãœãŒã«ãããšãŒãžã§ã³ãã Agent Registry ã«èªåç»é²ãããŠããããšã確èªãã ãšãŒãžã§ã³ãã®åŒã³åºã ADK ã® API ãµãŒããŒã¯ãã»ãã·ã§ã³ãäœæããŠãã /run ã«è³ªåãéã圢åŒã§ãããµãŒãã¹ã¯æªèªèšŒã®ãªã¯ãšã¹ããèš±å¯ããŠããªããããåŒã³åºãåŽã®ãŠãŒã¶ãŒã® ID ããŒã¯ã³ã Authorization ããããŒã«ä»ããŸããåœèšäºã§ã¯ãCloud Run 管çè
ã®ãŠãŒã¶ãŒã§ gcloud auth print-identity-token ã䜿çšããŸãããããŒã¯ã³ãªãã§åŒã³åºããšãCloud Run ã403ã§æåŠããŸãã # ID ããŒã¯ã³ãååŸ $ TOKEN = $( gcloud auth print-identity-token ) $ URL =https://bq-agent- < ãããžã§ã¯ãçªå· > .asia-northeast1.run.app # ã»ãã·ã§ã³ãäœæ $ curl -s -X POST -H " Authorization: Bearer $TOKEN " -H " Content-Type: application/json " \ " $URL /apps/bq_agent/users/u1/sessions/s1 " -d ' {} ' # 質åãéã $ curl -s -H " Authorization: Bearer $TOKEN " -H " Content-Type: application/json " " $URL /run " \ -d ' {"app_name":"bq_agent","user_id":"u1","session_id":"s1","new_message":{"role":"user","parts":[{"text":"<質å>"}]}} ' /run ã®å¿çã¯ãã¢ãã«ã®å¿çãããŒã«ã®åŒã³åºããšçµæãå«ãã€ãã³ãã®é
åã§ãã以äžã§ã¯ãå¿çããããŒã«ã®åŒã³åºãïŒ functionCall ïŒãããŒã«ã®çµæïŒ functionResponse ïŒãæçµåçïŒ text ïŒãæç²ããŠç€ºããŸãã ããŒã«ä»äžåã®åäœ ãŸããBigQuery ã®ããŒã«ã䜿ããªã質åãéããŸãããšãŒãžã§ã³ã ID ã«ã¯ Gemini ã®åŒã³åºãã«å¿
èŠãªæš©éãäºåå®çŸ©ããŒã«ã§èªåä»äžãããŠããããã远å ã®ããŒã«ãªãã§åçãè¿ããŸãã 質å : BigQuery ã®ããŒã«ã¯äœ¿ããã«çããŠãã ãããããªãã¯äœãã§ããŸããã1æã§çããŠãã ããã åç : ç§ã¯ãBigQueryã«æ ŒçŽãããŠããããŒã¿ã«é¢ãã質åã«å¯ŸããŠãããŒã¿ã®æ€çŽ¢ãåæãè¡ã£ãŠãçãããããšãã§ããŸãã æ¬¡ã«ãBigQuery ã®ã¯ãšãªãå¿
èŠãšãã質åãéããŸãããšãŒãžã§ã³ã㯠SQL ãçµã¿ç«ãŠãŠ execute_sql ããŒã«ãåŒã³åºããŸããããšãŒãžã§ã³ã ID ã«ã¯ãšãªãå®è¡ããæš©éãç¡ããããããŒã«ã®å®è¡ã403ã§å€±æããŸãã 質å : bigquery-public-data.samples.shakespeare ããŒãã«ã§ãword_count ã®åèšãæãå€ã corpus äžäœ3ä»¶ãæããŠãã ããã functionCall : execute_sql project_id : <ãããžã§ã¯ãID> query : SELECT corpus, SUM(word_count) AS total_word_count FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus ORDER BY total_word_count DESC LIMIT 3 functionResponse : status : ERROR error_details : 403 POST https://bigquery.mtls.googleapis.com/bigquery/v2/projects/<ãããžã§ã¯ãID>/jobs?prettyPrint=false: Access Denied: Project <ãããžã§ã¯ãID>: User does not have bigquery.jobs.create permission in project <ãããžã§ã¯ãID>. åç : ç³ãèš³ãããŸããããã¯ãšãªãå®è¡ãããšããã以äžã®ãšã©ãŒãçºçããŸããã ãšã©ãŒã¡ãã»ãŒãž: Access Denied: Project <ãããžã§ã¯ãID>: User does not have bigquery.jobs.create permission in project <ãããžã§ã¯ãID>. ãããžã§ã¯ã <ãããžã§ã¯ãID> ã«ãã㊠bigquery.jobs.create æš©éããªããããã¯ãšãªãå®è¡ããããšãã§ããŸããã§ããã ãšã©ãŒã¡ãã»ãŒãžäžã® BigQuery ã®ãšã³ããã€ã³ãã bigquery.mtls.googleapis.com ã«ãªã£ãŠããç¹ã«ã泚ç®ããŠãã ãããã¯ã©ã€ã¢ã³ãã©ã€ãã©ãªãã³ã³ããå
ã®ã¯ãŒã¯ããŒãèšŒææžãæ€åºããGoogle Cloud API ãšã®éä¿¡ã« mTLS ã®ãšã³ããã€ã³ããèªåã§éžæããŠããŸããåè¿°ã®ãšããããšãŒãžã§ã³ã ID ã«ãã Google Cloud API ãžã®ã¢ã¯ã»ã¹ãããã©ã«ãã§ mTLS ã«ãªããšãã Agent Identity ã®ä»æ§ã©ããã®åäœã§ãã ããŒã«ã®ä»äž ãšãŒãžã§ã³ã ID ãããªã³ã·ãã«ã«ããŠãBigQuery ãžã§ããŠãŒã¶ãŒïŒ roles/bigquery.jobUser ïŒããããžã§ã¯ãã¬ãã«ã§ä»äžããŸããå
¬éããŒã¿ã»ããã®ããŒãã«ã¯èª°ã§ãèªã¿åãããããã¯ãšãªãå®è¡ãããããžã§ã¯ãã«å¯Ÿãããžã§ãäœæã®æš©éãããã°è¶³ããŸãã # ãšãŒãžã§ã³ã ID ã« BigQuery ãžã§ããŠãŒã¶ãŒãä»äž $ gcloud projects add-iam-policy-binding < ãããžã§ã¯ãID > \ --member =" principal://agents.global.org-<çµç¹ID>.system.id.goog/resources/run/projects/<ãããžã§ã¯ãçªå·>/locations/asia-northeast1/services/bq-agent " \ --role =" roles/bigquery.jobUser " ----- åºåäŸ ----- Updated IAM policy for project [< ãããžã§ã¯ãID >] . bindings: // çç¥ - members: - principal://agents.global.org- < çµç¹ID > .system.id.goog/resources/run/projects/ < ãããžã§ã¯ãçªå· > /locations/asia-northeast1/services/bq-agent role: roles/bigquery.jobUser // çç¥ ããŒã«ä»äžåŸã®åäœ åã質åãæ°ããã»ãã·ã§ã³ã§éããšãããŒã«ã®å®è¡ãæåããã¯ãšãªçµæã«åºã¥ãåçãè¿ããŸãã 質å : bigquery-public-data.samples.shakespeare ããŒãã«ã§ãword_count ã®åèšãæãå€ã corpus äžäœ3ä»¶ãæããŠãã ããã functionCall : execute_sql project_id : <ãããžã§ã¯ãID> query : SELECT corpus, SUM(word_count) AS total_word_count FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus ORDER BY total_word_count DESC LIMIT 3 functionResponse : status : SUCCESS rows : [{'corpus': 'hamlet', 'total_word_count': 32446}, {'corpus': 'kingrichardiii', 'total_word_count': 31868}, {'corpus': 'coriolanus', 'total_word_count': 29535}] åç : bigquery-public-data.samples.shakespeare ããŒãã«ã«ãããŠãword_count ã®åèšãæãå€ã corpusïŒäœåïŒã®äžäœ3ä»¶ã¯ä»¥äžã®éãã§ãã 1. hamletïŒãã ã¬ããïŒ: 32,446 2. kingrichardiiiïŒãªãã£ãŒãäžäžïŒ: 31,868 3. coriolanusïŒã³ãªãªã¬ã€ãã¹ïŒ: 29,535 ãšãŒãžã§ã³ãã®ã³ãŒãã«ã¯ããµãŒãã¹ã¢ã«ãŠã³ãã®ããŒãèªèšŒæ
å ±ã®èšå®ã¯äžåå«ãŸããŠããŸãããã¢ã€ãã³ãã£ãã£ã¿ã€ãã agent-identity ã«ããŠãããã€ãããšãŒãžã§ã³ã ID ã«ããŒã«ãä»äžããã ãã§ãã¯ã©ã€ã¢ã³ãã©ã€ãã©ãªãèªåçã«ãšãŒãžã§ã³ã ID ãšããŠèªèšŒããŠããŸãã ç£æ»ãã°ã§ã®ç¢ºèª Cloud Audit Logs ã§ã¯ãBigQuery ãžã®ã¢ã¯ã»ã¹ããšãŒãžã§ã³ã ID ãããªã³ã·ãã«ãšããŠèšé²ãããŸãããšãŒãžã§ã³ã ID 㯠principalEmail ã§ã¯ãªã principalSubject ãã£ãŒã«ãã«ã principal:// 圢åŒã§å
¥ããŸãã # BigQuery ã®ç£æ»ãã°ãããšãŒãžã§ã³ã ID ã®ãšã³ããªã衚瀺 $ gcloud logging read ' protoPayload.serviceName="bigquery.googleapis.com" AND protoPayload.authenticationInfo.principalSubject:"services/bq-agent" ' \ --project =< ãããžã§ã¯ãID > --limit = 2 --order = asc \ --format =" json(timestamp,protoPayload.methodName,protoPayload.status,protoPayload.authenticationInfo.principalSubject) " ----- åºåäŸ ----- [ { " protoPayload " : { " authenticationInfo " : { " principalSubject " : " principal://agents.global.org-<çµç¹ID>.system.id.goog/resources/run/projects/<ãããžã§ã¯ãçªå·>/locations/asia-northeast1/services/bq-agent " } , " methodName " : " jobservice.insert " , " status " : { " code " : 7 , " message " : " Access Denied: Project <ãããžã§ã¯ãID>: User does not have bigquery.jobs.create permission in project <ãããžã§ã¯ãID>. " } } , " timestamp " : " 2026-09-02T16:55:19.161262Z " } , { " protoPayload " : { " authenticationInfo " : { " principalSubject " : " principal://agents.global.org-<çµç¹ID>.system.id.goog/resources/run/projects/<ãããžã§ã¯ãçªå·>/locations/asia-northeast1/services/bq-agent " } , " methodName " : " jobservice.insert " , " status " : {} } , " timestamp " : " 2026-09-02T16:55:56.681213Z " } ] 1ä»¶ç®ã¯ããŒã«ä»äžåã®æåŠããããžã§ãäœæïŒ status.code ã7ãPERMISSION_DENIEDïŒã2ä»¶ç®ã¯ããŒã«ä»äžåŸã«æåãããžã§ãäœæã§ããã©ã¡ããããªã³ã·ãã«ããšãŒãžã§ã³ã ID ã«ãªã£ãŠãããã©ã® Cloud Run ãµãŒãã¹ã BigQuery ã«ã¢ã¯ã»ã¹ãããããµãŒãã¹åäœã§è¿œè·¡ã§ããŸãã åè : BigQuery tool for ADK åè : Cloud Run - Agent Development Kit (ADK) äœã
æš é§¿å€ª (èšäºäžèЧ) ã¯ã©ãŠããœãªã¥ãŒã·ã§ã³éš ã¯ã©ãŠããšã³ãžãã¢ãªã³ã°1課 åæµ·éåšäœ 倧åŠé¢ãŸã§ç€ŸäŒå¿çåŠãå°æ»ããAI ã«èå³ãæã¡ IT æ¥çãžã2022幎6æã« G-gen ã«ãžã§ã€ã³ãGoogle Cloud Partner Top Engineer ã«éžåºïŒ2024 / 2025 Fellow / 2026ïŒã奜ã㪠Google Cloud ãããã¯ã㯠Cloud Runã è¶£å³ã¯ã³ãŒããŒãå°èª¬ïŒSFããã¹ããªïŒãã«ã©ãªã±ãªã©ãæè¿ã¯æ³åŸã®å匷ã«ãç®èŠãã2çŽç¥ç財ç£ç®¡çæèœå£«ãååŸãæè¿ã¯å人æ
å ±ä¿è·æ³ãå匷äžã Follow @sasashun0805
åç»
該åœããã³ã³ãã³ããèŠã€ãããŸããã§ãã
æžç±
該åœããã³ã³ãã³ããèŠã€ãããŸããã§ãã







