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á.
Configure a autorização de entrada para seu gateway
Antes de criar seu gateway, você deve configurar a autorização de entrada. A autorização de entrada valida os usuários que tentam acessar alvos por meio do seu AgentCore gateway. AgentCore oferece suporte aos seguintes tipos de autorização de entrada:
-
JSON Web Token (JWT) — Um token seguro e compacto usado para autorização. Depois de criar o JWT, você o especifica como a configuração de autorização ao criar o gateway. Você pode criar um JWT com qualquer um dos provedores de identidade em Configuração e configuração do provedor.
-
Identidade do IAM — Autoriza por meio das credenciais da identidade do AWS IAM que está tentando acessar o gateway.
-
Tipos de autorização descarregados — O gateway não toma nenhuma decisão de autorização por si só e, em vez disso, transfere a autorização para outro componente, como o destino downstream, um mecanismo de política conectado ao gateway ou uma função interceptora Lambda. Essa categoria inclui somente autenticação e sem autorização. Para obter detalhes e orientações, consulte Autorização de entrada descarregada.
nota
Se você usar o AWS Management Console ou a AgentCore CLI para criar seu gateway, poderá criar uma configuração padrão de autorização de entrada usando o Amazon Cognito durante a criação do gateway. Se você planeja usar a configuração de autorização padrão, pode ignorar esse pré-requisito.
Se você não planeja usar a configuração de autorização padrão usando o Amazon Cognito, selecione o tópico que corresponde ao tipo de autorização que você planeja usar para saber como configurá-la:
Tópicos
IAM-based autorização de entrada
IAM-based a autorização de entrada permite que você use as credenciais IAM do chamador do gateway para autorização. Você pode usar essa opção se quiser criar uma identidade do IAM por meio da qual os usuários que chamam seu gateway possam ser autenticados.
Para configurar a autorização IAM-based de entrada
-
Crie ou use uma identidade IAM existente para seus chamadores do gateway.
-
Crie uma política de IAM baseada em identidade que contenha as seguintes permissões:
-
bedrock-agentcore:InvokeGateway— Depois de criar o gateway, você deve modificar essa política de forma que oResourcecampo tenha como escopo o gateway criado como uma prática recomendada de segurança.
-
-
Anexe a política à identidade do chamador do gateway.
Política de exemplo
O exemplo a seguir mostra uma política que você pode anexar a uma identidade para permitir que ela invoque um gateway com o ID. my-gateway-12345
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowGatewayInvocation", "Effect": "Allow", "Action": [ "bedrock-agentcore:InvokeGateway" ], "Resource": [ "arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/my-gateway-12345" ] } ] }
Recursos
-
Para obter mais informações sobre gerenciamento de AWS identidade e acesso, consulte Gerenciamento de identidade e acesso para Amazon Bedrock AgentCore.
-
Para obter mais informações sobre AgentCore ações, recursos e chaves de condição do Amazon Bedrock que você pode especificar nas políticas do IAM, consulte Ações, recursos e chaves de condição para o Amazon Bedrock AgentCore.
Autorização de entrada baseada em JSON Web Token (JWT)
Um JSON Web Token (JWT) é um token seguro e compacto usado para autorização. Você pode criar um JWT com um provedor de identidade compatível. Depois de criar um JWT, você pode recuperá-lo e especificá-lo como a configuração de autorização ao criar o gateway.
Importante
O uso de autorização de entrada com base em tokens JWT resultará no registro de algumas reivindicações do token JWT. CloudTrail A entrada inclui o assunto
Você pode usar a AgentCore CLI para configurar um gateway com um provedor de identidade JWT existente. Para saber mais sobre os métodos de configuração do JWT, selecione um dos seguintes tópicos:
Tópicos
Configurar um autorizador JWT
Crie um aplicativo e um cliente com um provedor de identidade compatível. Para ver um exemplo do Amazon Cognito, consulte Comece a usar o Amazon Cognito. Anote o URL de descoberta do OIDC e o ID do cliente.
Execute o seguinte comando em um diretório de AgentCore projeto:
agentcore add gateway \ --name MyGateway \ --protocol-type MCP \ --authorizer-type CUSTOM_JWT \ --discovery-url <OIDC_DISCOVERY_URL> \ --allowed-clients <CLIENT_ID>
A AgentCore CLI consome a configuração OIDC existente; ela não cria os recursos do provedor de identidade. Para invocar o gateway, obtenha um token de acesso do seu provedor. Para o Amazon Cognito, consulte O endpoint emissor do token no Guia do desenvolvedor do Amazon Cognito.
Configurar um JWT manualmente
O Amazon Bedrock AgentCore oferece suporte a JWTs de todos os provedores de identidade. Você pode ver alguns exemplos em Configuração e configuração do provedor.
No processo de criação do JWT, anote os seguintes valores, que você preencherá CustomJWTAuthorizerConfiguration ao criar um gateway, se eles forem aplicáveis ao seu caso de uso:
-
URL de descoberta — A URL da qual as credenciais de login e o endpoint do token podem ser recuperados.
-
ID do cliente — O identificador público de um aplicativo cliente que solicita um token, validado com base na
client_idreivindicação. -
Segredo do cliente — A chave privada que autentica o acesso do aplicativo cliente para recuperar um token.
-
Público permitido — O identificador que valida os destinatários ou consumidores pretendidos de um token por meio da
auddeclaração. -
Escopos permitidos — Os escopos que definem as limitações do acesso de um aplicativo à conta de um usuário. Para obter mais informações, consulte Escopos do OAuth.
-
Outros valores de solicitação obrigatórios — Dependendo do autorizador que você usa, talvez seja necessário especificar os campos e regras de solicitação personalizados obrigatórios que correspondam ao valor do campo de solicitação para autenticação.
Você precisará desses valores para fazer o seguinte:
-
Crie o gateway especificando valores na configuração do autorizador.
-
Obtenha credenciais de autorização para invocar o gateway. Para saber como obter suas credenciais, consulte a documentação do seu provedor de identidade. Por exemplo, se você usou o Amazon Cognito, consulte O endpoint emissor do token no Guia do desenvolvedor do Amazon Cognito.
Anúncio de escopo em desafios de autenticação
Quando um cliente envia uma solicitação a um JWT-authorized gateway sem um token de acesso válido, o gateway retorna uma resposta de erro com um WWW-Authenticate cabeçalho que anuncia os escopos OAuth necessários. Isso segue o formato de desafio de token
O gateway retorna as seguintes respostas, dependendo do erro:
-
401 Não autorizado — A solicitação não tem nenhum token ou é um token inválido. O
WWW-Authenticatecabeçalho incluiscopeparâmetrosresource_metadatae. -
403 Proibido — O token é válido, mas não contém os escopos necessários. O
WWW-Authenticatecabeçalho incluierror="insufficient_scope"scope, eresource_metadataparâmetros.
O scope valor contém os escopos delimitados por espaço configurados como escopos permitidos no gateway. CustomJWTAuthorizerConfiguration O resource_metadata valor aponta para o documento de metadados de recursos protegidos /.well-known/oauth-protected-resource, que os clientes podem buscar para descobrir o servidor de autorização e os escopos suportados.
Use um provedor de identidade privado (VPC-hosted)
AgentCore O Gateway oferece suporte JWT-based à autorização de entrada com provedores de identidade hospedados em sua VPC. Você pode configurar um privateEndpoint no customJWTAuthorizer AgentCore para permitir acessar seus endpoints privados de descoberta, token e JWKS do OIDC sem expô-los à Internet pública.
Seu diretor do IAM deve ter a iam:CreateServiceLinkedRole permissão deidentity-network.bedrock-agentcore.amazonaws.com, para que a AgentCore Identity possa criar a função AWSServiceRoleForBedrockAgentCoreIdentity vinculada ao serviço em seu nome, caso ela ainda não exista.
O privateEndpoint se aplica ao domínio nodiscoveryUrl. Se seu provedor de identidade usa domínios diferentes para outros endpoints (por exemplo, o token ou endpoint JWKS é resolvido para um domínio diferente do URL de descoberta), use para especificar uma configuração de endpoint privado separada privateEndpointOverrides para cada domínio adicional.
O exemplo a seguir cria um gateway com um provedor de identidade privado usando o Lattice gerenciado:
{ "name": "my-private-idp-gateway", "protocolType": "MCP", "roleArn": "arn:aws:iam::123456789012:role/my-gateway-role", "authorizerType": "CUSTOM_JWT", "authorizerConfiguration": { "customJWTAuthorizer": { "allowedAudience": [ "my-audience" ], "discoveryUrl": "https://my-idp.internal.example.com/.well-known/openid-configuration", "privateEndpoint": { "managedVpcResource": { "vpcIdentifier": "vpc-0abc123def456", "subnetIds": ["subnet-0abc123", "subnet-0def456"], "endpointIpAddressType": "IPV4", "securityGroupIds": ["sg-0abc123def"] } } } } }
Se seu token ou endpoints JWKS usarem um domínio diferente do URL de descoberta, adicione uma privateEndpointOverrides entrada para cada domínio adicional. Atualmente, só privateEndpointOverrides é suportado com recursos autogerenciados do Lattice:
{ ... "authorizerConfiguration": { "customJWTAuthorizer": { "allowedAudience": ["my-audience"], "discoveryUrl": "https://my-idp.internal.example.com/.well-known/openid-configuration", "privateEndpoint": { "selfManagedLatticeResource": { "resourceConfigurationIdentifier": "arn:aws:vpc-lattice:us-east-1:123456789012:resourceconfiguration/rcfg-abc123" } }, "privateEndpointOverrides": [ { "domain": "my-token-server.internal.example.com", "privateEndpoint": { "selfManagedLatticeResource": { "resourceConfigurationIdentifier": "arn:aws:vpc-lattice:us-east-1:123456789012:resourceconfiguration/rcfg-def456" } } } ] } } }
Para Lattice autogerenciado, configurações entre contas e configurações avançadas, consulte Conectar-se a recursos privados em sua VPC usando o VPC Lattice. Para obter um guia abrangente sobre cenários de IdP privado de entrada e saída, consulte Conectar-se a provedores de identidade privados.
Autorização de entrada descarregada
Com a autorização de entrada descarregada, o gateway não toma nenhuma decisão de autorização por si só. Em vez disso, ele transfere a autorização para outro componente:
-
O serviço de destino downstream, que autoriza a solicitação que recebe.
-
Um mecanismo de políticas conectado ao gateway, que avalia as políticas de acesso.
-
Uma função interceptora do Lambda, que executa sua lógica personalizada de autenticação ou autorização antes que as solicitações cheguem aos seus alvos.
AgentCore oferece dois tipos de descarregamento:
-
Somente autenticação (
AUTHENTICATE_ONLY) — O gateway verifica a assinatura SigV4 do chamador para autenticá-lo, mas não toma nenhuma decisão de autorização. As solicitações devem ser assinadas, mas qualquer chamador autenticado é encaminhado para o alvo. -
Sem autorização (
NONE) — O gateway não executa nenhuma autenticação ou autorização de entrada. As solicitações podem não ser autenticadas e qualquer chamador é encaminhado para o destino.
Com qualquer um dos tipos, você decide onde a autorização é realmente aplicada:
-
Mecanismo de políticas — conecte um mecanismo de políticas ao gateway para avaliar as políticas de acesso de forma centralizada. Esse é um padrão recomendado para gateways de produção e é frequentemente usado junto com o OAuth.
-
Função Interceptor Lambda — Execute sua própria lógica de autenticação ou autorização antes que as solicitações cheguem aos seus alvos. Isso é recomendado para gateways de produção quando as opções de autorização de entrada integradas não atendem aos seus requisitos.
-
Alvo descendente — Permita que o alvo imponha autorização na solicitação que recebe. Isso é útil para experimentação e integração progressiva — por exemplo, colocar um gateway na frente de um tempo de execução existente sem alterar a autenticação e a autorização do tempo de execução — para que você possa adotar os recursos do gateway de forma incremental enquanto o tempo de execução continua a impor a autenticação na qual ele já confia.
Importante
Se você descarregar a autorização de entrada escolhendo uma AUTHENTICATE_ONLY ou outraNONE, o AgentCore Gateway não impõe a autorização por si só. Nesse cenário, você deve transferir a autorização para um componente separado — um mecanismo de política, uma função interceptora do Lambda ou o destino downstream — caso contrário, qualquer chamador poderá alcançar seu alvo.
Authenticate-only autorização
Com a autorização somente para autenticação (AUTHENTICATE_ONLY), o gateway verifica a assinatura Signature Version 4 (SigV4) do chamador para confirmar sua identidade, mas não toma nenhuma decisão de autorização por si só. Qualquer diretor de IAM autenticado pode invocar o gateway, independentemente de suas permissões, e a solicitação é encaminhada para o destino. A autorização é delegada ao serviço de destino downstream ou a um mecanismo de políticas conectado ao gateway.
Importante
ComAUTHENTICATE_ONLY, o gateway não impõe nenhuma política de autorização. Qualquer SigV4-signed solicitação válida será encaminhada ao alvo. Garanta que seus alvos downstream implementem sua própria lógica de autorização ou conecte um mecanismo de políticas ao gateway para controlar o acesso. Sem a devida autorização no nível da política de destino ou gateway, qualquer chamador autenticado pode acessar seus serviços de back-end.
Sem autorização
Você pode criar um gateway configurado sem autorização usandoauthorizerType=NONE. O gateway não executará nenhuma autorização na solicitação de gateway de entrada e a solicitação pode não ser autenticada.
Importante
Não use gateways sem autorização para cargas de trabalho de produção, a menos que você tenha implementado todas as melhores práticas de segurança listadas abaixo. Se você precisar de uma lógica de autenticação personalizada, considere usar uma função interceptora do Lambda para lidar com a autenticação antes que as solicitações cheguem aos seus destinos.
Melhores práticas de segurança
-
Use a chave de
bedrock-agentcore:GatewayAuthorizerTypecondição para allow/deny acessar seletivamente dentro de sua organização para criar gateways comauthorizerType=NONE -
Não use gateways sem autorização por conveniência para testar. Eles devem ser usados para gateways que você pretende tornar públicos, mas implementou suas próprias regras e verificações de limitação personalizadas para garantir que seu gateway público possa lidar com usuários não autenticados.
-
Não use gateways sem autorização com alvos que possam responder com informações confidenciais. Embora os destinos sejam configurados com suas próprias configurações de autorização, é melhor adicionar outra camada de segurança no gateway.
Integre um tempo de execução existente sem alterar sua autenticação
Quando você combina um tipo de entrada descarregado com um tipo de autorização de saída correspondente que encaminha a identidade do chamador para o tempo de execução, a integração em um gateway pode ser tão simples quanto definir uma substituição de endpoint em seu cliente existente, sem necessidade de alterações de autenticação:
-
Tempos de execução do IAM — Combine a autorização de
AUTHENTICATE_ONLYentrada com a autorização de saída das credenciais do Caller IAM ()CALLER_IAM_CREDENTIALS. O gateway autentica o chamador SigV4 e, em seguida, assina a solicitação no tempo de execução com a mesma identidade de chamador, para que a autorização de IAM existente do tempo de execução continue sendo aplicada inalterada. Para obter mais informações, consulte Credenciais do Caller IAM. -
Tempos de execução do OAuth — Combine a autorização de entrada sem autorização com a autorização de saída Token passthrough ().
JWT_PASSTHROUGHO gateway encaminha o JWT de entrada para o tempo de execução sem modificação, portanto, o tempo de execução valida o token exatamente como faz hoje. (A passagem de token encaminha um token portador, portanto, requer um tipo de entrada — autorização de JWT-bearing entrada JWT ou.NONENão está disponível comAUTHENTICATE_ONLY, que é SigV4-based e não carrega nenhum símbolo de portador.) Para obter mais informações, consulte Autorização de passagem do JWT Passagem de token.nota
Token passthrough (
JWT_PASSTHROUGH) não é a abordagem recomendada para produção. Quando você encaminha o token de entrada inalterado, o mesmo token é aceito tanto pelo gateway quanto pelo destino downstream, portanto, ele deve ter um escopo rigoroso — por exemplo, o público de cada token (aud) deve ser restrito ao recurso pretendido. O padrão recomendado é a troca de tokens em nome da (OBO), em que o gateway troca o token do chamador por um token novo, com escopo de público, para o alvo, em vez de reproduzir o token do chamador. Use a passagem de token para facilitar a experimentação, o teste e a integração, e mude para o OBO para cargas de trabalho de produção de longo prazo.
Atenção
As configurações de encaminhamento de identidade nesta seção dependem exclusivamente do tempo de execução downstream para autorizar solicitações; o gateway não adiciona nenhuma autorização própria. Eles são destinados a testes, experimentação e integração de baixa interrupção. Para um gateway de produção, imponha autorização no gateway — configure a autorização de entrada do JWT ou do IAM, conecte um mecanismo de políticas ou use uma função interceptora Lambda. Para garantir que os chamadores não possam ignorar o gateway depois de adotá-lo, consulte Como aplicar o tráfego pelo gateway.