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á.
Começando com a Política em AgentCore
Neste tutorial, você aprenderá como configurar a política AgentCore e integrá-la a um Amazon Bedrock AgentCore Gateway usando a AgentCore CLI. Você criará uma ferramenta de processamento de reembolsos com as políticas da Cedar que impõem regras comerciais para valores de reembolso.
Tópicos
Pré-requisitos
Antes de começar, verifique se você tem o seguinte:
-
AWS Conta com credenciais configuradas. Para configurar credenciais, você pode instalar e usar a interface de linha de AWS comando seguindo as etapas em Introdução à AWS CLI.
-
Node.js Mais de 20 instalados
-
Permissões do IAM para criar funções, funções do Lambda, mecanismos de políticas e usar o Amazon Bedrock AgentCore
-
Uma função do Lambda que processa solicitações de reembolso. Você pode usar uma função existente ou criar uma para este tutorial. Observe a função ARN para uso na Etapa 2.
A AgentCore CLI verifica a pilha de bootstrap do CDK durante a implantação. Se o bootstrap for necessário, a implantação interativa solicitará confirmação. Use agentcore deploy --yes para autorizá-lo automaticamente.
Etapa 1: configurar e instalar
Instale a AgentCore CLI:
npm install -g @aws/agentcore
Crie um novo AgentCore projeto:
exemplo
Etapa 2: adicionar um gateway com um mecanismo de políticas
Use a AgentCore CLI para adicionar um gateway, um destino de função do Lambda e um mecanismo de política ao seu projeto.
Adicionar um gateway
Crie um gateway sem autorização de entrada (para simplificar este tutorial) e conecte seu agente a ele:
exemplo
Adicione uma meta de função do Lambda com uma ferramenta de reembolso
Registre sua função do Lambda como um destino de gateway com um esquema de ferramentas que define uma ferramenta de processamento de reembolsos. Crie um refund_tools.json arquivo no diretório do seu projeto com o seguinte conteúdo:
[ { "name": "process_refund", "description": "Process a customer refund request for a given dollar amount", "inputSchema": { "type": "object", "description": "Input for processing a refund", "properties": { "amount": { "type": "integer", "description": "The refund amount in dollars" } }, "required": ["amount"] } } ]
exemplo
Adicionar um mecanismo de políticas
Crie um mecanismo de política e conecte-o ao gateway no modo ENFORCE:
exemplo
Crie uma política de cedro
Forneça diretamente um arquivo de política do Cedar. O Cedar não permite recursos curingas em declarações de política. Isso requer uma implantação em duas fases: primeiro, implante sem a política para criar o gateway e, em seguida, recupere o ARN do gateway. Em seguida, adicione a política e reimplante.
-
Implante o gateway primeiro (consulte a Etapa 3: Implantar) e, em seguida, execute o agentcore status para obter o ARN do gateway.
-
Crie um
refund_policy.cedararquivo no diretório do seu projeto, substituindo o ARN do gateway da etapa anterior:permit(principal, action == AgentCore::Action::"RefundTarget___process_refund", resource == AgentCore::Gateway::"<gateway-arn>") when { context.input.amount < 1000 }; -
Adicione a política e reimplante:
agentcore add policy --name RefundLimit \ --engine RefundPolicyEngine \ --source refund_policy.cedar agentcore deploy
Como alternativa, depois de implantar seus recursos na Etapa 3, você pode gerar uma política Cedar a partir de uma descrição em idioma natural:
agentcore add policy --name RefundLimit \ --engine RefundPolicyEngine \ --generate "Only allow refunds under 1000 dollars" \ --gateway PolicyGateway
O --generate sinalizador exige que o gateway seja implantado primeiro, porque ele chama uma AWS API que precisa do ARN do gateway para converter a linguagem natural em Cedar. Essa abordagem resolve automaticamente os ARNs do gateway, tornando-o o caminho mais simples para criar políticas.
Entendendo a configuração
Os comandos da CLI acima configuram vários recursos em seu AgentCore projeto. Aqui está uma explicação detalhada de cada componente.
Tópicos
Crie um gateway
O comando agentcore add gateway cria um gateway que atua como seu endpoint do servidor MCP. A configuração --authorizer-type NONE desativa a autorização de entrada para simplificar este tutorial. Na produção, use a autorização IAM ou JWT para proteger seu gateway.
Adicionar alvo Lambda
O comando agentcore add gateway-target registra uma função Lambda como um destino no gateway. O arquivo do esquema da ferramenta define as entradas que os agentes podem passar para a função, como o valor do reembolso.
Crie um mecanismo de políticas
O comando agentcore add policy-engine cria um mecanismo de políticas — uma coleção de políticas do Cedar que avalia e autoriza chamadas de ferramentas do agente. O mecanismo de políticas intercepta todas as solicitações no limite do gateway e determina se deve permitir ou negar cada ação com base nas políticas definidas. Isso fornece autorização determinística fora do código do agente, garantindo uma aplicação consistente da segurança, independentemente de como o agente é implementado.
Crie uma política de cedro
Cedar é uma linguagem de política de código aberto desenvolvida pela AWS para escrever políticas de autorização. O comando agentcore add policy cria uma política Cedar que rege as chamadas de ferramentas por meio do gateway. Você pode gerar uma política a partir de uma descrição em idioma natural usando --generate ou fornecer um arquivo de política do Cedar diretamente usando. --source
Veja a seguir um exemplo de política da Cedar que permite reembolsos abaixo de USD $1000:
permit(principal, action == AgentCore::Action::"RefundTarget___process_refund", resource == AgentCore::Gateway::"<gateway-arn>") when { context.input.amount < 1000 };
A política usa:
-
permit— Permite a ação (o Cedar também suportaforbidnegar ações) -
principal— A entidade que faz a solicitação -
action— A ferramenta específica que está sendo chamada (RefundTarget___process_refund) -
resource— A instância do gateway em que a política se aplica -
whencondição — Requisitos adicionais (o valor deve ser < USD $1000)
Anexar política ao gateway
Os --attach-mode ENFORCE sinalizadores --attach-to-gateways e no comando agentcore add policy-engine conectam o mecanismo de política ao gateway no modo ENFORCE. Neste modo:
-
Cada chamada de ferramenta é interceptada e avaliada em relação a todas as políticas
-
Por padrão, todas as ações são negadas, a menos que explicitamente permitidas
-
Se alguma
forbidpolítica corresponder, o acesso será negado (semântica de proibição ganha) -
As decisões políticas são registradas CloudWatch para monitoramento e conformidade
Isso garante que todas as operações do agente por meio do gateway sejam regidas por suas políticas de segurança.
Etapa 3: Implantar
Implante todos os recursos para AWS:
agentcore deploy
A AgentCore CLI cria o gateway, registra o alvo do Lambda e provisiona o mecanismo de políticas. Se você forneceu um arquivo de política do ARN-based Cedar, adicione-o após essa implantação e execute o agentcore deploy novamente para anexá-lo. Esse processo leva aproximadamente de 2 a 3 minutos por implantação.
Após a conclusão da implantação, você poderá verificar o status dos seus recursos:
agentcore status
Etapa 4: testar a política
Teste a política enviando solicitações para o gateway. Como o gateway usa--authorizer-type NONE, você pode enviar solicitações diretamente com curl.
O URL do gateway mostrado na saída do status do agentcore é o endpoint base. As solicitações de MCP vão para o /mcp caminho nesse endpoint, portanto, anexe à URL antes de /mcp enviar as solicitações.
Teste 1: Reembolso de USD $500 (deve ser permitido)
O valor do reembolso de USD $500 está abaixo do limite de USD $1000, portanto, o mecanismo de políticas permite a solicitação:
curl -X POST ++<GATEWAY_URL>++/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"RefundTarget___process_refund","arguments":{"amount":500}}}'
Teste 2: Reembolso de USD $2000 (deve ser negado)
O valor do reembolso de USD $2000 excede o limite de USD $1000, portanto, o mecanismo de política nega a solicitação:
curl -X POST ++<GATEWAY_URL>++/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"RefundTarget___process_refund","arguments":{"amount":2000}}}'
nota
<GATEWAY_URL>Substitua pelo URL do gateway mostrado na saída do status do agentcore e, em seguida, anexe. /mcp
O que você construiu
Por meio deste tutorial, você criou:
-
Servidor MCP (Gateway) — Um endpoint gerenciado para ferramentas
-
Lambda target — Uma ferramenta de processamento de reembolsos registrada no gateway
-
Mecanismo de Cedar-based políticas — sistema de avaliação de políticas
-
Política de cedro — Regra de governança que permite reembolsos abaixo de USD $1000
Solução de problemas
Se você encontrar problemas durante a configuração ou o teste, consulte os seguintes problemas e soluções comuns:
| Problema | Solução |
|---|---|
|
"AccessDeniedException" |
Verifique as permissões do IAM para bedrock-agentcore: * |
|
O gateway não está respondendo |
Aguarde de 30 a 60 segundos após a implantação para propagação do DNS |
|
Falha na implantação |
Execute o status do agentcore para verificar os estados dos recursos e revisar as mensagens de erro |
|
Política não aplicada |
Verifique se o mecanismo de políticas está conectado no modo ENFORCE executando agentcore status |
|
Erro de validação do Cedar durante a implantação |
As políticas do Cedar devem usar ARNs de recursos específicos — recursos curinga (por exemplo, |
|
Chamada de ferramenta negada inesperadamente |
O mecanismo de política está em vigor e a política Cedar negou a solicitação. Verifique se a política |
|
Falha na implantação com erro de validação de política |
O modo de validação padrão |
Fazer a limpeza.
Para remover os recursos criados neste tutorial, remova o gateway e o mecanismo de políticas e, em seguida, reimplante:
agentcore remove gateway --name PolicyGateway agentcore remove policy-engine --name RefundPolicyEngine agentcore deploy
A remoção de um gateway não remove automaticamente seu mecanismo de políticas anexado. Você deve remover o mecanismo de política separadamente usandoagentcore remove policy-engine.