View a markdown version of this page

Segurança e controles de acesso - Amazon Bedrock AgentCore

Segurança e controles de acesso

O chicote oferece as mesmas primitivas de segurança do resto AgentCore, conectadas por configuração.

  • Execução isolada. Cada sessão é executada em sua própria microVM Firecracker em tempo de execução. AgentCore Sem estado compartilhado, sem sistema de arquivos compartilhado.

  • Função de execução do IAM. O equipamento assume uma função do IAM que você possui, configurável para incluir Bedrock, ECR e as primitivas que ele CloudWatch aborda. AgentCore Veja um exemplo de política de função de execução abaixo.

  • Modelo de permissões do IAM. As APIs de aproveitamento exigem permissões tanto no recurso de controle quanto no recurso de tempo de execução AgentCore subjacente. Por exemplo, a chamada InvokeHarness requer bedrock-agentcore:InvokeAgentRuntime permissões bedrock-agentcore:InvokeHarness e permissões no ARN do chicote. O mesmo padrão se aplica às operações do plano de controle: UpdateHarness DeleteHarness requer bedrock-agentcore:UpdateAgentRuntimebedrock-agentcore:DeleteAgentRuntime, exige e assim por diante. Consulte a política de funções de execução para ver a lista completa.

  • Suporte de entrada para OAuth. Os recursos do Harness configurado pelo JWT exigem que os chamadores apresentem um JWT válido emitido por um provedor de identidade configurado antes de poderem invocar o chicote. AgentCore A identidade conecta a identidade do usuário final por meio do agente, para que as ferramentas downstream possam chamar APIs com credenciais de usuário com escopo definido em vez de uma conta de serviço compartilhada.

  • VPC. Conecte as sessões do Harness à sua VPC para ter acesso privado aos recursos internos.

  • Políticas no Gateway. Quando as ferramentas são fornecidas por meio do AgentCore Gateway, Cedar-based as políticas podem ser configuradas para bloquear cada chamada: quem pode chamar qual ferramenta, sob quais condições, com quais argumentos.

nota

SigV4 e identidade por usuário. Quando os chamadores se autenticam com o SigV4 (AWS IAM), o equipamento não propaga a identidade por usuário nas chamadas de ferramentas posteriores. Isso significa que os recursos de escopo de credenciais por usuário no AgentCore Identity Token Vault, como armazenamento de tokens OAuth com escopo de usuário e troca de tokens em nome do usuário, só estão disponíveis quando os chamadores se autenticam com um JWT do portador por meio do caminho de entrada do OAuth. Se seu caso de uso exigir um escopo de credencial por usuário para ferramentas downstream, configure o OAuth de entrada no equipamento. O suporte SigV4 para identidade por usuário está planejado para uma versão futura.

Modelo de responsabilidade compartilhada

O arnês é construído em AgentCore Runtime. O limite de segurança é o mesmo: autenticação IAM ou JWT combinada com isolamento de microVM. O chicote não adiciona uma camada de segurança entre o chamador e a microVM.

AWS responsabilidades:
  • Infraestrutura segura e isolamento de microVM no nível do hardware

  • Correção de patches do kernel do sistema operacional

  • Correção de tempo de execução de linguagem para implantações diretas de código

  • Segurança da infraestrutura de rede

  • Disponibilidade e resiliência do serviço

Suas responsabilidades:
  • Segurança do código do agente e gerenciamento de dependências

  • Controles de acesso e políticas de recursos do IAM

  • Segurança de comandos executados em sessões de tempo de execução

  • Session-to-user fiscalização do mapeamento

  • Validação de entrada e prevenção imediata de injeção - incluindo a validação de todas as InvokeHarness entradas (consulteLimite de confiança e validação de entrada)

  • Validação da configuração do modelo - como additionalParamsapiBase, e modelId campos (consulteParâmetros de configuração do modelo)

  • Fontes de habilidades e instruções — garantindo que buckets do S3, repositórios Git e URLs usados para habilidades contenham conteúdo confiável (consulte) Habilidades e instruções

  • Atualizações de imagens de contêineres (para implantações de contêineres) - reconstrua regularmente com a imagem base segura mais recente

  • Configuração de rede (grupos de segurança, VPC endpoints, tabelas de rotas)

