View a markdown version of this page

Começando com a Política em AgentCore - Base da Amazônia AgentCore

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.

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
AgentCore CLI
  1. agentcore create --name PolicyDemo --language Python --framework Strands \ --model-provider Bedrock --memory none cd PolicyDemo

    Essas opções criam um agente Python Strands que usa o Amazon Bedrock sem memória. O cd comando é movido para o diretório do projeto, onde os comandos subsequentes devem ser executados.

Interactive
  1. Você também pode executar agentcore create sem sinalizadores para usar o assistente interativo. O assistente orienta você na seleção do nome do projeto, da estrutura do agente, do fornecedor do modelo e de outras opções. Após a criação do projeto, vá para o diretório do projeto com cd PolicyDemo.

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
AgentCore CLI
  1. agentcore add gateway --name PolicyGateway --authorizer-type NONE --runtimes PolicyDemo
Interactive
  1. Execute agentcore para abrir a TUI, selecione adicionar e escolha Gateway:

  2. Digite o nome do gateway:

    Assistente de gateway: digite o nome
  3. Selecione o tipo de autorizador. Para este tutorial, escolha NENHUM:

    Assistente de gateway: selecione NENHUM autorizador
  4. Configure as opções avançadas ou aceite os padrões:

    Assistente de gateway: configuração avançada
  5. Revise a configuração e pressione Enter para confirmar:

    Assistente de gateway: revise a configuração

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
AgentCore CLI
  1. agentcore add gateway-target --name RefundTarget --type lambda-function-arn \ --lambda-arn ++<YOUR_LAMBDA_ARN>++ \ --tool-schema-file refund_tools.json \ --gateway PolicyGateway

    <YOUR_LAMBDA_ARN>Substitua pelo ARN da sua função Lambda. O refund_tools.json arquivo define o esquema da ferramenta para a ferramenta de reembolso.

Interactive
  1. Execute agentcore para abrir a TUI e, em seguida, selecione Adicionar e escolha Gateway Target:

  2. Insira o nome do alvo.

  3. Selecione a função Lambda como o tipo de destino:

    Assistente de destino do gateway: selecione a função Lambda
  4. Insira o ARN do Lambda e o caminho do arquivo do esquema de ferramentas e confirme.

Adicionar um mecanismo de políticas

Crie um mecanismo de política e conecte-o ao gateway no modo ENFORCE:

exemplo
AgentCore CLI
  1. agentcore add policy-engine --name RefundPolicyEngine \ --attach-to-gateways PolicyGateway \ --attach-mode ENFORCE
Interactive
  1. Execute agentcore para abrir a TUI e, em seguida, selecione Adicionar e escolha Policy Engine:

  2. Insira o nome do mecanismo de política:

    Assistente do mecanismo de políticas: insira o nome
  3. Selecione os gateways aos quais conectar o mecanismo de políticas:

    Assistente do mecanismo de políticas: anexar gateways
  4. Escolha o modo de imposição. Selecione IMPOR:

    Assistente do mecanismo de políticas: selecione o modo de imposição

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.

  1. Implante o gateway primeiro (consulte a Etapa 3: Implantar) e, em seguida, execute o agentcore status para obter o ARN do gateway.

  2. Crie um refund_policy.cedar arquivo 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 };
  3. 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.

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 suporta forbid negar 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 forbid polí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,permit(principal, action, resource);) são rejeitados. Use o gateway ARN do status agentcore no campo de sua política Cedar. resource

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 action e os resource campos coincidem com a chamada de ferramenta que está sendo feita.

Falha na implantação com erro de validação de política

O modo de validação padrão FAIL_ON_ANY_FINDINGS executa verificações de esquema e validação semântica, rejeitando a política se alguma delas produzir descobertas. Você pode definir o modo de validação IGNORE_ALL_FINDINGS para executar somente verificações de esquema se não precisar de validação semântica. Para produção, corrija a política do Cedar para passar nas verificações de esquema e na validação semântica.

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.