View a markdown version of this page

Sicurezza e controlli degli accessi - Amazon Bedrock AgentCore

Sicurezza e controlli degli accessi

Il cablaggio offre le stesse primitive di sicurezza del resto AgentCore, cablate in base alla configurazione.

  • Esecuzione isolata. Ogni sessione viene eseguita nella propria Firecracker MicroVM in Runtime. AgentCore Nessuno stato condiviso, nessun filesystem condiviso.

  • Ruolo di esecuzione IAM. L'harness assume un ruolo IAM di tua proprietà, configurabile per includere Bedrock, ECR e le primitive che CloudWatch utilizza. AgentCore Di seguito è riportato un esempio di politica relativa ai ruoli di esecuzione.

  • Modello di autorizzazioni IAM. Le API Harness richiedono autorizzazioni sia sulla risorsa harness che sulla risorsa Runtime sottostante. AgentCore Ad esempio, la chiamata InvokeHarness richiede entrambe bedrock-agentcore:InvokeHarness le bedrock-agentcore:InvokeAgentRuntime autorizzazioni sul cablaggio ARN. Lo stesso schema si applica alle operazioni del piano di controllo: UpdateHarness require bedrock-agentcore:UpdateAgentRuntimebedrock-agentcore:DeleteAgentRuntime, DeleteHarness requires e così via. Vedi la politica sui ruoli di esecuzione per l'elenco completo.

  • Supporto OAuth in entrata. Le risorse Harness configurate da JWT richiedono ai chiamanti di presentare un JWT valido emesso da un provider di identità configurato prima di poter richiamare l'harness. AgentCore Identity trasferisce l'identità dell'utente finale tramite l'agente, in modo che gli strumenti a valle possano chiamare le API con credenziali utente specifiche anziché un account di servizio condiviso.

  • VPC. Collega le sessioni di cablaggio al tuo VPC per l'accesso privato alle risorse interne.

  • Politiche su Gateway. Quando gli strumenti vengono forniti tramite AgentCore Gateway, è possibile configurare Cedar-based le policy per bloccare ogni chiamata: chi può chiamare quale strumento, a quali condizioni, con quali argomenti.

Nota

SIGv4 e identità per utente. Quando i chiamanti si autenticano con SigV4 (AWS IAM), l'harness non propaga l'identità per utente nelle chiamate allo strumento a valle. Ciò significa che le funzionalità di analisi delle credenziali per utente in AgentCore Identity Token Vault, come l'archiviazione dei token OAuth con ambito utente e lo scambio di token per conto dell'utente, sono disponibili solo quando i chiamanti si autenticano con un Bearer JWT tramite il percorso in entrata OAuth. Se il tuo caso d'uso richiede l'ambito delle credenziali per utente per gli strumenti a valle, configura OAuth in ingresso sull'harness. Il supporto SigV4 per l'identità per utente è previsto per le future release.

Modello di responsabilità condivisa

L'imbracatura è basata su Runtime. AgentCore Il limite di sicurezza è lo stesso: autenticazione IAM o JWT combinata con isolamento MicroVM. Il cablaggio non aggiunge un livello di sicurezza tra il chiamante e la microVM.

AWS responsabilità:
  • Infrastruttura sicura e isolamento delle microVM a livello hardware

  • Applicazione di patch al kernel del sistema operativo

  • Applicazione di patch in fase di esecuzione del linguaggio per distribuzioni dirette di codice

  • Sicurezza dell'infrastruttura di rete

  • Disponibilità e resilienza del servizio

Le tue responsabilità:
  • Sicurezza del codice degli agenti e gestione delle dipendenze

  • Controlli degli accessi e politiche delle risorse IAM

  • Sicurezza dei comandi eseguiti nelle sessioni di runtime

  • Session-to-user applicazione della mappatura

  • Convalida degli input e prevenzione tempestiva delle iniezioni, inclusa la convalida di tutti gli InvokeHarness input (vedi) Convalida dei limiti di fiducia e degli input

  • Convalida della configurazione del modello, ad esempio additionalParamsapiBase, e modelId campi (vedi) Parametri di configurazione del modello

  • Fonti di competenze e istruzioni: garanzia che i bucket S3, i repository Git e gli URL utilizzati per le competenze contengano contenuti affidabili (vedi) Competenze e istruzioni

  • Aggiornamenti delle immagini dei container (per le implementazioni in container): ricostruisci regolarmente con l'immagine di base sicura più recente

  • Configurazione di rete (gruppi di sicurezza, endpoint VPC, tabelle di routing)