Para ver o modelo completo AgentCore de responsabilidade compartilhada do Runtime, consulte Melhores práticas de segurança para o AgentCore Runtime.

Limite de confiança e validação de entrada

Todas InvokeHarness as InvokeAgentRuntimeCommand informações fornecidas são confiáveis. Qualquer principal que passe pela porta de autenticação e autorização do IAM ou do JWT tem acesso à sessão completa do microVM, incluindo as ferramentas e os recursos configurados no chicote. O equipamento não limpa a entrada, filtra blocos de conteúdo nem impõe restrições comportamentais.

Se você expor o arnês a usuários finais nos quais não confia totalmente (funcionários, consumidores externos ou integrações de terceiros), valide e limpe as mensagens em sua camada de aplicativo antes de passá-las para. InvokeHarness Isso inclui remover tipos de blocos de conteúdo ou campos de configuração do modelo que você não deseja que sejam enviados. Esse é o mesmo padrão de qualquer serviço que aceita cargas de chamadores autorizados, como Lambda, Amazon API Gateway e Amazon SQS.

Parâmetros de configuração do modelo

O model campo em InvokeHarness aceita additionalParams as configurações Bedrock, OpenAI e LiteLM. Esses parâmetros são passados inalterados para o provedor do modelo subjacente. O arnês não valida, filtra ou restringe esses parâmetros.

Os chamadores que podem configurar additionalParams podem:

  • Redirecione solicitações para endpoints arbitrários - o aws_bedrock_runtime_endpoint parâmetro do liteLM substitui o URL do endpoint Bedrock. Um chamador pode rotear a solicitação assinada, incluindo a assinatura SigV4 e as credenciais da sessão, para um endpoint especificado na configuração do modelo de confiança.

  • Substituir cabeçalhos HTTP - o extra_headers parâmetro do OpenAI injeta ou substitui cabeçalhos HTTP na solicitação de saída para o provedor do modelo, incluindo o cabeçalho. Authorization

  • Tente assumir a função do IAM - o aws_role_name parâmetro do liteLM instrui o tempo de execução a assumir uma função diferente do IAM antes de chamar o provedor do modelo. A tentativa é bem-sucedida ou falha com base nas sts:AssumeRole permissões da função de execução.

  • Alterar o modelo ou a região de destino - Os apiBase campos modelId e podem redirecionar a inferência para um modelo, região ou provedor totalmente diferente.

Se seu aplicativo expõe InvokeHarness recursos a chamadores nos quais você não confia totalmente, considere implementar a validação de entrada em sua camada de aplicativo. Os exemplos incluem:

  • Remover ou permitir a listagem do model campo antes de encaminhar as solicitações

  • Validando ou removendo additionalParamsapiBase, e modelId

  • Negar a função sts:AssumeRole de execução se a troca de função não for necessária

  • Definindo o escopo do acesso à rede de arnês usando grupos de segurança de VPC

Habilidades e instruções

As habilidades são pacotes de markdown e scripts que o equipamento obtém do Amazon S3 ou do Git no momento da invocação e injeta no contexto do agente. O arnês trata todo o conteúdo da habilidade como uma entrada confiável. Ele não valida, higieniza ou inspeciona o conteúdo ou a fonte das habilidades antes de fornecê-las ao agente.

Você é responsável por:

  • Garantir que as fontes de habilidades (buckets S3, repositórios Git, URLs) sejam confiáveis e tenham acesso controlado

  • Analisar o conteúdo das habilidades, incluindo instruções de marcação e quaisquer scripts incorporados, antes de configurá-las no equipamento

  • Controlar quais diretores podem substituir o skills campo por invocação, já que os chamadores podem apontar o chicote para fontes arbitrárias do S3 ou do Git

As habilidades podem ser substituídas por chamada. InvokeHarness Se seu aplicativo encaminhar a entrada fornecida pelo chamador paraInvokeHarness, um chamador poderá fornecer suas próprias fontes de habilidades contendo instruções ou scripts arbitrários. Exemplos de mitigações incluem:

  • Remover ou ignorar o skills campo das solicitações fornecidas pelo chamador

  • Lista permitida de prefixos S3 ou repositórios Git permitidos

