View a markdown version of this page

Use endpoints VPC de interface (AWS PrivateLink) para criar uma conexão privada entre sua VPC e seus recursos do Amazon Bedrock AgentCore - Amazon Bedrock AgentCore

Use endpoints VPC de interface (AWS PrivateLink) para criar uma conexão privada entre sua VPC e seus recursos do Amazon Bedrock AgentCore

Você pode usar AWS PrivateLink para criar uma conexão privada entre sua VPC e o Amazon Bedrock. AgentCore Você pode acessar AgentCore como se estivesse em sua VPC, sem o uso de um gateway de internet, dispositivo NAT, conexão VPN ou conexão Direct Connect. As instâncias na sua VPC não precisam de endereços IP públicos para serem acessadas. AgentCore

Você estabelece essa conexão privada criando um endpoint de interface, alimentado por AWS PrivateLink. Criaremos um endpoint de interface de rede em cada sub-rede que você habilitar para o endpoint de interface. Estas são interfaces de rede gerenciadas pelo solicitante que servem como ponto de entrada para o tráfego destinado ao AgentCore.

Para obter mais informações, consulte Acesse os AWS serviços AWS PrivateLink no AWS PrivateLink Guia.

Considerações para AgentCore

Antes de configurar um endpoint de interface para AgentCore, consulte as Considerações no AWS PrivateLink Guia.

AgentCore fornece três AWS PrivateLink endpoints:

  • Ponto final do plano de dados - com.amazonaws.region.bedrock-agentcore

  • Ponto final do plano de controle - com.amazonaws.region.bedrock-agentcore-control

  • Ponto final do gateway - com.amazonaws.region.bedrock-agentcore.gateway

A tabela a seguir mostra o status de AWS PrivateLink suporte para cada AgentCore primitivo:

Primitivo Plano de dados Ambiente de gerenciamento

Runtime

Compatível

Compatível

Memória

Compatível

Compatível

Built-in Ferramentas (intérprete de código, ferramenta de navegador)

Compatível

Compatível

Identidade

Compatível

Compatível

Gateway

Compatível

Compatível

Avaliações e otimizações

Compatível

Compatível

Política

Compatível

Compatível

Para obter uma lista das AWS regiões nas quais os endpoints de AgentCore interface estão disponíveis, consulte AWS Regiões suportadas.

Importante

As APIs do plano de dados oferecem suporte aos cabeçalhos AWS Signature Version 4 (SigV4) para autenticação e à autenticação do Bearer Token (OAuth). As políticas de endpoint da VPC só podem restringir os chamadores com base nos diretores do IAM e não nos usuários do OAuth. Para que as OAuth-based solicitações sejam bem-sucedidas por meio do VPC endpoint, o principal deve ser definido como * na política do endpoint. Caso contrário, somente os chamadores permitidos do SigV4 poderão fazer chamadas bem-sucedidas pelo VPC endpoint.

AWS As chaves de contexto de condição global do IAM são suportadas. Por padrão, o acesso total ao AgentCore é permitido por meio do endpoint da interface. Você pode controlar o acesso anexando uma política de endpoint ao endpoint da interface ou associando um grupo de segurança às interfaces de rede do endpoint.

Crie um endpoint de interface para AgentCore

Você pode criar um endpoint de interface para AgentCore usar o console Amazon VPC ou AWS a Interface de Linha de Comando (AWS CLI). Para obter mais informações, consulte Criar um endpoint de interface no AWS PrivateLink Guia.

Crie um endpoint de interface para AgentCore usar o seguinte formato de nome de serviço:

  • Todas as primitivas do plano de dados (tempo de execução, Built-in ferramentas, memória, identidade): com.amazonaws.region.bedrock-agentcore

  • Para AgentCore Gateway: com.amazonaws.region.bedrock-agentcore.gateway

  • Para operações do plano de controle (gerenciamento de tempo de execução e memória): com.amazonaws.region.bedrock-agentcore-control

Se você habilitar o DNS privado para o endpoint da interface, poderá fazer solicitações de API AgentCore usando seu nome DNS regional padrão. Por exemplo, .bedrock-agentcore.us-east-1.amazonaws.com

Crie uma política de endpoint para seu endpoint de interface.

Uma política de endpoint é um recurso do IAM que pode ser anexado ao endpoint de interface. A política de endpoint padrão permite acesso total AgentCore por meio do endpoint da interface. Para controlar o acesso AgentCore permitido pela sua VPC, anexe uma política de endpoint personalizada ao endpoint da interface.

Uma política de endpoint especifica as seguintes informações:

  • Os diretores que podem realizar ações (AWS contas, usuários do IAM e funções do IAM).

    • Para o AgentCore Gateway, se a entrada do gateway não for baseada na AWS Signature Version 4 (SigV4) (por exemplo, se você usar OAuth em vez disso), você deverá especificar o Principal campo como o caractere curinga *. A autenticação baseada em SigV4 permite que você defina o Principal como uma identidade específica AWS . Isso também se aplica ao AgentCore Runtime.

  • As ações que podem ser realizadas.

  • Os recursos nos quais as ações podem ser executadas.