Per il modello completo AgentCore di responsabilità condivisa di Runtime, consulta le migliori pratiche di sicurezza per AgentCore Runtime.

Convalida dei limiti di fiducia e degli input

Tutti gli InvokeAgentRuntimeCommand input InvokeHarness sono attendibili. Qualsiasi principale che supera la porta di autenticazione e autorizzazione IAM o JWT ha accesso alla sessione MicroVM completa, inclusi gli strumenti e le funzionalità configurati sul cablaggio. L'harness non elimina gli input, filtra i blocchi di contenuto o impone vincoli comportamentali.

Se esponi il sistema a utenti finali di cui non ti fidi completamente (dipendenti, consumatori esterni o integrazioni di terze parti), convalida e ripulisci i messaggi a livello applicativo prima di trasmetterli. InvokeHarness Ciò include l'eliminazione dei tipi di blocchi di contenuto o dei campi di configurazione del modello che non desiderate vengano inviati. Questo è lo stesso schema di qualsiasi servizio che accetta payload da chiamanti autorizzati, come Lambda, Amazon API Gateway e Amazon SQS.

Parametri di configurazione del modello

Il model field in InvokeHarness accetta additionalParams configurazioni Bedrock, OpenAI e LiteLLM. Questi parametri vengono trasmessi invariati al fornitore del modello sottostante. Il cablaggio non convalida, filtra o limita questi parametri.

I chiamanti che possono impostare possono: additionalParams

  • Reindirizza le richieste verso endpoint arbitrari: il aws_bedrock_runtime_endpoint parametro LiteLLM ha la precedenza sull'URL dell'endpoint Bedrock. Un chiamante può indirizzare la richiesta firmata, inclusa la firma SigV4 e le credenziali di sessione, a un endpoint specificato nella configurazione del modello di fiducia.

  • Sostituisci le intestazioni HTTP: il extra_headers parametro di OpenAI inserisce o sovrascrive le intestazioni HTTP nella richiesta in uscita al fornitore del modello, inclusa l'intestazione. Authorization

  • Tenta di assumere un ruolo IAM: il aws_role_name parametro LiteLLM indica al runtime di assumere un ruolo IAM diverso prima di chiamare il provider del modello. Il tentativo riesce o fallisce in base alle autorizzazioni del ruolo di esecuzione. sts:AssumeRole

  • Modifica il modello o la regione di destinazione: i apiBase campi modelId and possono reindirizzare l'inferenza a un modello, un'area o un provider completamente diversi.

Se la tua applicazione rivela InvokeHarness funzionalità a chiamanti di cui non ti fidi completamente, prendi in considerazione l'implementazione della convalida degli input a livello di applicazione. Gli esempi includono:

  • Eliminare o consentire l'inserimento del campo prima di inoltrare le richieste model

  • Convalida o rimozione e additionalParams apiBase modelId

  • Negazione sts:AssumeRole del ruolo di esecuzione se non è richiesto il cambio di ruolo

  • Definizione dell'ambito dell'accesso alla rete cablata utilizzando i gruppi di sicurezza VPC

Competenze e istruzioni

Le skill sono pacchetti di markdown e script che l'harness recupera da Amazon S3 o Git al momento della chiamata e inserisce nel contesto dell'agente. L'harness tratta tutti i contenuti relativi alle competenze come input affidabili. Non convalida, disinfetta o ispeziona il contenuto o la fonte delle competenze prima di fornirli all'agente.

L'utente è responsabile di:

  • Garantire che le fonti di competenze (bucket S3, repository Git, URL) siano affidabili e con accesso controllato

  • Esamina i contenuti delle abilità, comprese le istruzioni di markdown e gli eventuali script incorporati, prima di configurarli sul sistema

  • Controllare quali principali possono sovrascrivere il skills campo per ogni chiamata, poiché i chiamanti possono indirizzare il cablaggio verso sorgenti S3 o Git arbitrarie

InvokeHarnessLe abilità possono essere sostituite per chiamata. Se l'applicazione inoltra l'input fornito dal chiamante aInvokeHarness, quest'ultimo può fornire le proprie fonti di competenze contenenti istruzioni o script arbitrari. Alcuni esempi di mitigazioni includono:

  • Eliminare o ignorare il campo dalle richieste fornite dal skills chiamante

  • Allowlist di prefissi S3 o repository Git consentiti

