Limita l'accesso ai fornitori di credenziali in base all'identità del carico di lavoro
Puoi utilizzare le policy IAM per controllare quali identità dei carichi di lavoro hanno accesso a fornitori di credenziali specifici. Ciò consente un controllo granulare degli accessi, garantendo che solo gli agenti autorizzati possano recuperare le credenziali per determinati servizi.
Nota
Il ruolo IAM assegnato a un agente controlla i provider di credenziali che l'agente può chiamare. Il servizio non impone un legame aggiuntivo tra le identità dei carichi di lavoro e i fornitori di credenziali nello stesso account. Per seguire le pratiche che prevedono i privilegi minimi, assegna i Resource blocchi di policy IAM agli ARN di provider di credenziali e identità di carico di lavoro specifici anziché utilizzarli. *
Una chiamata riuscita a un provider di credenziali non significa che le credenziali vengano restituite automaticamente. Le credenziali recuperate da un carico di lavoro rientrano nell'ambito dell'identità dell'utente nel relativo token di accesso al carico di lavoro. Per i provider OAuth2 (3LO), l'utente finale deve aver completato l'autorizzazione prima che esistano credenziali per recuperare l'identità del carico di lavoro e la combinazione di utenti.
Meccanismi di controllo dell'accesso
-
Restrizioni basate sull'identità del carico di lavoro: limita l'accesso dei provider di credenziali a identità specifiche del carico di lavoro
-
Resource-level autorizzazioni: controlla l'accesso ai singoli fornitori di credenziali utilizzando le politiche ARN-based
-
Directory-level controlli: gestisci l'accesso a livello di directory di identità del carico di lavoro
-
Ambito dei provider di credenziali: limita i provider di credenziali a cui può accedere un'identità del carico di lavoro includendo gli ARN dei provider di credenziali nel blocco di policy
Resource
Argomenti
Esempi di policy IAM
Gli esempi seguenti mostrano come creare policy IAM che limitino l'accesso ai provider di credenziali in base all'identità del carico di lavoro e al provider di credenziali.
Limita l'accesso a uno specifico provider di credenziali di chiavi API
Questa policy consente a un'identità del carico di lavoro di recuperare le chiavi API solo da uno specifico provider di credenziali. L'ARN del provider di credenziali nel blocco limita Resource l'accesso a tale provider.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetResourceApiKey", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceApiKey" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/<workload-identity-name>", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/api-key/<provider-name>" ] } ] }
Limita l'accesso a uno specifico provider di credenziali OAuth2
Questa policy consente a un'identità di carico di lavoro di recuperare i token OAuth2 solo da uno specifico provider di credenziali OAuth2.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetResourceOauth2Token", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceOauth2Token" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/<workload-identity-name>", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/oauth2-credential-provider/<provider-name>" ] } ] }
Consenti l'accesso a più identità di carichi di lavoro a un provider di credenziali
Questa policy consente a più identità di carichi di lavoro di recuperare le chiavi API dallo stesso provider di credenziali.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetResourceApiKeyMultipleIdentities", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceApiKey" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/agent-1", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/agent-2", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/agent-3", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/api-key/<provider-name>" ] } ] }
Negare l'accesso a un provider di credenziali specifico
È possibile negare in modo esplicito l'accesso all'identità di un carico di lavoro a uno specifico provider di credenziali utilizzando un'istruzione. Deny Le istruzioni Deny hanno la precedenza sulle istruzioni Allow, il che le rende utili per creare guardrail.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAccessToSensitiveProvider", "Effect": "Deny", "Action": [ "bedrock-agentcore:GetResourceApiKey", "bedrock-agentcore:GetResourceOauth2Token" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/api-key/<sensitive-provider-name>", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/oauth2-credential-provider/<sensitive-provider-name>" ] } ] }
Utilizza identità di carico di lavoro separate per diversi fornitori di credenziali
Se hai bisogno di agenti diversi per accedere a diversi provider di credenziali, crea identità di carico di lavoro separate con ruoli IAM separati. Ogni ruolo IAM è riservato solo ai provider di credenziali di cui l'agente ha bisogno.
Ad esempio, se l'Agente A deve accedere solo al Provider X e l'Agente B deve accedere solo al Provider Y:
-
Crea l'identità del carico di lavoro
agent-ae l'identità del carico di lavoroagent-b -
Crea un ruolo IAM
AgentARolecon una policy che consenta l'accesso solo al Provider X -
Crea un ruolo IAM
AgentBRolecon una policy che consenta l'accesso solo al Provider Y -
Associa ogni identità del carico di lavoro al ruolo IAM corrispondente
Policy IAM per l'Agente A (accesso solo al Provider X)
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentAAccessProviderX", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceApiKey" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/agent-a", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/api-key/provider-x" ] } ] }
Politica IAM per l'agente B (accesso solo al provider Y)
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentBAccessProviderY", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceApiKey" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:workload-identity-directory/default/workload-identity/agent-b", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default", "arn:aws:bedrock-agentcore:us-east-1:<account_id>:token-vault/default/api-key/provider-y" ] } ] }
Passaggi dell’implementazione
Per implementare il controllo degli accessi basato sull'identità del carico di lavoro per i fornitori di credenziali:
-
Identifica le identità del carico di lavoro: utilizza per
aws bedrock-agentcore-control list-workload-identitieselencare tutte le identità dei carichi di lavoro nel tuo account. Per informazioni sulla creazione e la gestione delle identità dei carichi di lavoro, consulta Gestire le identità dei carichi di lavoro con Identity. AgentCore -
Determina gli ARN dei provider di credenziali: identifica i provider di credenziali specifici a cui desideri controllare l'accesso. Gli ARN dei provider di credenziali seguono questi formati:
-
arn:aws:bedrock-agentcore:<region>:<account_id>:token-vault/default/api-key/<provider-name> -
arn:aws:bedrock-agentcore:<region>:<account_id>:token-vault/default/oauth2-credential-provider/<provider-name>
-
-
Crea policy IAM: scrivi policy IAM che specificano a quali identità del carico di lavoro possono accedere a quali provider di credenziali
-
Associa le policy ai ruoli: collega le policy ai ruoli IAM utilizzati dai tuoi agenti o dalle tue applicazioni
-
Verifica i controlli di accesso: verifica che solo le identità dei carichi di lavoro autorizzate possano accedere ai provider di credenziali specificati
Best practice
-
Utilizza nomi descrittivi per le identità dei carichi di lavoro per semplificare la gestione delle policy
-
Includi gli ARN dei provider di credenziali nel
Resourceblocco per definire l'accesso a provider specifici, anziché concedere l'accesso a tutti i provider dell'account -
Utilizza identità di carico di lavoro e ruoli IAM separati quando agenti diversi devono accedere a diversi provider di credenziali
-
Utilizza
Denydichiarazioni esplicite per creare barriere che impediscano l'accesso a fornitori di credenziali sensibili indipendentemente da altre politiche -
Controlla e rivedi regolarmente le politiche di accesso per assicurarti che siano in linea con i tuoi requisiti di sicurezza
-
Prendi in considerazione l'utilizzo delle condizioni delle policy IAM per controlli di accesso aggiuntivi in base all'ora, all'indirizzo IP o ad altri fattori
-
Testa le policy in un ambiente di sviluppo prima di applicarle ai carichi di lavoro di produzione