Observabilidade e correlação de traços

O equipamento propaga automaticamente os identificadores de correlação para os AgentCore primitivos posteriores (gateway, memória, interpretador de código, navegador) para permitir visualizações unificadas de rastreamento. CloudWatch Esses identificadores são usados apenas para fins de observabilidade — eles nunca são usados para decisões de autorização ou acesso a dados.

Configuração de rede

Por padrão, as sessões de controle são executadas na rede pública. Para acessar recursos privados (bancos de dados, APIs internas, sub-redes privadas), implante o chicote em sua VPC.

exemplo
AWS CLI/boto3
aws bedrock-agentcore-control create-harness \ --harness-name "VpcHarness" \ --execution-role-arn "arn:aws:iam::123456789012:role/MyHarnessRole" \ --environment '{"agentCoreRuntimeEnvironment": {"networkConfiguration": {"networkMode": "VPC", "vpcConfig": {"securityGroupIds": ["sg-0abc1234def56789a"], "subnetIds": ["subnet-0abc1234def56789a"]}}}}'
AgentCore CLI
agentcore add harness --name internal-agent \ --network-mode VPC \ --subnets subnet-0abc1234def56789a \ --security-groups sg-0abc1234def56789a agentcore deploy
Importante

O equipamento retira seu contêiner de aplicativos do Amazon ECR Public no início de cada sessão. Ao executar no modo VPC, sua VPC deve permitir acesso de saída a. public.ecr.aws O Amazon ECR Public não oferece suporte a endpoints de VPC, portanto, sua VPC deve ter um gateway NAT com uma rota para um gateway de internet. Se essa conectividade não estiver disponível, as sessões não serão iniciadas devido ao tempo limite de extração da imagem.

Para obter mais orientações sobre configuração de rede, consulte Configurar o AgentCore Runtime e as ferramentas integradas de configuração de VPC. Para conectividade de API de entrada via PrivateLink, consulte endpoints da interface VPC.

OAuth de entrada

Exija que os chamadores apresentem um JWT válido emitido por um provedor de identidade configurado antes de poderem invocar o chicote. AgentCore A identidade conecta a identidade do usuário final por meio do agente, para que as ferramentas downstream possam chamar APIs com credenciais de usuário com escopo definido em vez de uma conta de serviço compartilhada.

exemplo
AWS CLI/boto3
aws bedrock-agentcore-control create-harness \ --harness-name "OAuthHarness" \ --execution-role-arn "arn:aws:iam::123456789012:role/MyHarnessRole" \ --authorizer-configuration '{"customJWTAuthorizer": {"discoveryUrl": "https://cognito-idp.us-west-2.amazonaws.com/<POOL_ID>/.well-known/openid-configuration", "allowedClients": ["<CLIENT_ID>"]}}'

Invoque com um token de portador em vez de credenciais SigV4:

curl -X POST "https://bedrock-agentcore.us-west-2.amazonaws.com/harnesses/invoke?harnessArn=${HARNESS_ARN}" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ${ID_TOKEN}" \ -H "X-Amzn-Bedrock-AgentCore-Runtime-Session-Id: $(uuidgen)" \ -d '{"messages": [{"role": "user", "content": [{"text": "Hi"}]}]}'
AgentCore CLI
agentcore add harness --name MyNewHarness \ --authorizer-type CUSTOM_JWT \ --discovery-url {DISCOVERY_URL} \ --allowed-clients {CLIENT_ID} agentcore deploy

Invoque com uma ficha de portador:

agentcore invoke --harness MyNewHarness --bearer-token "{token}" "Hello"

Quando o endpoint de descoberta do OIDC do seu provedor de identidade só puder ser acessado PrivateLink, adicione sinalizadores de endpoint privado ao autorizador CUSTOM_JWT. Use um VPC endpoint gerenciado por serviços:

agentcore add harness --name MyNewHarness \ --authorizer-type CUSTOM_JWT \ --discovery-url {DISCOVERY_URL} \ --allowed-clients {CLIENT_ID} \ --private-endpoint-vpc-id vpc-0abc1234def56789a \ --private-endpoint-subnets subnet-0abc1234def56789a,subnet-0def5678abc12349b \ --private-endpoint-ip-type IPV4 \ --private-endpoint-security-groups sg-0abc1234def56789a agentcore deploy