Osservabilità e correlazione delle tracce

L'harness propaga automaticamente gli identificatori di correlazione alle AgentCore primitive downstream (Gateway, Memory, Code Interpreter, Browser) per abilitare viste di traccia unificate in. CloudWatch Questi identificatori vengono utilizzati solo per l'osservabilità e non vengono mai utilizzati per decisioni di autorizzazione o accesso ai dati.

Configurazione della rete

Per impostazione predefinita, le sessioni di cablaggio vengono eseguite sulla rete pubblica. Per accedere a risorse private (database, API interne, sottoreti private), implementa il cablaggio nel tuo VPC.

Esempio
AWS CLI/boto3
aws bedrock-agentcore-control create-harness \ --harness-name "VpcHarness" \ --execution-role-arn "arn:aws:iam::123456789012:role/MyHarnessRole" \ --environment '{"agentCoreRuntimeEnvironment": {"networkConfiguration": {"networkMode": "VPC", "vpcConfig": {"securityGroupIds": ["sg-0abc1234def56789a"], "subnetIds": ["subnet-0abc1234def56789a"]}}}}'
AgentCore CLI
agentcore add harness --name internal-agent \ --network-mode VPC \ --subnets subnet-0abc1234def56789a \ --security-groups sg-0abc1234def56789a agentcore deploy
Importante

L'harness estrae il contenitore delle applicazioni da Amazon ECR Public all'inizio di ogni sessione. Quando viene eseguito in modalità VPC, il VPC deve consentire l'accesso in uscita a. public.ecr.aws Amazon ECR Public non supporta gli endpoint VPC, quindi il tuo VPC deve disporre di un gateway NAT con un percorso verso un gateway Internet. Se questa connettività non è disponibile, le sessioni non si avvieranno a causa dei timeout di estrazione delle immagini.

Per ulteriori indicazioni sulla configurazione della rete, consulta Configure AgentCore Runtime e configurazione VPC degli strumenti integrati. Per la connettività API in entrata tramite PrivateLink, consulta Endpoint dell'interfaccia VPC.

OAuth in entrata

Richiedi ai chiamanti di presentare un JWT valido emesso da un provider di identità configurato prima di poter richiamare l'harness. AgentCore Identity trasferisce l'identità dell'utente finale tramite l'agente, in modo che gli strumenti a valle possano richiamare le API con credenziali utente specifiche anziché un account di servizio condiviso.

Esempio
AWS CLI/boto3
aws bedrock-agentcore-control create-harness \ --harness-name "OAuthHarness" \ --execution-role-arn "arn:aws:iam::123456789012:role/MyHarnessRole" \ --authorizer-configuration '{"customJWTAuthorizer": {"discoveryUrl": "https://cognito-idp.us-west-2.amazonaws.com/<POOL_ID>/.well-known/openid-configuration", "allowedClients": ["<CLIENT_ID>"]}}'

Invoca con un token Bearer anziché le credenziali SigV4:

curl -X POST "https://bedrock-agentcore.us-west-2.amazonaws.com/harnesses/invoke?harnessArn=${HARNESS_ARN}" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ${ID_TOKEN}" \ -H "X-Amzn-Bedrock-AgentCore-Runtime-Session-Id: $(uuidgen)" \ -d '{"messages": [{"role": "user", "content": [{"text": "Hi"}]}]}'
AgentCore CLI
agentcore add harness --name MyNewHarness \ --authorizer-type CUSTOM_JWT \ --discovery-url {DISCOVERY_URL} \ --allowed-clients {CLIENT_ID} agentcore deploy

Invoca con un token bearer:

agentcore invoke --harness MyNewHarness --bearer-token "{token}" "Hello"

Quando l'endpoint di rilevamento OIDC del tuo provider di identità è raggiungibile solo tramite PrivateLink, aggiungi i flag di endpoint privati all'autorizzatore CUSTOM_JWT. Utilizza un endpoint VPC gestito dal servizio:

agentcore add harness --name MyNewHarness \ --authorizer-type CUSTOM_JWT \ --discovery-url {DISCOVERY_URL} \ --allowed-clients {CLIENT_ID} \ --private-endpoint-vpc-id vpc-0abc1234def56789a \ --private-endpoint-subnets subnet-0abc1234def56789a,subnet-0def5678abc12349b \ --private-endpoint-ip-type IPV4 \ --private-endpoint-security-groups sg-0abc1234def56789a agentcore deploy

