Guardrails nas políticas
Esta seção explica como definir Bedrock Guardrails na política. O Bedrock Guardrails fornece proteções configuráveis que podem ser executadas em solicitações e respostas para manter os aplicativos de IA seguros. Atualmente, você pode definir ataques imediatos, filtros de conteúdo e proteções de informações confidenciais na política. Cada corrimão deve ser configurado com uma categoria e um limite entre 0 e 1.
Quando uma grade de proteção avalia o contexto, ela retorna uma pontuação de confiança entre 0 e 1, indicando o grau de confiança de que o conteúdo avaliado exibe a propriedade definida (por exemplo). PROMPT_INJECTION
Disponibilidade regional de guardrails
A tabela a seguir mostra quais AWS regiões têm apoio para barreiras de proteção na política:
| Leste dos EUA (Norte da Virgínia) | Leste dos EUA (Ohio) | Oeste dos EUA (Oregon) | Europa (Frankfurt) | Europa (Irlanda) | Europa (Londres) | Europa (Paris) | Europa (Estocolmo) | Ásia-Pacífico (Mumbai) | Ásia-Pacífico (Singapura) | Ásia-Pacífico (Sydney) | Ásia-Pacífico (Tóquio) | Ásia-Pacífico (Seul) | Canadá (Central) | América do Sul (São Paulo) | AWS GovCloud (US-West) | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Suporte para guardrails |
✅ |
❌ |
❌ |
❌ |
❌ |
✅ |
❌ |
✅ |
❌ |
❌ |
✅ |
✅ |
❌ |
❌ |
❌ |
❌ |
Antes de começar
Antes de começar, você precisa configurar adequadamente sua função do IAM.
Permissões
A função de execução do AgentCore gateway configurada no gateway associado ao seu mecanismo de políticas deve ter permissões tanto para as AgentCore operações do Bedrock quanto para o Bedrock Guardrails. A bedrock:InvokeGuardrailChecks permissão é necessária porque o plano de dados da Política usa credenciais FAS (Forward Access Session) derivadas da função de execução do gateway para chamar a API Bedrock Guardrails em seu nome.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "bedrock-agentcore:*", "Resource": "*" }, { "Effect": "Allow", "Action": "bedrock:InvokeGuardrailChecks", "Resource": "*" } ] }
Guardrails suportados
| Nome do Safeguard | Tipo de entidade | Categorias de salvaguarda |
|---|---|---|
|
Filtro de conteúdo |
|
|
|
Detecção rápida de ataques |
|
|
|
Informações confidenciais |
|
|
Definindo barreiras nas políticas
Para definir barreiras na política, você pode escrever a política como código ou descrever a política em linguagem natural. Semelhante a qualquer política existente que você já tenha criado, você precisa especificar um efeito (por exemplopermit) com uma condição (when guardrails). Na condição, você precisa fornecer a proteção de proteção específica que deseja habilitar, a categoria de proteção a ser usada, o contexto que deseja que a proteção de proteção avalie e o limite de pontuação de confiança.
Exemplo de definição de guarda-corpo
suppressOutput (principal, action == AgentCore::Action::"<TARGET_NAME>_<METHOD>:<URI>", resource == AgentCore::Gateway::"<GATEWAY_ARN>") when guardrails { BedrockGuardrails::ContentFilter(["HATE"],[context.output.message])["HATE"] .confidenceScore .greaterThan(decimal("0.2")) };
Especificando uma proteção de guarda-corpo
Para escolher um tipo específico de entidade de proteção, use o BedrockGuardrails namespace:
| Safeguard | Nome da função Guardrail |
|---|---|
|
Filtro de conteúdo |
|
|
Ataque imediato |
|
|
Informações confidenciais |
|
Seleção de uma categoria de proteção
Selecione uma categoria para a salvaguarda fornecida (consulteGuardrails suportados).
por exemplo BedrockGuardrails::ContentFilter(["HATE"],[context.output.message])
Efeitos para grades de proteção
Para criar grades de proteção para uso em solicitações de autorização, use os efeitos permit e. forbid Eles continuam a reger a autorização de solicitações.
forbid (principal, action == AgentCore::Action::"<TargetName>___POST:/invocations", resource) when guardrails { BedrockGuardrails::PromptAttack(["PROMPT_INJECTION"], [context.input.prompt])["PROMPT_INJECTION"].confidenceScore.greaterThan(decimal("0.6")) };
Para criar grades de proteção para uso na supressão de saídas de ferramentas, agentes ou modelos, use o efeito. suppressOutput suppressOutputé um novo efeito que opera nos dados que uma ação retorna. Depois que uma ação autorizada é concluída, ela avalia as saídas em relação à grade de proteção e suprime a saída quando a grade de proteção é violada.
suppressOutput (principal, action == AgentCore::Action::"<TargetName>___POST:/invocations", resource) when guardrails { BedrockGuardrails::SensitiveInformation(["US_SOCIAL_SECURITY_NUMBER"], [context.output.text])["US_SOCIAL_SECURITY_NUMBER"] .confidenceScore .greaterThan(decimal("0.5")) };
Transmitindo contexto para sua grade de proteção
Ao definir barreiras na política, você deve especificar caminhos de dados (por exemplocontext.input.message) que identifiquem os valores a serem extraídos da carga útil da ação. A grade de proteção avalia os valores extraídos. Você pode especificar um ou mais caminhos para os dados com base em seu esquema de solicitação ou resposta.
por exemplo [context.input.message, context.input.systemPrompt]
Limites para grades de proteção
Com filtros de conteúdo e detecção imediata de ataques, o guardrail retorna uma pontuação de confiança, que é um valor numérico no intervalo [0, 1], em que 0 significa baixa confiança e 1 é alta confiança. A pontuação representa a confiança com que a grade de proteção detectou uma violação. As pontuações atuais possíveis são valores discretos {0, 0,2, 0,4, 0,6, 0,8 e 1,0}.
Para definir um limite, você precisa fornecer o valor decimal ao operador de comparação (por exemplo). greaterThan(decimal("0.4"))
Operadores de comparação de pontuação
Você pode aplicar os operadores de comparação abaixo a qualquer um dos confidenceScoremaxConfidenceScore(), ouminConfidenceScore():
| Operador | Usage |
|---|---|
|
|
Pontuação > limite |
|
|
Pontuação ≥ limite |
|
|
Pontuação < limite |
|
|
Pontuação ≤ limite |
Você pode usar uma agregação em sua política para extrair e comparar as pontuações retornadas pelas grades de proteção:
Agregações
| Agregação | Description | Exemplo |
|---|---|---|
|
|
Acesse a pontuação de confiança de uma categoria específica (decimal |
|
|
|
Máxima confiança em todas as categorias digitalizadas (decimal |
|
|
|
Confiança mínima em todas as categorias digitalizadas (decimal |
|
|
|
Número de descobertas detectadas (longo |
|
Como escolher um limite
Se você não especificar um limite ao solicitar o serviço de criação, AgentCore defina um valor padrão. Se você escrever suas políticas sem a ajuda do serviço de criação, deverá fornecer o valor limite.
Os padrões abaixo são calibrados para fornecer ampla cobertura com precisão aceitável para a maioria das cargas de trabalho:
| Safeguard | Limite padrão |
|---|---|
|
Filtro de conteúdo |
0.2 |
|
Detecção rápida de ataques |
0.4 |
|
Informações confidenciais |
0.2 |
Escolhendo um limite personalizado
Se os limites padrão não atenderem aos seus requisitos, você poderá determinar o limite ideal para sua carga de trabalho usando uma das abordagens a seguir.
Opção 1: avaliar com base em um conjunto de testes dourado
Use essa abordagem quando você tiver um conjunto organizado de entradas de teste com resultados esperados claros.
-
Crie suas políticas e defina o modo do mecanismo de políticas como LOG_ONLY.
-
Execute seu conjunto de testes por meio do gateway ao qual seu mecanismo de políticas está conectado.
-
Revise os registros de cada avaliação. Cada entrada de registro inclui o conteúdo avaliado e a pontuação de confiança retornada pela grade de proteção.
-
Para cada resultado, identifique se a grade de proteção deveria ter sinalizado o conteúdo ou não feito nada (verdadeiro e falso, respectivamente).
-
Usando esses rótulos, combinados com as pontuações de confiança disponíveis em seus registros, crie uma matriz de confusão com vários valores limite. Compare a precisão e o recall em cada limite para selecionar o valor que se alinha à sua tolerância a falsos positivos versus detecções perdidas.
Opção 2: avaliar em relação ao tráfego de produção
Use essa abordagem quando você não tiver um conjunto de testes pré-construído e quiser calibrar usando padrões reais de tráfego.
-
Crie suas políticas e defina o modo do mecanismo de políticas como LOG_ONLY.
-
Permita que o mecanismo de políticas avalie o tráfego de produção. Cada entrada de registro inclui o conteúdo avaliado e a pontuação de confiança retornada pela grade de proteção.
-
Use an LLM-as-a-judge para rotular cada resultado registrado como verdadeiro (a grade de proteção deveria ter sinalizado o conteúdo) ou falso (a grade de proteção não deveria ter sinalizado o conteúdo).
-
Usando esses rótulos, crie uma matriz de confusão com vários valores limite. Compare a precisão e o recall em cada limite para selecionar o valor que se alinha à sua tolerância a falsos positivos versus detecções perdidas.
Teste as barreiras de proteção na política
AgentCore fornece vários mecanismos para testar políticas de proteção antes de aplicá-las ao tráfego de produção. Você pode controlar a aplicação no nível do mecanismo de políticas, no nível da política individual ou em ambos, permitindo validar o comportamento da barreira de proteção de forma incremental. Consulte testar uma política para obter mais informações.
Como as grades de proteção funcionam com a política
As políticas de proteção podem ser aplicadas a qualquer destino de gateway. Os guardrails são executados em: * alvos MCP — POST /mcp (JSON-RPC tools/call) * alvos de tempo de execução HTTP — * alvos de inferência HTTP — POST /<target>/invocations POST /inference
Quando uma chamada chega ao seu gateway, o Policy Evaluator executa o seguinte:
-
Corresponde ao escopo — identifica quais políticas de proteção se aplicam a essa solicitação
-
Extrai conteúdo — Extrai o campo especificado por
dataPath(por exemplo,context.input.message) do corpo da solicitação -
Chama a InvokeGuardrailChecks API Bedrock — avalia o conteúdo e injeta as pontuações de confiança retornadas no contexto de avaliação da política
-
Avalia a política usando pontuações de proteção — compara as pontuações de confiança retornadas com o limite definido na política
-
Retorna uma decisão —
ALLOWouDENYcom anotações de política de volta ao gateway
Nota: As grades de proteção não são determinísticas. A mesma entrada pode resultar em saídas diferentes. As políticas, no entanto, são determinísticas, a mesma entrada sempre resultará na mesma saída.
Limitações das barreiras de proteção na política
-
Não há suporte para regex ou correspondência de padrões — as grades de proteção usam pontuação de ML, não expressões regulares
-
Você não pode misturar políticas padrão da Cedar com grades de proteção — substitui
when guardrails {…}when {…} -
Uma grade de proteção é necessária em um
when guardrails {…}bloco — os blocos de grades de proteção devem ter pelo menos uma grade de proteção definida dentro