

# Restrições do esquema
<a name="policy-schema-constraints"></a>

As políticas do Amazon Bedrock AgentCore Gateway devem ser validadas em relação a um esquema Cedar específico que é gerado automaticamente a partir do manifesto da ferramenta MCP do Gateway. Esse esquema define o que é possível em suas políticas.

**Topics**
+ [Tipos principais](#policy-principal-type)
+ [Tipo de recurso](#policy-resource-type)
+ [Ações](#policy-actions)
+ [Contexto](#policy-context)
+ [O que você não pode fazer](#policy-limitations)

## Tipos principais
<a name="policy-principal-type"></a>

O tipo principal depende do método de autenticação configurado para seu AgentCore Gateway:

 `AgentCore::OAuthUser`   
+ Usado para OAuth-authenticated gateways
+ Tem um `id` atributo (da subafirmação do JWT)
+ Suporta tags para declarações do OAuth (nome de usuário, escopo, função etc.)

 `AgentCore::IamEntity`   
+ Usado para IAM-authenticated gateways (autorizador AWS\_IAM)
+ Tem um `id` atributo contendo o ARN do IAM do chamador
+ Não suporta tags; use a correspondência de padrões ativada `principal.id` para controle de acesso

## Tipo de recurso
<a name="policy-resource-type"></a>
+ Deve ser `AgentCore::Gateway` 
+ Representa a instância do MCP Gateway
+ Pode ser combinado por tipo (`is`) ou `==` ARN específico ()
+ É necessário usar ARNs específicos para se referir a ações específicas

## Ações
<a name="policy-actions"></a>
+ Cada ferramenta MCP se torna uma ação: `AgentCore::Action::"ToolName"` 
+ Todas as ações da ferramenta são herdadas da hierarquia CallTool → Mcp
+ Exemplo: `Action::"RefundTool___process_refund"` é um CallTool

## Contexto
<a name="policy-context"></a>
+ Somente o contexto disponível é `context.input` 
+ Contém os parâmetros de entrada da ferramenta conforme definido no manifesto MCP
+ Cada ferramenta tem uma estrutura de entrada digitada (por exemplo, RefundTool \_\_\_process\_refundInput)
+ Os tipos de parâmetros são mapeados automaticamente do esquema JSON para os tipos Cedar:
  + string → String
  + inteiro → Longo
  + booleano → Bool
  + número → Decimal

## O que você não pode fazer
<a name="policy-limitations"></a>
+ Não é possível referenciar tipos de entidade fora do AgentCore namespace
+ Não é possível acessar campos de contexto que não sejam `context.input` (só `context.output` pode ser usado com grades de proteção)
+ Não é possível usar atributos personalizados em OAuthUser (em vez disso, use tags)
+ Não é possível definir novos tipos de entidade nas políticas