Oppure punta a una configurazione di risorse VPC Lattice esistente anziché a un endpoint VPC gestito:

agentcore add harness --name MyNewHarness \ --authorizer-type CUSTOM_JWT \ --discovery-url {DISCOVERY_URL} \ --allowed-clients {CLIENT_ID} \ --private-endpoint-lattice-arn rcfg-0abc1234def56789a agentcore deploy
Nota

I flag private-endpoint sono validi solo con. --authorizer-type CUSTOM_JWT --private-endpoint-vpc-ide si --private-endpoint-lattice-arn escludono a vicenda: scegline uno. Con--private-endpoint-vpc-id, sono --private-endpoint-subnets obbligatori entrambi e --private-endpoint-ip-type (IPV4oIPV6).

Vedi l'autorizzatore JWT in entrata per il flusso completo di configurazione OAuth.

Interactive

Esegui agentcore in una directory di progetto, seleziona aggiungi, scegli Harness e passa alle impostazioni avanzate. Abilita l'autenticazione (e l'accesso alla rete per VPC) con Space, quindi premi Invio.

  1. Scegli il tipo di autorizzazione: AWS IAM (impostazione predefinita) o Custom JWT per l'autenticazione con token portatore OIDC.

    Seleziona il tipo di autorizzazione del cablaggio
  2. Per Custom JWT, inserisci l'URL di rilevamento OIDC.

    Configura JWT personalizzato: URL di scoperta
  3. Seleziona i vincoli del token da convalidare: destinatari consentiti, clienti consentiti, ambiti consentiti o dichiarazioni personalizzate.

    Seleziona i vincoli JWT da configurare
  4. Scegli in che modo l'harness raggiunge l'endpoint di rilevamento IdP: Nessuno (raggiungibile pubblicamente), una risorsa VPC Lattice o un endpoint VPC gestito (). PrivateLink

    PrivateLink opzioni per l'endpoint di rilevamento IdP
  5. Per Rete, scegli la modalità VPC e fornisci gli ID di sottorete e gli ID dei gruppi di sicurezza.

    Inserisci gli ID di sottorete VPC

Conferma la procedura guidata, quindi agentcore deploy esegui per applicare.

Ulteriori informazioni: AgentCore Identità · Autorizzatore JWT in entrata · credenziali in uscita

Politiche del gateway

Quando gli strumenti vengono forniti tramite AgentCore Gateway, Cedar-based le policy bloccano ogni chiamata: chi può chiamare quale strumento, a quali condizioni, con quali argomenti.

Per saperne di più: AgentCore Politica · modelli comuni

Politica sul ruolo di esecuzione

L'harness presuppone un ruolo di esecuzione IAM fornito dall'utente. La politica di fiducia del ruolo deve consentire al responsabile del AgentCore servizio di assumerlo:

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": {"Service": "bedrock-agentcore.amazonaws.com"}, "Action": "sts:AssumeRole" }] }

Autorizzazioni IAM richieste per i chiamanti

Le API Harness richiedono autorizzazioni sia sulla risorsa harness che sul Runtime sottostante AgentCore e sulle risorse di memoria opzionali. AgentCore La tabella seguente elenca le azioni richieste per ogni API:

"Hello, World!" Azioni IAM richieste

InvokeHarness

bedrock-agentcore:InvokeHarness, bedrock-agentcore:InvokeAgentRuntime

InvokeAgentRuntimeCommand

bedrock-agentcore:InvokeAgentRuntimeCommand, bedrock-agentcore:InvokeAgentRuntime

CreateHarness

bedrock-agentcore:CreateHarness, bedrock-agentcore:CreateAgentRuntime, bedrock-agentcore:CreateMemory

UpdateHarness

bedrock-agentcore:UpdateHarness, bedrock-agentcore:UpdateAgentRuntime, bedrock-agentcore:UpdateMemory

DeleteHarness

bedrock-agentcore:DeleteHarness, bedrock-agentcore:DeleteAgentRuntime, bedrock-agentcore:DeleteMemory

GetHarness

bedrock-agentcore:GetHarness

ListHarnesses

bedrock-agentcore:ListHarnesses

CreateHarnessEndpoint

