View a markdown version of this page

Ridurre l'accesso ai fornitori di credenziali in base all'identità del carico di lavoro - Fondamento Amazon AgentCore

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à.

Ridurre l'accesso ai fornitori di credenziali in base all'identità del carico di lavoro

Puoi utilizzare le policy IAM per controllare quali identità del carico 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 quali fornitori di credenziali l'agente può chiamare. Il servizio non impone un'associazione aggiuntiva tra le identità dei carichi di lavoro e i fornitori di credenziali nello stesso account. Per seguire le pratiche con privilegi minimi, limita i Resource blocchi delle policy IAM agli ARN dei provider di identità e credenziali specifici del carico di lavoro 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 sono limitate all'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 le credenziali da recuperare per quella combinazione di identità e utente del carico di lavoro.

Meccanismi di controllo dell'accesso

  • Restrizioni basate sull'identità del carico di lavoro: limita l'accesso del fornitore di credenziali a identità specifiche del carico di lavoro

  • Resource-level autorizzazioni: controlla l'accesso ai singoli fornitori di credenziali utilizzando le policy 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 delle politiche Resource

Esempi di policy IAM

Gli esempi seguenti dimostrano come creare policy IAM che limitino l'accesso ai provider di credenziali in base all'identità del carico di lavoro e al fornitore di credenziali.

Limita l'accesso a un provider di credenziali con chiave API specifico

Questa policy consente a un'identità del carico di lavoro di recuperare le chiavi API solo da un fornitore di credenziali specifico. L'ARN del provider di credenziali nel Resource blocco limita l'accesso a quel 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 un provider di credenziali OAuth2 specifico

Questa policy consente a un'identità del carico di lavoro di recuperare i token OAuth2 solo da un provider di credenziali OAuth2 specifico.

{ "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 carico di lavoro a un fornitore di credenziali

Questa policy consente a più identità del carico di lavoro di recuperare le chiavi API dallo stesso fornitore 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 fornitore di credenziali specifico

È possibile negare esplicitamente l'accesso all'identità di un carico di lavoro a un fornitore di credenziali specifico utilizzando una dichiarazione. 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 provider 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:

  1. Crea l'identità del carico di lavoro agent-a e l'identità del carico di lavoro agent-b

  2. Crea un ruolo IAM AgentARole con una policy che consenta l'accesso solo al Provider X

  3. Crea un ruolo IAM AgentBRole con una policy che consenta l'accesso solo al Provider Y

  4. 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 provider di credenziali:

  1. Identifica le identità del carico di lavoro: utilizzalo per aws bedrock-agentcore-control list-workload-identities elencare 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

  2. 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>

  3. Crea policy IAM: scrivi policy IAM che specifichino quali identità del carico di lavoro possono accedere a quali provider di credenziali

  4. Associa le policy ai ruoli: associa le policy ai ruoli IAM usati dai tuoi agenti o dalle tue applicazioni

  5. Verifica i controlli degli accessi: verifica che solo le identità autorizzate dei carichi di lavoro 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 Resource blocco 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 provider di credenziali diversi

  • Utilizza Deny dichiarazioni esplicite per creare barriere che impediscano l'accesso a fornitori di credenziali sensibili indipendentemente da altre politiche

  • Verifica 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