As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Resource-based políticas para Amazon Bedrock AgentCore
Resource-based as políticas no Amazon Bedrock AgentCore permitem que você controle quais diretores (AWS contas, usuários do IAM ou funções do IAM) podem invocar e gerenciar seus AgentCore recursos do Amazon Bedrock (atualmente compatíveis com Runtime, Gateway e Memory). Você pode anexar IAM-style políticas diretamente aos seus recursos para definir regras sobre quem pode iniciar sessões de tempo de execução, invocar um gateway, acessar a memória ou realizar outras ações de gerenciamento e invocação.
Resource-based as políticas funcionam em conjunto com as políticas do IAM baseadas em identidade para fornecer controle de acesso aos seus recursos do Amazon Bedrock. AgentCore Enquanto as políticas baseadas em identidade são anexadas às identidades do IAM e especificam quais ações elas podem realizar, as políticas baseadas em recursos são anexadas diretamente aos recursos e especificam quem pode acessá-los.
Tópicos
Recursos compatíveis
O Amazon Bedrock AgentCore oferece suporte a políticas baseadas em recursos para os seguintes recursos:
-
Agent Runtime e Agent Endpoints - Controle o acesso às operações de invocação e gerenciamento de agentes
-
Gateway - Controle o acesso às operações de invocação do gateway
-
Memória - Controle o acesso às operações de memória
Como as políticas baseadas em recursos funcionam
Identity-based versus políticas baseadas em recursos
| Aspecto | Identity-Based Política | Resource-Based Política |
|---|---|---|
|
Attachment |
Anexado a usuários, funções ou grupos do IAM |
Anexado diretamente aos recursos do Amazon Bedrock AgentCore |
|
Gerenciamento |
Gerenciado por meio AWS do IAM |
Gerenciado por meio das APIs do Amazon Bedrock AgentCore |
|
Especifica |
Ações e recursos (o principal está implícito) |
Princípios, ações e condições (o recurso está implícito) |
|
Caso de uso |
Defina o que uma identidade pode fazer |
Defina quem pode acessar um recurso |
Avaliação de políticas
Quando uma solicitação é feita a um AgentCore recurso da Amazon Bedrock, AWS avalia as políticas baseadas em identidade e em recursos. A tabela a seguir mostra como diferentes combinações de políticas afetam o acesso:
| Política do IAM | Política de recursos | Resultado |
|---|---|---|
|
Concede acesso |
Silencioso |
Permitido |
|
Concede acesso |
Concede acesso |
Permitido |
|
Concede acesso |
Nega o acesso |
Negado |
|
Silencioso |
Silencioso |
Negado |
|
Silencioso |
Concede acesso |
Permitido |
|
Silencioso |
Nega o acesso |
Negado |
|
Nega o acesso |
Silencioso |
Negado |
|
Nega o acesso |
Permite acesso |
Negado |
|
Nega o acesso |
Nega o acesso |
Negado |
Princípios fundamentais:
-
A negação explícita sempre vence: se alguma política negar explicitamente a ação, o acesso será negado independentemente de outras políticas
-
Qualquer uma das políticas pode permitir: se uma política baseada em identidade ou em recursos permitir a ação (e nenhuma política a negar), o acesso será concedido
-
Negação padrão: se nenhuma política permitir explicitamente uma ação, o acesso será negado
Autorização hierárquica para o tempo de execução e o endpoint do agente
Os endpoints do agente são pontos de acesso endereçáveis a versões específicas do tempo de execução de um agente. Cada endpoint aponta para uma versão específica da configuração de tempo de execução, com um endpoint DEFAULT roteando automaticamente para a versão mais recente. Ao autorizar operações de API em tempo de execução, como InvokeAgentRuntime eInvokeAgentRuntimeCommand, AWS avalia as políticas baseadas em identidade e em recursos, tanto para o tempo de execução do agente quanto para o endpoint do agente que está sendo invocado.
Para que uma solicitação seja autorizada, as seguintes condições devem ser atendidas:
-
As políticas baseadas em identidade anexadas ao principal chamador devem permitir a ação tanto no tempo de execução do agente quanto nos recursos do endpoint do agente
-
A política baseada em recursos no tempo de execução do agente deve permitir a ação (se houver uma política)
-
A política baseada em recursos no endpoint do agente deve permitir a ação (se houver uma política)
Importante
Para fornecer acesso entre contas a um principal, você deve criar políticas baseadas em recursos que concedam acesso tanto ao tempo de execução do agente quanto ao endpoint do agente. Se algum recurso negar acesso ou não tiver uma declaração de permissão explícita, a solicitação será negada.
Exemplo: A concessão de acesso entre contas exige políticas em ambos os recursos:
// 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" } ] }
Considerações sobre o tipo de autenticação
A forma como você escreve políticas baseadas em recursos depende do tipo de autenticação configurado para seu Agent Runtime ou Gateway:
- Autenticação SigV4
-
Use AWS diretores específicos (usuários, funções ou contas do IAM) no
Principalelemento. Por exemplo:"Principal": {"AWS": "arn:aws:iam::123456789012:role/MyRole"}. A política é avaliada em conjunto com as permissões de IAM do chamador. Para ver um exemplo que restringe um tempo de execução a ser invocado somente por um AgentCore gateway, consulte Restringir a invocação de entrada do IAM (SigV4) ao seu gateway. - Autenticação OAuth
-
Deve usar o curinga principal (“Principal”: “*”) nas declarações de política. Os tokens OAuth são validados pelo AWS Identity Service antes da avaliação da política. Somente usuários autenticados do OAuth com tokens JWT válidos do provedor de identidade (IdP) registrado podem invocar o recurso. Solicitações anônimas ou não autenticadas são rejeitadas antes da avaliação da política. Use chaves de condição para restringir o acesso (por exemplo
aws:SourceVpc,,aws:SourceVpce).
Importante
Um Agent Runtime ou Gateway só pode ser configurado com autenticação SigV4 OU OAuth no momento da criação, não com os dois simultaneamente. Isso significa que uma única política baseada em recursos se aplica a somente um tipo de autenticação.
Estrutura da política
Uma política baseada em recursos é um documento JSON com a seguinte estrutura:
{ "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
O Resource campo no documento de política deve conter o ARN exato do recurso ao qual a política está anexada. O uso de “Recurso”: “*” não é suportado e resultará em um erro de validação.
Ações compatíveis
ações do Agent Runtime
-
bedrock-agentcore:InvokeAgentRuntime- Invoque o tempo de execução de um agente -
bedrock-agentcore:InvokeAgentRuntimeForUser- Invoque um endpoint de tempo de execução do agente com cabeçalho X-Amzn-Bedrock-AgentCore-Runtime-User-Id -
bedrock-agentcore:InvokeAgentRuntimeCommand- Execute um comando shell em uma sessão ativa em tempo de execução -
bedrock-agentcore:InvokeAgentRuntimeCommandShell- Abra uma sessão de WebSocket shell interativa em uma sessão ativa de tempo de execução -
bedrock-agentcore:InvokeAgentRuntimeWithWebSocketStream- Invoque o tempo de execução de um agente com stream WebSocket -
bedrock-agentcore:InvokeAgentRuntimeWithWebSocketStreamForUser- Invoque o tempo de execução de um agente com WebSocket stream com cabeçalho X-Amzn-Bedrock-AgentCore-Runtime-User-Id -
bedrock-agentcore:StopRuntimeSession- Interromper uma sessão ativa de tempo de execução -
bedrock-agentcore:GetAgentCard- Recupere as informações do cartão do agente
Ações de gateway
-
bedrock-agentcore:InvokeGateway- Invoque um gateway
Ações de memória
-
bedrock-agentcore:GetMemory- Recuperar um recurso de memória -
bedrock-agentcore:UpdateMemory- Atualizar um recurso de memória -
bedrock-agentcore:DeleteMemory- Excluir um recurso de memória -
bedrock-agentcore:CreateEvent- Crie um evento em um recurso de memória -
bedrock-agentcore:GetEvent- Recuperar um evento de um recurso de memória -
bedrock-agentcore:DeleteEvent- Excluir um evento de um recurso de memória -
bedrock-agentcore:ListEvents- Listar eventos de um recurso de memória -
bedrock-agentcore:ListActors- Listar atores de um recurso de memória -
bedrock-agentcore:ListSessions- Listar sessões de um recurso de memória -
bedrock-agentcore:GetMemoryRecord- Obtenha um registro de memória de um recurso de memória -
bedrock-agentcore:ListMemoryRecords- Listar registros de memória de um recurso de memória -
bedrock-agentcore:RetrieveMemoryRecords- Pesquisar registros de memória a partir de um recurso de memória -
bedrock-agentcore:DeleteMemoryRecord- Excluir um registro de memória de um recurso de memória -
bedrock-agentcore:BatchCreateMemoryRecords- Crie registros de memória em lote em um recurso de memória -
bedrock-agentcore:BatchUpdateMemoryRecords- Atualizar registros de memória em lote em um recurso de memória -
bedrock-agentcore:BatchDeleteMemoryRecords- Excluir em lote registros de memória em um recurso de memória -
bedrock-agentcore:StartMemoryExtractionJob- Inicie um trabalho de extração dentro de um recurso de memória -
bedrock-agentcore:ListMemoryExtractionJobs- Listar trabalhos de extração em um recurso de memória
Chaves de condição
Você pode usar chaves de condição para refinar ainda mais o controle de acesso em suas políticas. Para obter uma lista completa das chaves de condição disponíveis, consulte Chaves de AgentCore condição de base e chaves de contexto de condição AWS global.
Casos de uso e exemplos comuns
Esta seção fornece exemplos práticos de políticas baseadas em recursos para cenários comuns. O Resource campo em cada exemplo deve conter o ARN exato do recurso ao qual a política está anexada. Substitua os ARNs de exemplo pelos seus ARNs de recursos reais.
Permitir funções em outro AWS account
Conceda acesso à API a funções específicas em uma AWS conta diferente:
// 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" } ] }
Negar tráfego com base no endereço IP de origem
Bloqueie o tráfego de entrada de intervalos de endereços IP específicos:
// 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" ] } } } ] }
Permitir tráfego somente de uma VPC específica
Restrinja o acesso às solicitações de uma VPC específica:
// 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" } } } ] }
Autenticação OAuth com restrição de VPC
Quando seu Agent Runtime ou Gateway está configurado com autenticação OAuth, você deve usar um principal curinga. Este exemplo restringe as OAuth-authenticated solicitações a uma VPC específica:
// 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
O curinga principal (“Principal”: “*”) é necessário para a autenticação OAuth. Os tokens OAuth são validados pelo AWS Identity Service antes da avaliação da política. Somente usuários com tokens JWT válidos do seu provedor de identidade registrado podem acessar o recurso. Solicitações anônimas ou não autenticadas são rejeitadas antes de serem avaliadas pela política. Use chaves de condição (comoaws:SourceVpc,aws:SourceVpce) para restringir ainda mais o acesso
Gerenciar políticas de recursos
Selecione um dos seguintes métodos:
exemplo
Práticas recomendadas de segurança
Conceder privilégio mínimo
Conceda somente as permissões mínimas necessárias para seu caso de 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" } ] }
Evite confusões, delegado.
Sempre use chaves de condição ao conceder acesso aos AWS serviços:
// 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" } } } ] }
Use negação explícita para controles críticos
Use declarações de negação explícitas para restrições críticas de segurança:
// 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" } } } ] }
Solução de problemas
Erros de acesso negado
Se você receber um erro de “Acesso negado”:
-
Verifique as duas políticas: verifique as políticas baseadas em identidade e em recursos
-
Procure negações explícitas: uma negação explícita em qualquer política substitui todas as permissões
-
Verificar o ARN principal: Certifique-se de que o ARN principal na política corresponda ao chamador
-
Verifique as condições: verifique se todas as chaves de condição são avaliadas como verdadeiras
-
Revise os SCPs: as políticas de controle de serviços da organização podem substituir as políticas de recursos
Erros de validação de políticas
Erros comuns de validação de políticas:
-
JSON inválido: certifique-se de que sua política seja um JSON válido
-
Formato de ARN inválido: verifique se todos os ARNs seguem o formato correto
-
Ações não suportadas: verifique se todas as ações são compatíveis com o tipo de recurso
-
Elementos necessários ausentes: certifique-se de que a versão, a declaração, o efeito, o princípio e a ação estejam presentes