View a markdown version of this page

Diminua o acesso aos provedores de credenciais por identidade da carga de trabalho - Amazon Bedrock AgentCore

Diminua o acesso aos provedores de credenciais por identidade da carga de trabalho

Você pode usar políticas do IAM para controlar quais identidades de carga de trabalho têm acesso a provedores de credenciais específicos. Isso permite um controle de acesso refinado, garantindo que somente agentes autorizados possam recuperar credenciais para serviços específicos.

nota

A função do IAM que você atribui a um agente controla quais provedores de credenciais o agente pode chamar. O serviço não impõe vinculação adicional entre identidades de carga de trabalho e provedores de credenciais na mesma conta. Para seguir as práticas de privilégios mínimos, defina o escopo de seus Resource blocos de políticas do IAM para ARNs de provedores de credenciais e identidades de carga de trabalho específicos, em vez de usar. *

Uma chamada bem-sucedida para um provedor de credenciais não significa que as credenciais sejam retornadas automaticamente. As credenciais que uma carga de trabalho recupera têm como escopo a identidade do usuário em seu token de acesso à carga de trabalho. Para provedores de OAuth2 (3LO), o usuário final deve ter concluído a autorização antes que existam credenciais para recuperar essa combinação de identidade e usuário da carga de trabalho.

Mecanismos de controle de acesso

  • Restrições baseadas na identidade da carga de trabalho — Limite o acesso do provedor de credenciais a identidades específicas da carga de trabalho

  • Resource-level permissões — Controle o acesso a provedores de credenciais individuais usando políticas ARN-based

  • Directory-level controles — Gerencie o acesso no nível do diretório de identidade da carga de trabalho

  • Escopo do provedor de credenciais — restrinja quais provedores de credenciais uma identidade de carga de trabalho pode acessar, incluindo os ARNs do provedor de credenciais no bloco de políticas Resource

Exemplos de política do IAM

Os exemplos a seguir demonstram como criar políticas do IAM que restringem o acesso do provedor de credenciais com base na identidade da carga de trabalho e no provedor de credenciais.

Restrinja o acesso a um provedor de credenciais de chave de API específico

Essa política permite que uma identidade de carga de trabalho recupere chaves de API somente de um provedor de credenciais específico. O ARN do provedor de credenciais no bloco restringe Resource o acesso a esse provedor.

{ "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>" ] } ] }

Restringir o acesso a um provedor de credenciais OAuth2 específico

Essa política permite que uma identidade de carga de trabalho recupere tokens do OAuth2 somente de um provedor específico de credenciais do 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>" ] } ] }

Permitir que várias identidades de carga de trabalho acessem um provedor de credenciais

Essa política permite que várias identidades de carga de trabalho recuperem chaves de API do mesmo provedor de credenciais.

{ "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>" ] } ] }

Negar acesso a um provedor de credenciais específico

Você pode negar explicitamente o acesso de uma identidade de carga de trabalho a um provedor de credenciais específico usando uma declaração. Deny As declarações de negação têm precedência sobre as declarações de permissão, o que as torna úteis para criar grades de proteção.

{ "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>" ] } ] }

Use identidades de carga de trabalho separadas para diferentes provedores de credenciais

Se você precisar que agentes diferentes acessem diferentes provedores de credenciais, crie identidades de carga de trabalho separadas com funções diferentes do IAM. Cada função do IAM tem como escopo somente os provedores de credenciais de que o agente precisa.

Por exemplo, se o Agente A deve acessar somente o Provedor X e o Agente B deve acessar somente o Provedor Y:

  1. Crie identidade de carga de trabalho agent-a e identidade de carga de trabalho agent-b

  2. Crie uma função do IAM AgentARole com uma política que permita acesso somente ao Provedor X

  3. Crie uma função do IAM AgentBRole com uma política que permita acesso somente ao provedor Y

  4. Associe cada identidade de carga de trabalho à sua função do IAM correspondente

Política do IAM para o Agente A (acesso somente ao Provedor 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" ] } ] }

Política do IAM para o agente B (acesso somente ao provedor 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" ] } ] }

Etapas de implementação

Para implementar o controle de acesso baseado em identidade de carga de trabalho para provedores de credenciais:

  1. Identifique suas identidades de carga de trabalho — Use aws bedrock-agentcore-control list-workload-identities para listar todas as identidades de carga de trabalho em sua conta. Para obter informações sobre como criar e gerenciar identidades de carga de trabalho, consulte Gerenciar identidades de carga de trabalho com Identidade. AgentCore

  2. Determine os ARNs do provedor de credenciais — Identifique os provedores de credenciais específicos aos quais você deseja controlar o acesso. Os ARNs do provedor de credenciais seguem os seguintes formatos:

    • 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. Crie políticas do IAM — escreva políticas do IAM que especificam quais identidades de carga de trabalho podem acessar quais provedores de credenciais

  4. Anexe políticas às funções — Anexe as políticas às funções do IAM usadas por seus agentes ou aplicativos

  5. Teste os controles de acesso — verifique se somente as identidades autorizadas da carga de trabalho podem acessar os provedores de credenciais especificados

Práticas recomendadas

  • Use nomes descritivos para identidades de carga de trabalho para facilitar o gerenciamento de políticas

  • Inclua ARNs de provedores de credenciais no Resource bloco para definir o acesso a provedores específicos, em vez de conceder acesso a todos os provedores na conta

  • Use identidades de carga de trabalho e funções do IAM separadas quando agentes diferentes precisarem acessar diferentes provedores de credenciais

  • Use Deny declarações explícitas para criar barreiras que impeçam o acesso a provedores de credenciais confidenciais, independentemente de outras políticas

  • Audite e revise regularmente as políticas de acesso para garantir que elas estejam alinhadas com seus requisitos de segurança

  • Considere usar as condições da política do IAM para controles de acesso adicionais com base no horário, endereço IP ou outros fatores

  • Teste as políticas em um ambiente de desenvolvimento antes de aplicá-las às cargas de trabalho de produção