Ou aponte para uma configuração de recursos VPC Lattice existente em vez de um VPC endpoint gerenciado:

agentcore add harness --name MyNewHarness \ --authorizer-type CUSTOM_JWT \ --discovery-url {DISCOVERY_URL} \ --allowed-clients {CLIENT_ID} \ --private-endpoint-lattice-arn rcfg-0abc1234def56789a agentcore deploy
nota

Os sinalizadores de endpoint privado são válidos somente com. --authorizer-type CUSTOM_JWT --private-endpoint-vpc-ide --private-endpoint-lattice-arn são mutuamente exclusivos — escolha um. Com--private-endpoint-vpc-id, ambos --private-endpoint-subnets e --private-endpoint-ip-type (IPV4ouIPV6) são obrigatórios.

Consulte o autorizador JWT de entrada para ver o fluxo completo de configuração do OAuth.

Interactive

Execute agentcore em um diretório de projeto, selecione adicionar, escolha Harness e avance para Configurações avançadas. Ative a autenticação (e a rede para acesso à VPC) com o Space e pressione Enter.

  1. Escolha o tipo de autorizador: AWS IAM (padrão) ou JWT personalizado para autenticação de token portador do OIDC.

    Selecione o tipo de autorizador de arnês
  2. Para JWT personalizado, insira o URL de descoberta do OIDC.

    Configurar JWT personalizado: URL de descoberta
  3. Selecione quais restrições de token devem ser validadas: públicos permitidos, clientes permitidos, escopos permitidos ou declarações personalizadas.

    Selecione as restrições do JWT para configurar
  4. Escolha como o equipamento chega ao endpoint de descoberta do IdP: nenhum (acessível ao público), um recurso VPC Lattice ou um endpoint de VPC gerenciado (). PrivateLink

    PrivateLink opções para o endpoint de descoberta do IdP
  5. Em Rede, escolha o modo VPC e forneça os IDs de sub-rede e os IDs do grupo de segurança.

    Insira IDs de sub-rede VPC

Confirme o assistente e, em seguida, execute agentcore deploy para se inscrever.

Saiba mais: AgentCore Identidade · autorizador JWT de entrada · credenciais de saída

Políticas de gateway

Quando as ferramentas são fornecidas pelo AgentCore Gateway, Cedar-based as políticas bloqueiam cada chamada: quem pode chamar qual ferramenta, sob quais condições, com quais argumentos.

Saiba mais: AgentCore Política · padrões comuns

Política de função de execução

O equipamento pressupõe uma função de execução do IAM que você fornece. A política de confiança da função deve permitir que o diretor do AgentCore serviço a assuma:

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": {"Service": "bedrock-agentcore.amazonaws.com"}, "Action": "sts:AssumeRole" }] }

Permissões de IAM necessárias para chamadores

As APIs de aproveitamento exigem permissões tanto no recurso de controle quanto no tempo de AgentCore execução subjacente e nos recursos opcionais AgentCore de memória. A tabela a seguir lista as ações necessárias para cada API:

solicitações de Ações de IAM necessárias

InvokeHarness

bedrock-agentcore:InvokeHarness, bedrock-agentcore:InvokeAgentRuntime

InvokeAgentRuntimeCommand

bedrock-agentcore:InvokeAgentRuntimeCommand, bedrock-agentcore:InvokeAgentRuntime

CreateHarness

bedrock-agentcore:CreateHarness, bedrock-agentcore:CreateAgentRuntime, bedrock-agentcore:CreateMemory

UpdateHarness

bedrock-agentcore:UpdateHarness, bedrock-agentcore:UpdateAgentRuntime, bedrock-agentcore:UpdateMemory

DeleteHarness

bedrock-agentcore:DeleteHarness, bedrock-agentcore:DeleteAgentRuntime, bedrock-agentcore:DeleteMemory

GetHarness

bedrock-agentcore:GetHarness

ListHarnesses

bedrock-agentcore:ListHarnesses

CreateHarnessEndpoint

bedrock-agentcore:CreateHarnessEndpoint, bedrock-agentcore:CreateAgentRuntimeEndpoint

