View a markdown version of this page

Barreiras nas políticas - 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á.

Barreiras 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 tanto em solicitações quanto em 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 grade de proteção deve ser configurada 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 do Guardrails

A tabela a seguir mostra quais AWS regiões têm suporte para barreiras na política:

Leste dos EUA (Norte da Virgínia) Leste dos EUA (Ohio) Oeste dos EUA (N. da Califórnia) Oeste dos EUA (Oregon) Ásia-Pacífico (Hyderabad) Ásia-Pacífico (Malásia) Ásia-Pacífico (Mumbai) Ásia-Pacífico (Seul) Ásia-Pacífico (Singapura) Ásia-Pacífico (Sydney) Ásia-Pacífico (Tailândia) Ásia-Pacífico (Tóquio) Canadá (Central) Europa (Frankfurt) Europa (Irlanda) Europa (Londres) Europa (Milão) Europa (Paris) Europa (Espanha) Europa (Estocolmo) América do Sul (São Paulo) AWS GovCloud (US-West)

Suporte para guardrails

✓ Sim

✓ Sim

Não

✓ Sim

Não

Não

Não

Não

Não

✓ Sim

Não

✓ Sim

Não

Não

Não

✓ Sim

Não

Não

Não

✓ Sim

Não

Não

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": "*" } ] }

Corrimãos suportados

Nome da salvaguarda Tipo de entidade Categorias de salvaguarda

Filtro de conteúdo

ContentFilter

VIOLENCE, HATE, SEXUAL, MISCONDUCT, INSULTS

Detecção imediata de ataques

PromptAttack

JAILBREAK, PROMPT_INJECTION, PROMPT_LEAKAGE

Informações confidenciais

SensitiveInformation

CREDIT_DEBIT_CARD_NUMBER,US_SOCIAL_SECURITY_NUMBER,EMAIL,PHONE,ADDRESS,AWS_ACCESS_KEY,AWS_SECRET_KEY,PASSWORD,IP_ADDRESS, NAMEUSERNAME, e mais de 20

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 específica que deseja ativar, a categoria de proteção a ser usada, o contexto que você deseja que a proteção de proteção avalie e o limite da pontuação de confiança.

Exemplo de definição de guardrail

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 guardrail

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

BedrockGuardrails::ContentFilter

Ataque imediato

BedrockGuardrails::PromptAttack

Informações confidenciais

BedrockGuardrails::SensitiveInformation

Seleção de uma categoria de salvaguarda

Selecione uma categoria para a salvaguarda fornecida (consulteCorrimãos suportados).

ex. 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ção.

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 contra a 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")) };
nota

suppressOutputé compatível somente com políticas de guardrail. Sua condição deve consistir apenas em verificações de proteção, escritas em um when guardrails {…​} bloco ou em um bloco simpleswhen {…​}. suppressOutputnão suporta cedro ou temporal {…​} condições padrão.

Passando o 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. O guardrail 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.

ex. [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 é baixa confiança e 1 é alta confiança. A pontuação representa a confiança com que o guardrail 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

.greaterThan(decimal("X.X"))

Pontuação > limite

.greaterThanOrEqual(decimal("X.X"))

Pontuação ≥ limite

.lessThan(decimal("X.X"))

Pontuação < limite

.lessThanOrEqual(decimal("X.X"))

Pontuação ≤ limite

Você pode usar uma agregação em sua política para extrair e comparar as pontuações retornadas pelos guardrails:

Agregações

Agregação Description Exemplo

[<category>].confidenceScore

Acesse a pontuação de confiança de uma categoria específica (decimal)

["HATE"].confidenceScore

maxConfidenceScore()

Confiança máxima em todas as categorias digitalizadas (decimal)

.maxConfidenceScore()

minConfidenceScore()

Confiança mínima em todas as categorias digitalizadas (decimal)

.minConfidenceScore()

count()

Número de descobertas detectadas (longo)

.count()

Como escolher um limite

Se você não especificar um limite ao solicitar o serviço de criação, AgentCore definirá 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 imediata 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 seguintes abordagens.

Opção 1: avaliar com base em um conjunto de testes dourado

Use essa abordagem quando você tiver um conjunto selecionado de entradas de teste com resultados esperados claros.

  1. Crie suas políticas e defina seu modo de mecanismo de políticas como LOG_ONLY.

  2. Execute seu conjunto de testes por meio do gateway ao qual seu mecanismo de política está conectado.

  3. 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.

  4. Para cada resultado, identifique se a grade de proteção deveria ter sinalizado o conteúdo ou não ter feito nada (verdadeiro e falso, respectivamente).

  5. 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 a recuperação em cada limite para selecionar o valor que se alinha à sua tolerância para 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é-criado e quiser calibrar usando padrões reais de tráfego.

  1. Crie suas políticas e defina seu modo de mecanismo de políticas como LOG_ONLY.

  2. 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.

  3. 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).

  4. Usando esses rótulos, crie uma matriz de confusão com vários valores limite. Compare a precisão e a recuperação em cada limite para selecionar o valor que se alinha à sua tolerância para falsos positivos versus detecções perdidas.

Teste as barreiras de proteção na política

AgentCore fornece vários mecanismos para testar as 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 que você valide o comportamento do guardrail de forma incremental. Consulte testar uma política para obter mais informações.

Como os guardrails funcionam com a política

As políticas de guardrail podem ser aplicadas a qualquer destino de gateway. Os Guardrails são executados em: * Metas de MCP — POST /mcp (JSON-RPC tools/call) * Metas de tempo de execução HTTP — * Metas de inferência HTTP — POST /<target>/invocations POST /inference

Quando uma chamada chega ao seu gateway, o avaliador de políticas realiza o seguinte:

  1. Corresponde ao escopo — Identifica quais políticas de proteção se aplicam a essa solicitação

  2. Extrai conteúdo — Extrai o campo especificado por dataPath (por exemplo,context.input.message) do corpo da solicitação

  3. Calls Bedrock InvokeGuardrailChecks API — Avalia o conteúdo e injeta as pontuações de confiança retornadas no contexto de avaliação de políticas

  4. 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

  5. Retorna uma decisão — ALLOW ou DENY com 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 grades de proteção na política

  • Sem suporte para regex ou correspondência de padrões — os guardrails usam pontuação de ML, não expressões regulares

  • Você não pode misturar políticas padrão do Cedar com grades de proteção — substitui when guardrails {…​} when {…​}

  • É necessário um corrimão em um when guardrails {…​} bloco — os blocos de grades de proteção devem ter pelo menos um corrimão definido dentro

  • suppressOutputé compatível apenas com políticas de guardrail — sua condição deve consistir apenas em verificações de guardrail e não suporta cedro ou condições padrão temporal {…​}