bedrock-agentcore:CreateHarnessEndpoint, bedrock-agentcore:CreateAgentRuntimeEndpoint

UpdateHarnessEndpoint

bedrock-agentcore:UpdateHarnessEndpoint, bedrock-agentcore:UpdateAgentRuntimeEndpoint

DeleteHarnessEndpoint

bedrock-agentcore:DeleteHarnessEndpoint, bedrock-agentcore:DeleteAgentRuntimeEndpoint

GetHarnessEndpoint

bedrock-agentcore:GetHarnessEndpoint

ListHarnessEndpoints

bedrock-agentcore:ListHarnessEndpoints

ListHarnessVersions

bedrock-agentcore:ListHarnessVersions

La maggior parte delle azioni utilizza l'harness ARN come ambito delle risorse:. arn:aws:bedrock-agentcore:<region>:<accountId>:harness/<id> Le azioni degli endpoint utilizzano anche l'endpoint di cablaggio ARN:. arn:aws:bedrock-agentcore:<region>:<accountId>:harness/<id>/harness-endpoint/<endpointName>

Le DeleteHarnessEndpoint azioni GetHarnessEndpointUpdateHarnessEndpoint, e richiedono sia l'ARN del cablaggio che l'ARN dell'endpoint. CreateHarnessEndpointrichiede solo l'imbracatura ARN. L'endpoint non esiste ancora, quindi non è necessario alcun ARN dell'endpoint. Quando richiami un endpoint personalizzato InvokeHarness e InvokeAgentRuntimeCommand richiedi sia l'ARN del cablaggio che l'ARN dell'endpoint.

Esempio di politica del ruolo di esecuzione

