View a markdown version of this page

Começando com a Política em AgentCore - Amazon Bedrock AgentCore

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 reembolso com as políticas da Cedar que aplicam 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 as credenciais, você pode instalar e usar a interface de linha de AWS comando seguindo as etapas em Introdução à AWS CLI.

  • Node.js 18+ instalados

  • Permissões do IAM para criar funções, funções Lambda, mecanismos de políticas e usar o Amazon Bedrock AgentCore

  • Uma função 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.

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 --defaults cd PolicyDemo

    A --defaults bandeira cria um projeto com um agente Python Strands padrão. O comando cd se move 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 provedor de modelos e de outras opções. Após a criação do projeto, mude 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 Lambda e um mecanismo de políticas 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. Insira o nome do gateway:

    Assistente de gateway: insira 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 um alvo de função Lambda com uma ferramenta de reembolso

Registre sua função Lambda como um destino de gateway com um esquema de ferramentas que define uma ferramenta de processamento de reembolso:

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 de reembolso.

Interactive
  1. Execute agentcore para abrir a TUI, 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 da ferramenta e confirme.

Adicionar um mecanismo de política

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, 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: conecte gateways
  4. Escolha o modo de fiscalização. Selecione ENFORCE:

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

Crie uma política de cedro

Forneça um arquivo de política do Cedar diretamente:

agentcore add policy --name RefundLimit \ --engine RefundPolicyEngine \ --source refund_policy.cedar
nota

As políticas do Cedar que fazem referência a ARNs de gateway específicos no resource campo (conforme mostrado no exemplo abaixo) exigem uma implantação em duas fases: primeiro implante sem a política para criar o gateway, depois recupere o ARN do gateway do status agentcore, atualize o arquivo Cedar e adicione a política antes da reimplantação. O Cedar não permite recursos curingas nas declarações de política.

Como alternativa, depois de implantar seus recursos na Etapa 3, você pode gerar uma política do Cedar a partir de uma descrição em linguagem 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 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-a 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 o 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 do IAM ou do JWT para proteger seu gateway.

Adicionar alvo Lambda

O comando agentcore add gateway-target registra uma função Lambda como alvo 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ítica

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 fiscalização de segurança consistente, independentemente de como o agente é implementado.

Crie uma política de cedro

Cedar é uma linguagem de políticas de código aberto desenvolvida por AWS para escrever políticas de autorização. O comando agentcore add policy cria uma política Cedar que controla as chamadas de ferramentas por meio do gateway. Você pode gerar uma política a partir de uma descrição em linguagem natural usando --generate ou fornecer um arquivo de política do Cedar diretamente usando. --source

A seguir está um exemplo de política da Cedar que permite reembolsos abaixo de $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 < $1000)

Anexar política ao gateway

As --attach-mode ENFORCE bandeiras --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 sejam explicitamente permitidas

  • Se alguma forbid política corresponder, o acesso será negado (semântica de proibi-vence)

  • 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 destino do Lambda, provisiona o mecanismo de políticas e anexa a política do Cedar. Esse processo leva aproximadamente de 2 a 3 minutos.

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.

Teste 1: Reembolso de $500 (deve ser permitido)

O valor do reembolso de $500 está abaixo do limite de $1000, então o mecanismo de política permite a solicitação:

curl -X POST ++<GATEWAY_URL>++ \ -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 $2000 (deve ser negado)

O valor do reembolso de $2.000 excede o limite de $1.000, então o mecanismo de política nega a solicitação:

curl -X POST ++<GATEWAY_URL>++ \ -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 pela URL do gateway mostrada na saída do status do agentcore.

O que você construiu

Por meio desse tutorial, você criou:

  • MCP Server (Gateway) — Um endpoint gerenciado para ferramentas

  • Lambda target — Uma ferramenta de processamento de reembolso registrada no gateway

  • Motor 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 $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 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ítica está conectado no modo ENFORCE executando o status agentcore

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 ARN do gateway do status agentcore no campo da sua política do Cedar. resource

Chamada de ferramenta negada inesperadamente

O mecanismo de política está em vigor e a política do Cedar negou a solicitação. Verifique se a política action e os resource campos correspondem à chamada de ferramenta que está sendo feita.

Falha na implantação com erro de validação da 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 pelas verificações de esquema e pela validação semântica.

Fazer a limpeza.

Para remover os recursos criados neste tutorial, remova o gateway e o mecanismo de políticas e reimplante:

agentcore remove gateway --name PolicyGateway agentcore remove policy-engine --name RefundPolicyEngine agentcore deploy

A remoção de um gateway não remove automaticamente o mecanismo de políticas anexado. Você deve remover o mecanismo de políticas separadamente usandoagentcore remove policy-engine.