UpdateHarnessEndpoint

bedrock-agentcore:UpdateHarnessEndpoint, bedrock-agentcore:UpdateAgentRuntimeEndpoint

DeleteHarnessEndpoint

bedrock-agentcore:DeleteHarnessEndpoint, bedrock-agentcore:DeleteAgentRuntimeEndpoint

GetHarnessEndpoint

bedrock-agentcore:GetHarnessEndpoint

ListHarnessEndpoints

bedrock-agentcore:ListHarnessEndpoints

ListHarnessVersions

bedrock-agentcore:ListHarnessVersions

A maioria das ações usa o ARN do arnês como escopo do recurso:. arn:aws:bedrock-agentcore:<region>:<accountId>:harness/<id> As ações do endpoint também usam o ARN do endpoint de arness:. arn:aws:bedrock-agentcore:<region>:<accountId>:harness/<id>/harness-endpoint/<endpointName>

As DeleteHarnessEndpoint açõesGetHarnessEndpoint,UpdateHarnessEndpoint, e exigem tanto o ARN do arnês quanto o ARN do endpoint. CreateHarnessEndpointrequer somente o arnês ARN. O endpoint ainda não existe, então nenhum ARN do endpoint é necessário. Quando você invoca um endpoint personalizado InvokeHarness e InvokeAgentRuntimeCommand exige o ARN do harness e o ARN do endpoint.

Exemplo de política de função de execução