{ "Version": "2012-10-17", "Statement": [ { "Sid": "BedrockModelInvocation", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:*::foundation-model/*", "arn:aws:bedrock:<region>:<accountId>:*" ] }, { "Sid": "EcrPublicTokenAccess", "Effect": "Allow", "Action": [ "ecr-public:GetAuthorizationToken" ], "Resource": "*" }, { "Sid": "StsForEcrPublicPull", "Effect": "Allow", "Action": [ "sts:GetServiceBearerToken" ], "Resource": "*" }, { "Sid": "XRayTracingAccess", "Effect": "Allow", "Action": [ "xray:PutTraceSegments", "xray:PutTelemetryRecords", "xray:GetSamplingRules", "xray:GetSamplingTargets" ], "Resource": "*" }, { "Sid": "CloudWatchLogsGroup", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:DescribeLogStreams" ], "Resource": "arn:aws:logs:<region>:<accountId>:log-group:/aws/bedrock-agentcore/runtimes/*" }, { "Sid": "CloudWatchLogsDescribeGroups", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": "arn:aws:logs:<region>:<accountId>:log-group:*" }, { "Sid": "CloudWatchLogsStream", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:<region>:<accountId>:log-group:/aws/bedrock-agentcore/runtimes/*:log-stream:*" }, { "Sid": "CloudWatchMetricsPublish", "Effect": "Allow", "Resource": "*", "Action": "cloudwatch:PutMetricData", "Condition": { "StringEquals": { "cloudwatch:namespace": "bedrock-agentcore" } } }, { "Sid": "AgentCoreWorkloadIdentity", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetWorkloadAccessToken", "bedrock-agentcore:GetWorkloadAccessTokenForJWT" ], "Resource": [ "arn:aws:bedrock-agentcore:<region>:<accountId>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:<region>:<accountId>:workload-identity-directory/default/workload-identity/harness_<agentName>-*" ] }, { "Sid": "AgentCoreBrowserDefault", "Effect": "Allow", "Action": [ "bedrock-agentcore:StartBrowserSession", "bedrock-agentcore:StopBrowserSession", "bedrock-agentcore:GetBrowserSession", "bedrock-agentcore:ListBrowserSessions", "bedrock-agentcore:UpdateBrowserStream", "bedrock-agentcore:ConnectBrowserAutomationStream", "bedrock-agentcore:ConnectBrowserLiveViewStream" ], "Resource": "arn:aws:bedrock-agentcore:<region>:aws:browser/*" }, { "Sid": "AgentCoreCodeInterpreterDefault", "Effect": "Allow", "Action": [ "bedrock-agentcore:StartCodeInterpreterSession", "bedrock-agentcore:StopCodeInterpreterSession", "bedrock-agentcore:GetCodeInterpreterSession", "bedrock-agentcore:ListCodeInterpreterSessions", "bedrock-agentcore:InvokeCodeInterpreter" ], "Resource": "arn:aws:bedrock-agentcore:<region>:aws:code-interpreter/*" } ] }

La AgentCore CLI crea automaticamente un ruolo con queste autorizzazioni quando si impalcatura un progetto Harness. La politica di cui sopra si riferisce ai casi in cui il ruolo viene creato da soli.

Nota

La dichiarazione BedrockModelInvocation di esempio riportata sopra consente di richiamare tutti i modelli di base in tutte le regioni e tutte le risorse Bedrock presenti nel tuo account. Per ridurre l'ambito, sostituisci gli ARN delle risorse con profili di inferenza specifici, che consentono di instradare le richieste tra modelli e regioni con un unico ARN. Ad esempio: arn:aws:bedrock:<destination_regions>:<accountId>:inference-profile/<profileId> abbinato a tutte le regioni consentite. arn:aws:bedrock:<region>:<accountId>:foundation-model/<modelId>

Per i carichi di lavoro di produzione, limitate Resource i valori agli ARN specifici di cui il sistema di cablaggio ha bisogno anziché utilizzarli. "*"

Autorizzazioni aggiuntive per funzionalità opzionali

Di seguito sono riportati alcuni esempi di policy che è possibile aggiungere al proprio ruolo di esecuzione in base alle funzionalità utilizzate dall'harness. Segui il principio del privilegio minimo: concedi al tuo harness agent solo gli strumenti e le credenziali specifici di cui ha bisogno per l'inferenza. Vedi per le definizioni Riferimento segnaposto dei segnaposto.

Accesso ECR privato (immagini di contenitori personalizzate)

Aggiungi questa politica quando il tuo cablaggio utilizza un'immagine ECR privata per un contenitore personalizzato.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ECRImageAccess", "Effect": "Allow", "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "arn:aws:ecr:<ecrRegion>:<ecrAccountId>:repository/<ecrRepoName>" }, { "Sid": "ECRTokenAccess", "Effect": "Allow", "Action": "ecr:GetAuthorizationToken", "Resource": "*" } ] }

AgentCore Memoria

Aggiungi questa policy quando il sistema di cablaggio utilizza un'istanza di memoria di proprietà del cliente.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreMemory", "Effect": "Allow", "Action": [ "bedrock-agentcore:CreateEvent", "bedrock-agentcore:DeleteEvent", "bedrock-agentcore:GetEvent", "bedrock-agentcore:ListEvents", "bedrock-agentcore:RetrieveMemoryRecords" ], "Resource": "arn:aws:bedrock-agentcore:<region>:<accountId>:memory/<memoryId>" } ] }

AgentCore Browser (personalizzato)

Aggiungi questa politica quando il sistema di cablaggio utilizza una risorsa browser personalizzata di proprietà del cliente.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreBrowserCustom", "Effect": "Allow", "Action": [ "bedrock-agentcore:StartBrowserSession", "bedrock-agentcore:StopBrowserSession", "bedrock-agentcore:GetBrowserSession", "bedrock-agentcore:ListBrowserSessions", "bedrock-agentcore:UpdateBrowserStream", "bedrock-agentcore:ConnectBrowserAutomationStream", "bedrock-agentcore:ConnectBrowserLiveViewStream" ], "Resource": "arn:aws:bedrock-agentcore:<region>:<accountId>:browser-custom/<browserCustomId>" } ] }

AgentCore Interprete di codice (personalizzato)

Aggiungi questa policy quando il tuo sistema di cablaggio utilizza un interprete di codice personalizzato di proprietà del cliente.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreCodeInterpreterCustom", "Effect": "Allow", "Action": [ "bedrock-agentcore:StartCodeInterpreterSession", "bedrock-agentcore:StopCodeInterpreterSession", "bedrock-agentcore:GetCodeInterpreterSession", "bedrock-agentcore:ListCodeInterpreterSessions", "bedrock-agentcore:InvokeCodeInterpreter" ], "Resource": "arn:aws:bedrock-agentcore:<region>:<accountId>:code-interpreter-custom/<codeInterpreterCustomId>" } ] }

AgentCore Gateway

Aggiungi questa policy quando il tuo harness utilizza un gateway configurato con l'autenticazione in entrata SigV4.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreGatewayAccess", "Effect": "Allow", "Action": "bedrock-agentcore:InvokeGateway", "Resource": "arn:aws:bedrock-agentcore:<region>:<accountId>:gateway/<gatewayId>" } ] }

Fonti di competenze in Amazon S3 e Git

Aggiungi questa policy quando il tuo harness recupera una skill da una fonte Amazon S3. Il ruolo di esecuzione elenca e scarica gli oggetti delle abilità sotto il prefisso bucket.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreSkillS3Access", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::<skillBucket>", "arn:aws:s3:::<skillBucket>/*" ] } ] }

Per recuperare una skill da un repository Git privato, l'harness legge un token di accesso personale da un provider di credenziali di chiave API. Concedi la politica del fornitore di credenziali per le chiavi API mostrata di seguito per il provider di credenziali che detiene il token.

Provider di credenziali per chiavi API (riferimenti ARN dell'intestazione OpenAI, Gemini, LiteLLM o MCP)

Aggiungi questa policy quando il tuo harness utilizza un provider di credenziali di chiavi API per fornitori di modelli come OpenAI, Gemini o LiteLLM.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreApiKeyTokenVaultDefault", "Effect": "Allow", "Action": "bedrock-agentcore:GetResourceApiKey", "Resource": [ "arn:aws:bedrock-agentcore:<region>:<accountId>:token-vault/default", "arn:aws:bedrock-agentcore:<region>:<accountId>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:<region>:<accountId>:workload-identity-directory/default/workload-identity/harness_<agentName>-*" ] }, { "Sid": "AgentCoreApiKeyTokenVaultPerKey", "Effect": "Allow", "Action": "bedrock-agentcore:GetResourceApiKey", "Resource": "arn:aws:bedrock-agentcore:<region>:<accountId>:token-vault/default/apikeycredentialprovider/<apiKeyName>" }, { "Sid": "AgentCoreApiKeySecret", "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:<region>:<accountId>:secret:bedrock-agentcore-identity!default/apikey/<apiKeyName>-*" } ] }

Provider di credenziali OAuth2 (Gateway) OAuth-protected

Aggiungi questa policy quando il tuo harness utilizza un provider di credenziali OAuth2 per gli strumenti gateway. OAuth-protected

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreOAuth2TokenVaultDefault", "Effect": "Allow", "Action": "bedrock-agentcore:GetResourceOauth2Token", "Resource": [ "arn:aws:bedrock-agentcore:<region>:<accountId>:token-vault/default", "arn:aws:bedrock-agentcore:<region>:<accountId>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:<region>:<accountId>:workload-identity-directory/default/workload-identity/harness_<agentName>-*" ] }, { "Sid": "AgentCoreOAuth2TokenVaultPerProvider", "Effect": "Allow", "Action": "bedrock-agentcore:GetResourceOauth2Token", "Resource": "arn:aws:bedrock-agentcore:<region>:<accountId>:token-vault/default/oauth2credentialprovider/<oauthProviderName>" }, { "Sid": "AgentCoreOAuth2Secret", "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:<region>:<accountId>:secret:bedrock-agentcore-identity!default/oauth2/<oauthProviderName>-*" } ] }

Riferimento segnaposto

Sostituisci i seguenti segnaposto nelle politiche precedenti con valori specifici del tuo ambiente:

Placeholder Description

<region>

La AWS regione in cui viene distribuita la risorsa.

<accountId>

L'ID AWS del tuo account.

<agentName>

Il nome del tuo addetto all'imbracatura.

<memoryId>

L'ID della tua risorsa di AgentCore memoria.

<browserCustomId>

L'ID della risorsa del browser personalizzata.

<codeInterpreterCustomId>

L'ID della risorsa dell'interprete di codice personalizzato.

<gatewayId>

L'ID della risorsa AgentCore Gateway.

<apiKeyName>

Il nome del fornitore di credenziali della chiave API.

<skillBucket>

Il nome del bucket S3 che contiene i tuoi file di abilità.

<oauthProviderName>

Il nome del provider di credenziali OAuth2.

<ecrRegion>

La regione in cui è ospitato il tuo repository ECR.

<ecrAccountId>

L'ID AWS dell'account proprietario dell'archivio ECR.

<ecrRepoName>

Il nome del tuo archivio ECR.

Nota

La parte finale delle risorse di -* Secrets Manager rappresenta il suffisso casuale che Secrets Manager aggiunge agli ARN segreti.