Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Resource-based politiche per Amazon Bedrock AgentCore
Resource-based le policy in Amazon Bedrock ti AgentCore consentono di controllare quali principali (AWS account, utenti IAM o ruoli IAM) possono richiamare e gestire le tue AgentCore risorse Amazon Bedrock (attualmente supportate per Runtime, Gateway e Memory). Puoi allegare IAM-style le policy direttamente alle tue risorse per definire regole su chi può avviare sessioni di runtime, richiamare un gateway, accedere alla memoria o eseguire altre azioni di gestione e richiamo.
Resource-based le policy funzionano insieme alle policy IAM basate sull'identità per fornire il controllo degli accessi alle tue risorse Amazon Bedrock. AgentCore Mentre le policy basate sull'identità sono collegate alle identità IAM e specificano quali azioni possono eseguire, le policy basate sulle risorse sono collegate direttamente alle risorse e specificano chi può accedervi.
Argomenti
Risorse supportate
Amazon Bedrock AgentCore supporta policy basate sulle risorse per le seguenti risorse:
-
Agent Runtime e Agent Endpoints: controlla l'accesso alle operazioni di chiamata e gestione degli agenti
-
Gateway: controlla l'accesso alle operazioni di chiamata del gateway
-
Memoria: controlla l'accesso alle operazioni di memoria
Come funzionano le politiche basate sulle risorse
Identity-based rispetto alle politiche basate sulle risorse
| Aspetto | Identity-Based Politica | Resource-Based Politica |
|---|---|---|
|
Allegato |
Collegato a utenti, ruoli o gruppi IAM |
Collegato direttamente alle risorse Amazon Bedrock AgentCore |
|
Gestione |
Gestito tramite AWS IAM |
Gestito tramite le API Amazon Bedrock AgentCore |
|
Specifica |
Azioni e risorse (il principio principale è implicito) |
Principi, azioni e condizioni (la risorsa è implicita) |
|
Caso d'uso |
Definisci cosa può fare un'identità |
Definisci chi può accedere a una risorsa |
Valutazione delle politiche
Quando viene effettuata una richiesta a una AgentCore risorsa Amazon Bedrock, AWS valuta le politiche basate sull'identità e sulle risorse. La tabella seguente mostra in che modo le diverse combinazioni di policy influiscono sull'accesso:
| Politica IAM | Policy delle risorse | Risultato |
|---|---|---|
|
Concede l'accesso |
Silent |
Consentito |
|
Concede l'accesso |
Concede l'accesso |
Consentito |
|
Concede l'accesso |
Nega l'accesso |
Negato |
|
Silent |
Silent |
Negato |
|
Silent |
Concede l'accesso |
Consentito |
|
Silent |
Nega l'accesso |
Negato |
|
Nega l'accesso |
Silent |
Negato |
|
Nega l'accesso |
Consente l'accesso |
Negato |
|
Nega l'accesso |
Nega l'accesso |
Negato |
Principi chiave:
-
La negazione esplicita vince sempre: se una politica nega esplicitamente l'azione, l'accesso viene negato indipendentemente dalle altre politiche
-
Entrambe le politiche possono consentire: se una politica basata sull'identità o sulle risorse consente l'azione (e nessuna politica la nega), l'accesso è concesso
-
Negazione predefinita: se nessuna policy consente esplicitamente un'azione, l'accesso viene negato
Autorizzazione gerarchica per il runtime e l'endpoint dell'agente
Gli endpoint dell'agente sono punti di accesso indirizzabili a versioni specifiche del runtime di un agente. Ogni endpoint punta a una particolare versione della configurazione di runtime, con un endpoint PREDEFINITO che viene indirizzato automaticamente alla versione più recente. Quando autorizza operazioni API di runtime come InvokeAgentRuntime eInvokeAgentRuntimeCommand, AWS valuta le politiche basate sull'identità e sulle risorse sia per il runtime dell'agente che per l'endpoint dell'agente richiamato.
Affinché una richiesta venga autorizzata, devono essere soddisfatte le seguenti condizioni:
-
Le politiche basate sull'identità associate all'entità chiamante devono consentire l'azione sia sul runtime dell'agente che sulle risorse dell'endpoint dell'agente
-
La policy basata sulle risorse sul runtime dell'agente deve consentire l'azione (se esiste una policy)
-
La policy basata sulle risorse sull'endpoint dell'agente deve consentire l'azione (se esiste una policy)
Importante
Per fornire l'accesso tra più account a un principale, è necessario creare politiche basate sulle risorse che concedano l'accesso sia per il runtime dell'agente che per l'endpoint dell'agente. Se una delle risorse nega l'accesso o manca di una dichiarazione di autorizzazione esplicita, la richiesta verrà negata.
Esempio: la concessione dell'accesso tra account richiede politiche su entrambe le risorse:
// Policy for Agent Runtime (attached to // arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID) { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/CrossAccountRole" }, "Action": "bedrock-agentcore:InvokeAgentRuntime", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID" } ] } // Policy for Agent Endpoint (attached to // arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID/endpoint/ENDPOINTID) { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/CrossAccountRole" }, "Action": "bedrock-agentcore:InvokeAgentRuntime", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID/endpoint/ENDPOINTID" } ] }
Considerazioni sul tipo di autenticazione
Il modo in cui si scrivono policy basate sulle risorse dipende dal tipo di autenticazione configurato per Agent Runtime o Gateway:
- Autenticazione SIGv4
-
Utilizza AWS principi specifici (utenti, ruoli o account IAM) nell'elemento.
PrincipalAd esempio:"Principal": {"AWS": "arn:aws:iam::123456789012:role/MyRole"}. La policy viene valutata insieme alle autorizzazioni IAM del chiamante. Per un esempio che limita l'invocazione di un runtime solo da un AgentCore gateway, consulta Restrict IAM (Sigv4) in entrata al gateway. - Autenticazione OAuth
-
È necessario utilizzare il carattere jolly principal («Principal»: «*») nelle dichiarazioni politiche. I token OAuth vengono convalidati da AWS Identity Service prima della valutazione delle politiche. Solo gli utenti OAuth autenticati con token JWT validi dell'Identity Provider (IdP) registrato possono richiamare la risorsa. Le richieste anonime o non autenticate vengono rifiutate prima della valutazione della politica. Utilizza le chiavi di condizione per limitare l'accesso (ad es.
aws:SourceVpc,aws:SourceVpce).
Importante
Un Agent Runtime o un Gateway possono essere configurati solo con l'autenticazione SIGv4 O OAuth al momento della creazione, non entrambe contemporaneamente. Ciò significa che una singola policy basata sulle risorse si applica a un solo tipo di autenticazione.
Struttura delle policy
Una policy basata sulle risorse è un documento JSON con la seguente struttura:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "StatementId", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/role-name" }, "Action": "bedrock-agentcore:ActionName", "Resource": "arn:aws:bedrock-agentcore:region:account-id:resource-type/resource-id", "Condition": { "ConditionOperator": { "ConditionKey": "ConditionValue" } } } ] }
Importante
Il Resource campo nel documento della politica deve contenere l'ARN esatto della risorsa a cui è collegata la politica. L'uso di «Resource»: «*» non è supportato e comporterà un errore di convalida.
Azioni supportate
Azioni Agent Runtime
-
bedrock-agentcore:InvokeAgentRuntime- Richiama il runtime di un agente -
bedrock-agentcore:InvokeAgentRuntimeForUser- Richiama un endpoint di runtime dell'agente con intestazione X-Amzn-Bedrock-AgentCore-Runtime-User-Id -
bedrock-agentcore:InvokeAgentRuntimeCommand- Esegue un comando di shell in una sessione di runtime attiva -
bedrock-agentcore:InvokeAgentRuntimeCommandShell- Aprire una sessione di WebSocket shell interattiva in una sessione di runtime attiva -
bedrock-agentcore:InvokeAgentRuntimeWithWebSocketStream- Richiama il runtime di un agente con stream WebSocket -
bedrock-agentcore:InvokeAgentRuntimeWithWebSocketStreamForUser- Richiama il runtime di un agente con WebSocket stream with header X-Amzn-Bedrock-AgentCore-Runtime-User-Id -
bedrock-agentcore:StopRuntimeSession- Interrompe una sessione di runtime attiva -
bedrock-agentcore:GetAgentCard- Recupera i dati della carta dell'agente
Azioni del gateway
-
bedrock-agentcore:InvokeGateway- Richiama un gateway
Azioni di memoria
-
bedrock-agentcore:GetMemory- Recupera una risorsa di memoria -
bedrock-agentcore:UpdateMemory- Aggiornare una risorsa di memoria -
bedrock-agentcore:DeleteMemory- Eliminare una risorsa di memoria -
bedrock-agentcore:CreateEvent- Crea un evento in una risorsa di memoria -
bedrock-agentcore:GetEvent- Recupera un evento da una risorsa di memoria -
bedrock-agentcore:DeleteEvent- Eliminare un evento da una risorsa di memoria -
bedrock-agentcore:ListEvents- Elenca gli eventi da una risorsa di memoria -
bedrock-agentcore:ListActors- Elenca gli attori di una risorsa di memoria -
bedrock-agentcore:ListSessions- Elenca le sessioni da una risorsa di memoria -
bedrock-agentcore:GetMemoryRecord- Ottieni un record di memoria da una risorsa di memoria -
bedrock-agentcore:ListMemoryRecords- Elenca i record di memoria da una risorsa di memoria -
bedrock-agentcore:RetrieveMemoryRecords- Cerca i record di memoria da una risorsa di memoria -
bedrock-agentcore:DeleteMemoryRecord- Eliminare un record di memoria da una risorsa di memoria -
bedrock-agentcore:BatchCreateMemoryRecords- Creazione in batch di record di memoria in una risorsa di memoria -
bedrock-agentcore:BatchUpdateMemoryRecords- Aggiornamento in batch dei record di memoria in una risorsa di memoria -
bedrock-agentcore:BatchDeleteMemoryRecords- Eliminazione in batch dei record di memoria in una risorsa di memoria -
bedrock-agentcore:StartMemoryExtractionJob- Avvia un processo di estrazione all'interno di una risorsa di memoria -
bedrock-agentcore:ListMemoryExtractionJobs- Elenca i lavori di estrazione all'interno di una risorsa di memoria
Chiavi di condizione
Puoi utilizzare le chiavi di condizione per perfezionare ulteriormente il controllo degli accessi nelle tue politiche. Per un elenco completo delle chiavi di condizione disponibili, consulta Bedrock AgentCore Condition Keys e AWS Global Condition Context Keys.
Casi d'uso ed esempi comuni
Questa sezione fornisce esempi pratici di politiche basate sulle risorse per scenari comuni. Il Resource campo in ogni esempio deve contenere l'ARN esatto della risorsa a cui è collegata la policy. Sostituisci gli ARN di esempio con gli ARN effettivi delle risorse.
Consenti ruoli in un altro AWS account
Concedi l'accesso tramite API a ruoli specifici in un AWS account diverso:
// Policy attached to arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:role/DeveloperRole", "arn:aws:iam::123456789012:role/AdminRole" ] }, "Action": "bedrock-agentcore:InvokeAgentRuntime", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID" } ] }
Nega il traffico in base all'indirizzo IP di origine
Blocca il traffico in entrata da intervalli di indirizzi IP specifici:
// Policy attached to arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/ApplicationRole" }, "Action": "bedrock-agentcore:InvokeAgentRuntime", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID" }, { "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::123456789012:role/ApplicationRole" }, "Action": "bedrock-agentcore:InvokeAgentRuntime", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID", "Condition": { "IpAddress": { "aws:SourceIp": [ "192.0.2.0/24", "198.51.100.0/24" ] } } } ] }
Consenti il traffico solo da un VPC specifico
Limita l'accesso alle richieste provenienti da un VPC specifico:
// Policy attached to arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/ApplicationRole" }, "Action": "bedrock-agentcore:InvokeAgentRuntime", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID" }, { "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::123456789012:role/ApplicationRole" }, "Action": "bedrock-agentcore:InvokeAgentRuntime", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID", "Condition": { "StringNotEquals": { "aws:SourceVpc": "vpc-1a2b3c4d" } } } ] }
Autenticazione OAuth con restrizione VPC
Quando l'Agent Runtime o il Gateway sono configurati con l'autenticazione OAuth, è necessario utilizzare una wildcard principal. Questo esempio limita OAuth-authenticated le richieste a un VPC specifico:
// Policy attached to arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOAuthFromVPC", "Effect": "Allow", "Principal": "*", "Action": "bedrock-agentcore:InvokeAgentRuntime", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID", "Condition": { "StringEquals": { "aws:SourceVpc": "vpc-1a2b3c4d" } } } ] }
Importante
Il carattere jolly principal («Principal»: «*») è richiesto per l'autenticazione OAuth. I token OAuth vengono convalidati da Identity Service prima della valutazione della politica. AWS Solo gli utenti con token JWT validi del tuo Identity Provider registrato possono accedere alla risorsa. Le richieste anonime o non autenticate vengono rifiutate prima di arrivare alla valutazione della politica. Usa le chiavi di condizione (comeaws:SourceVpc,aws:SourceVpce) per limitare ulteriormente l'accesso
Gestione delle politiche relative alle risorse
Seleziona uno dei seguenti metodi:
Esempio
Best practice di sicurezza
Grant least privilege
Concedi solo le autorizzazioni minime necessarie per il tuo caso d'uso:
// Policy attached to arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ApplicationRole" }, "Action": "bedrock-agentcore:InvokeAgentRuntime", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID" } ] }
Evita la confusione del deputato
Usa sempre le chiavi di condizione quando concedi l'accesso ai AWS servizi:
// Policy attached to arn:aws:bedrock-agentcore:us-west-2:111122223333:gateway/GATEWAYID { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "bedrock-agentcore:InvokeGateway", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:gateway/GATEWAYID", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnEquals": { "aws:SourceArn": "arn:aws:lambda:us-west-2:111122223333:function/SpecificFunction" } } } ] }
Usa Explicit deny per i controlli critici
Utilizza dichiarazioni di rifiuto esplicite per le restrizioni critiche di sicurezza:
// Policy attached to arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID { "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAllExceptVPC", "Effect": "Deny", "Principal": "*", "Action": "bedrock-agentcore:InvokeAgentRuntime", "Resource": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/AGENTID", "Condition": { "StringNotEquals": { "aws:SourceVpc": "vpc-12345678" }, "Bool": { "aws:ViaAWSService": "false" } } } ] }
Risoluzione dei problemi
Errori di accesso negato
Se ricevi un messaggio di errore «Accesso negato»:
-
Controlla entrambe le politiche: verifica sia le politiche basate sull'identità che quelle basate sulle risorse
-
Cerca le negazioni esplicite: una negazione esplicita in qualsiasi politica ha la precedenza su tutte le autorizzazioni
-
Verifica l'ARN principale: assicurati che l'ARN principale nella politica corrisponda a quello del chiamante
-
Verifica le condizioni: verifica che tutte le chiavi delle condizioni siano vere
-
Rivedi gli SCP: le politiche di controllo dei servizi dell'organizzazione possono sovrascrivere le politiche relative alle risorse
Errori di convalida delle politiche
Errori comuni di convalida delle politiche:
-
JSON non valido: assicurati che la tua policy sia un JSON valido
-
Formato ARN non valido: verifica che tutti gli ARN seguano il formato corretto
-
Azioni non supportate: verifica che tutte le azioni siano supportate per il tipo di risorsa
-
Elementi obbligatori mancanti: assicurati che versione, dichiarazione, effetto, principio e azione siano presenti