{ "Version": "2012-10-17", "Statement": [ { "Sid": "BedrockModelInvocation", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:*::foundation-model/*", "arn:aws:bedrock:<region>:<accountId>:*" ] }, { "Sid": "EcrPublicTokenAccess", "Effect": "Allow", "Action": [ "ecr-public:GetAuthorizationToken" ], "Resource": "*" }, { "Sid": "StsForEcrPublicPull", "Effect": "Allow", "Action": [ "sts:GetServiceBearerToken" ], "Resource": "*" }, { "Sid": "XRayTracingAccess", "Effect": "Allow", "Action": [ "xray:PutTraceSegments", "xray:PutTelemetryRecords", "xray:GetSamplingRules", "xray:GetSamplingTargets" ], "Resource": "*" }, { "Sid": "CloudWatchLogsGroup", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:DescribeLogStreams" ], "Resource": "arn:aws:logs:<region>:<accountId>:log-group:/aws/bedrock-agentcore/runtimes/*" }, { "Sid": "CloudWatchLogsDescribeGroups", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": "arn:aws:logs:<region>:<accountId>:log-group:*" }, { "Sid": "CloudWatchLogsStream", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:<region>:<accountId>:log-group:/aws/bedrock-agentcore/runtimes/*:log-stream:*" }, { "Sid": "CloudWatchMetricsPublish", "Effect": "Allow", "Resource": "*", "Action": "cloudwatch:PutMetricData", "Condition": { "StringEquals": { "cloudwatch:namespace": "bedrock-agentcore" } } }, { "Sid": "AgentCoreWorkloadIdentity", "Effect": "Allow", "Action": [ "bedrock-agentcore:GetWorkloadAccessToken", "bedrock-agentcore:GetWorkloadAccessTokenForJWT" ], "Resource": [ "arn:aws:bedrock-agentcore:<region>:<accountId>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:<region>:<accountId>:workload-identity-directory/default/workload-identity/harness_<agentName>-*" ] }, { "Sid": "AgentCoreBrowserDefault", "Effect": "Allow", "Action": [ "bedrock-agentcore:StartBrowserSession", "bedrock-agentcore:StopBrowserSession", "bedrock-agentcore:GetBrowserSession", "bedrock-agentcore:ListBrowserSessions", "bedrock-agentcore:UpdateBrowserStream", "bedrock-agentcore:ConnectBrowserAutomationStream", "bedrock-agentcore:ConnectBrowserLiveViewStream" ], "Resource": "arn:aws:bedrock-agentcore:<region>:aws:browser/*" }, { "Sid": "AgentCoreCodeInterpreterDefault", "Effect": "Allow", "Action": [ "bedrock-agentcore:StartCodeInterpreterSession", "bedrock-agentcore:StopCodeInterpreterSession", "bedrock-agentcore:GetCodeInterpreterSession", "bedrock-agentcore:ListCodeInterpreterSessions", "bedrock-agentcore:InvokeCodeInterpreter" ], "Resource": "arn:aws:bedrock-agentcore:<region>:aws:code-interpreter/*" } ] }

A AgentCore CLI cria uma função com essas permissões automaticamente quando você cria um projeto de arnês. A política acima é para casos em que você mesmo cria a função.

nota

O BedrockModelInvocation exemplo de declaração acima permite invocar todos os modelos de fundação em todas as regiões e todos os recursos da Bedrock em sua conta. Para definir isso, substitua os ARNs de recursos por perfis de inferência específicos, que permitem rotear solicitações entre modelos e regiões com um único ARN. Por exemplo: arn:aws:bedrock:<destination_regions>:<accountId>:inference-profile/<profileId> emparelhado com todas as regiões permitidasarn:aws:bedrock:<region>:<accountId>:foundation-model/<modelId>.

Para cargas de trabalho de produção, defina Resource os valores até os ARNs específicos que seu equipamento precisa, em vez de usar. "*"

Permissões adicionais para recursos opcionais

Abaixo estão exemplos de políticas que você pode acrescentar à sua função de execução com base nos recursos que seu equipamento usa. Siga o princípio do menor privilégio: conceda ao seu agente de arnês apenas as ferramentas e credenciais específicas de que ele precisa para inferência. Consulte Referência de espaço reservado para obter as definições de espaço reservado.

Acesso privado ao ECR (imagens de contêiner personalizadas)

Adicione essa política quando seu equipamento usa uma imagem ECR privada para um contêiner personalizado.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ECRImageAccess", "Effect": "Allow", "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "arn:aws:ecr:<ecrRegion>:<ecrAccountId>:repository/<ecrRepoName>" }, { "Sid": "ECRTokenAccess", "Effect": "Allow", "Action": "ecr:GetAuthorizationToken", "Resource": "*" } ] }

AgentCore Memória

Adicione essa política quando seu equipamento usar uma instância de memória de propriedade do cliente.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreMemory", "Effect": "Allow", "Action": [ "bedrock-agentcore:CreateEvent", "bedrock-agentcore:DeleteEvent", "bedrock-agentcore:GetEvent", "bedrock-agentcore:ListEvents", "bedrock-agentcore:RetrieveMemoryRecords" ], "Resource": "arn:aws:bedrock-agentcore:<region>:<accountId>:memory/<memoryId>" } ] }

AgentCore Navegador (personalizado)

Adicione essa política quando seu equipamento usa um recurso de navegador personalizado de propriedade do cliente.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreBrowserCustom", "Effect": "Allow", "Action": [ "bedrock-agentcore:StartBrowserSession", "bedrock-agentcore:StopBrowserSession", "bedrock-agentcore:GetBrowserSession", "bedrock-agentcore:ListBrowserSessions", "bedrock-agentcore:UpdateBrowserStream", "bedrock-agentcore:ConnectBrowserAutomationStream", "bedrock-agentcore:ConnectBrowserLiveViewStream" ], "Resource": "arn:aws:bedrock-agentcore:<region>:<accountId>:browser-custom/<browserCustomId>" } ] }

AgentCore Interpretador de código (personalizado)

Adicione essa política quando seu equipamento usa um intérprete de código personalizado de propriedade do cliente.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreCodeInterpreterCustom", "Effect": "Allow", "Action": [ "bedrock-agentcore:StartCodeInterpreterSession", "bedrock-agentcore:StopCodeInterpreterSession", "bedrock-agentcore:GetCodeInterpreterSession", "bedrock-agentcore:ListCodeInterpreterSessions", "bedrock-agentcore:InvokeCodeInterpreter" ], "Resource": "arn:aws:bedrock-agentcore:<region>:<accountId>:code-interpreter-custom/<codeInterpreterCustomId>" } ] }

AgentCore Gateway

Adicione essa política quando seu equipamento usar um gateway configurado com autenticação de entrada SigV4.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreGatewayAccess", "Effect": "Allow", "Action": "bedrock-agentcore:InvokeGateway", "Resource": "arn:aws:bedrock-agentcore:<region>:<accountId>:gateway/<gatewayId>" } ] }

Fontes de habilidades no Amazon S3 e no Git

Adicione essa política quando seu equipamento buscar uma habilidade de uma fonte do Amazon S3. A função de execução lista e baixa os objetos de habilidade sob o prefixo bucket.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreSkillS3Access", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::<skillBucket>", "arn:aws:s3:::<skillBucket>/*" ] } ] }

Para obter uma habilidade em um repositório Git privado, o equipamento lê um token de acesso pessoal de um provedor de credenciais de chave de API. Conceda a política de provedor de credenciais de chave de API mostrada abaixo para o provedor de credenciais que contém o token.

Provedor de credenciais de chave de API (referências ARN de cabeçalho OpenAI, Gemini, LiteLM ou MCP)

Adicione essa política quando seu equipamento usa um provedor de credenciais de chave de API para provedores de modelos como OpenAI, Gemini ou LiteLM.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreApiKeyTokenVaultDefault", "Effect": "Allow", "Action": "bedrock-agentcore:GetResourceApiKey", "Resource": [ "arn:aws:bedrock-agentcore:<region>:<accountId>:token-vault/default", "arn:aws:bedrock-agentcore:<region>:<accountId>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:<region>:<accountId>:workload-identity-directory/default/workload-identity/harness_<agentName>-*" ] }, { "Sid": "AgentCoreApiKeyTokenVaultPerKey", "Effect": "Allow", "Action": "bedrock-agentcore:GetResourceApiKey", "Resource": "arn:aws:bedrock-agentcore:<region>:<accountId>:token-vault/default/apikeycredentialprovider/<apiKeyName>" }, { "Sid": "AgentCoreApiKeySecret", "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:<region>:<accountId>:secret:bedrock-agentcore-identity!default/apikey/<apiKeyName>-*" } ] }

Provedor de credenciais OAuth2 (Gateway) OAuth-protected

Adicione essa política quando seu equipamento usa um provedor de credenciais OAuth2 para ferramentas de gateway. OAuth-protected

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AgentCoreOAuth2TokenVaultDefault", "Effect": "Allow", "Action": "bedrock-agentcore:GetResourceOauth2Token", "Resource": [ "arn:aws:bedrock-agentcore:<region>:<accountId>:token-vault/default", "arn:aws:bedrock-agentcore:<region>:<accountId>:workload-identity-directory/default", "arn:aws:bedrock-agentcore:<region>:<accountId>:workload-identity-directory/default/workload-identity/harness_<agentName>-*" ] }, { "Sid": "AgentCoreOAuth2TokenVaultPerProvider", "Effect": "Allow", "Action": "bedrock-agentcore:GetResourceOauth2Token", "Resource": "arn:aws:bedrock-agentcore:<region>:<accountId>:token-vault/default/oauth2credentialprovider/<oauthProviderName>" }, { "Sid": "AgentCoreOAuth2Secret", "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:<region>:<accountId>:secret:bedrock-agentcore-identity!default/oauth2/<oauthProviderName>-*" } ] }

Referência de espaço reservado

Substitua os seguintes espaços reservados nas políticas acima por valores específicos do seu ambiente:

Espaço reservado Description

<region>

A AWS região em que seu recurso está implantado.

<accountId>

O ID AWS da sua conta.

<agentName>

O nome do seu agente de arnês.

<memoryId>

O ID do seu recurso AgentCore de memória.

<browserCustomId>

O ID do seu recurso de navegador personalizado.

<codeInterpreterCustomId>

O ID do seu recurso de intérprete de código personalizado.

<gatewayId>

O ID do seu recurso do AgentCore Gateway.

<apiKeyName>

O nome do seu provedor de credenciais de chave de API.

<skillBucket>

O nome do bucket do S3 que contém seus arquivos de habilidades.

<oauthProviderName>

O nome do seu provedor de credenciais do OAuth2.

<ecrRegion>

A região em que seu repositório ECR está hospedado.

<ecrAccountId>

O ID da AWS conta que possui o repositório ECR.

<ecrRepoName>

O nome do seu repositório ECR.

nota

O final dos -* recursos do Secrets Manager explica o sufixo aleatório que o Secrets Manager acrescenta aos ARNs secretos.