Para obter mais informações, consulte Controlar o acesso aos serviços usando políticas de endpoint no AWS PrivateLink Guia.

Políticas de endpoint para várias primitivas

Os exemplos a seguir mostram políticas de endpoint para diferentes AgentCore componentes:

exemplo
Runtime
  1. A política de endpoint a seguir permite que diretores específicos do IAM invoquem recursos de tempo de execução do agente.

    { "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws::iam::ACCOUNT_ID:user/USERNAME" }, "Action": [ "bedrock-agentcore:InvokeAgentRuntime" ], "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:runtime/RUNTIME_ID" } ] }

    Autenticação mista de IAM e OAuth

    A InvokeAgentRuntime API oferece suporte a dois modos de autorização de endpoint VPC. O exemplo de política a seguir permite que os diretores do IAM e os chamadores do OAuth acessem diferentes recursos de tempo de execução do agente.

    { "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws::iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:InvokeAgentRuntime" ], "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:runtime/customAgent1" }, { "Effect": "Allow", "Principal": "*", "Action": [ "bedrock-agentcore:InvokeAgentRuntime" ], "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:runtime/customAgent2" } ] }

    A política acima permite que somente o diretor do IAM faça InvokeAgentRuntime chamadas paracustomAgent1. Ele também permite que os diretores do IAM e os chamadores do OAuth façam chamadas para. InvokeAgentRuntime customAgent2

    Políticas de endpoint de metadados de recursos protegidos (PRM)

    A GetRuntimeProtectedResourceMetadata API implementa os metadados de recursos protegidos do OAuth 2.0 (RFC 9728). Os clientes ligam para esse endpoint antes de terem as credenciais, para descobrir qual servidor de autorização protege o tempo de execução de um determinado agente. Esse endpoint não é autenticado por design, portanto, ele Principal deve ser definido como * na política de endpoint.

    As políticas de VPC endpoint são aplicadas às solicitações de PRM. Se sua política de endpoint não permitir explicitamentebedrock-agentcore:GetRuntimeProtectedResourceMetadata, as solicitações de PRM por meio desse endpoint serão negadas com HTTP 403. Qualquer tempo de execução do OAuth-configured agente acessado por meio de um VPC endpoint requer acesso ao PRM para a descoberta do servidor de autorização.

    nota

    Se você tiver uma política de negação total de endpoints para imposição de perímetro de dados e não usar a autenticação OAuth ou JWT, as solicitações de PRM serão negadas automaticamente. Nenhuma configuração adicional é necessária.

    A política de endpoint a seguir permite que qualquer chamador descubra o servidor de autorização (PRM) enquanto restringe as invocações de tempo de execução a um principal específico do IAM:

    { "Statement": [ { "Sid": "AllowPRMDiscovery", "Effect": "Allow", "Principal": "*", "Action": [ "bedrock-agentcore:GetRuntimeProtectedResourceMetadata" ], "Resource": "arn:aws:bedrock-agentcore:REGION:ACCOUNT_ID:runtime/*" }, { "Sid": "AllowInvoke", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:InvokeAgentRuntime" ], "Resource": "arn:aws:bedrock-agentcore:REGION:ACCOUNT_ID:runtime/RUNTIME_ID" } ] }

    Para bloquear consultas de PRM entre contas por meio de seu VPC endpoint (aplicação do perímetro de dados), defina o escopo da declaração de permissão de PRM somente para os tempos de execução da sua conta:

    { "Statement": [ { "Sid": "AllowPRMOwnAccountOnly", "Effect": "Allow", "Principal": "*", "Action": [ "bedrock-agentcore:GetRuntimeProtectedResourceMetadata" ], "Resource": "arn:aws:bedrock-agentcore:REGION:ACCOUNT_ID:runtime/*" }, { "Sid": "DenyCrossAccountPRM", "Effect": "Deny", "Principal": "*", "Action": [ "bedrock-agentcore:GetRuntimeProtectedResourceMetadata" ], "NotResource": "arn:aws:bedrock-agentcore:REGION:ACCOUNT_ID:runtime/*" }, { "Sid": "AllowInvoke", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:InvokeAgentRuntime" ], "Resource": "arn:aws:bedrock-agentcore:REGION:ACCOUNT_ID:runtime/*" } ] }
Code Interpreter Tool
  1. A política de endpoint a seguir permite que diretores específicos do IAM invoquem recursos do Code Interpreter.

    { "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws::iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:InvokeCodeInterpreter" ], "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:code-interpreter/CODE_INTERPRETER_ID" } ] }
Memory
  1. ====== Todas as operações do plano de dados

    A política de endpoint a seguir permite que entidades específicas do IAM acessem as operações do plano de dados us-east-1 para uma memória específica. AgentCore

    { "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws::iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:CreateEvent", "bedrock-agentcore:DeleteEvent", "bedrock-agentcore:GetEvent", "bedrock-agentcore:ListEvents", "bedrock-agentcore:DeleteMemoryRecord", "bedrock-agentcore:GetMemoryRecord", "bedrock-agentcore:ListMemoryRecords", "bedrock-agentcore:RetrieveMemoryRecords", "bedrock-agentcore:ListActors", "bedrock-agentcore:ListSessions", "bedrock-agentcore:BatchCreateMemoryRecords", "bedrock-agentcore:BatchDeleteMemoryRecords", "bedrock-agentcore:BatchUpdateMemoryRecords" ], "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:memory/MEMORY_ID" } ] }

    Acesso a todas as memórias

    A política de endpoint a seguir permite que diretores específicos do IAM acessem todas as memórias.

    { "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws::iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:CreateEvent", "bedrock-agentcore:DeleteEvent", "bedrock-agentcore:GetEvent", "bedrock-agentcore:ListEvents", "bedrock-agentcore:DeleteMemoryRecord", "bedrock-agentcore:GetMemoryRecord", "bedrock-agentcore:ListMemoryRecords", "bedrock-agentcore:RetrieveMemoryRecords", "bedrock-agentcore:ListActors", "bedrock-agentcore:ListSessions", "bedrock-agentcore:BatchCreateMemoryRecords", "bedrock-agentcore:BatchDeleteMemoryRecords", "bedrock-agentcore:BatchUpdateMemoryRecords" ], "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:memory/*" } ] }

    Restrição de acesso por APIs

    A política de endpoint a seguir concede permissão para que um diretor específico do IAM crie eventos em um recurso de AgentCore memória específico.

    { "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws::iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:CreateEvent" ], "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:memory/MEMORY_ID" } ] }
Browser Tool
  1. A política de endpoint a seguir permite que diretores específicos do IAM se conectem aos recursos da Browser Tool.

    { "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws::iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:ConnectBrowserAutomationStream" ], "Resource": "arn:aws::bedrock-agentcore:us-east-1:ACCOUNT_ID:browser/BROWSER_ID" } ] }
Gateway
  1. Veja a seguir um exemplo de uma política de endpoint personalizado. Quando você anexa essa política ao seu endpoint de interface, ela permite que todos os principais invoquem o gateway especificado no campo. Resource

    { "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": [ "bedrock:InvokeGateway" ], "Resource": "arn:aws::bedrock-agentcore:us-east-1::gateway/my-gateway" } ] }
Identity
  1. A política de endpoint a seguir permite acesso aos recursos de identidade.

    { "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": [ "*" ], "Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:workload-identity-directory/default/workload-identity/WORKLOAD_IDENTITY_ID" } ] }
Evaluations and Optimizations
  1. A política de endpoint a seguir permite que diretores específicos do IAM acessem as operações de avaliações e otimizações.

    { "Statement": [ { "Sid": "AllowBatchEvaluations", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:StartBatchEvaluation", "bedrock-agentcore:GetBatchEvaluation", "bedrock-agentcore:ListBatchEvaluations", "bedrock-agentcore:StopBatchEvaluation", "bedrock-agentcore:DeleteBatchEvaluation" ], "Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:batch-evaluate/*" }, { "Sid": "AllowRecommendations", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:StartRecommendation", "bedrock-agentcore:GetRecommendation", "bedrock-agentcore:ListRecommendations", "bedrock-agentcore:DeleteRecommendation" ], "Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:recommendation/*" }, { "Sid": "AllowEvaluators", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:CreateEvaluator", "bedrock-agentcore:GetEvaluator", "bedrock-agentcore:ListEvaluators", "bedrock-agentcore:UpdateEvaluator", "bedrock-agentcore:DeleteEvaluator" ], "Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:evaluator/*" }, { "Sid": "AllowOnlineEvaluationConfigs", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:CreateOnlineEvaluationConfig", "bedrock-agentcore:GetOnlineEvaluationConfig", "bedrock-agentcore:ListOnlineEvaluationConfigs", "bedrock-agentcore:UpdateOnlineEvaluationConfig", "bedrock-agentcore:DeleteOnlineEvaluationConfig" ], "Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:online-evaluation-config/*" }, { "Sid": "AllowABTests", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:CreateABTest", "bedrock-agentcore:GetABTest", "bedrock-agentcore:ListABTests", "bedrock-agentcore:UpdateABTest", "bedrock-agentcore:DeleteABTest" ], "Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:ab-test/*" }, { "Sid": "AllowConfigurationBundles", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::ACCOUNT_ID:root" }, "Action": [ "bedrock-agentcore:CreateConfigurationBundle", "bedrock-agentcore:GetConfigurationBundle", "bedrock-agentcore:GetConfigurationBundleVersion", "bedrock-agentcore:ListConfigurationBundles", "bedrock-agentcore:ListConfigurationBundleVersions", "bedrock-agentcore:UpdateConfigurationBundle", "bedrock-agentcore:DeleteConfigurationBundle" ], "Resource": "arn:aws:bedrock-agentcore:us-east-1:ACCOUNT_ID:configuration-bundle/*" } ] }