View a markdown version of this page

Barreras en las políticas - Base amazónica AgentCore

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Barreras en las políticas

En esta sección se explica cómo definir las barandillas de Bedrock en la política. Bedrock Guardrails proporciona protecciones configurables que pueden ejecutarse tanto en las solicitudes como en las respuestas para mantener seguras las aplicaciones de inteligencia artificial. En la actualidad, las políticas pueden definir barreras contra ataques rápidos, filtros de contenido e información confidencial. Cada barandilla debe configurarse con una categoría y un umbral entre 0 y 1.

Cuando una barandilla evalúa el contexto, devuelve una puntuación de confianza entre 0 y 1, que indica el grado de confianza en que el contenido evaluado exhibe la propiedad definida (p. ej.). PROMPT_INJECTION

Disponibilidad regional de las barandillas

La siguiente tabla muestra qué AWS regiones apoyan las barandillas en sus políticas:

Este de EE. UU. (Norte de Virginia) Este de EE. UU. (Ohio) Oeste de EE. UU. (Norte de California) Oeste de EE. UU. (Oregón) Asia-Pacífico (Hyderabad) Asia-Pacífico (Malasia) Asia-Pacífico (Mumbai) Asia-Pacífico (Seúl) Asia-Pacífico (Singapur) Asia-Pacífico (Sídney) Asia-Pacífico (Tailandia) Asia-Pacífico (Tokio) Canadá (centro) Europa (Fráncfort) Europa (Irlanda) Europa (Londres) Europa (Milán) Europa (París) Europa (España) Europa (Estocolmo) América del Sur (São Paulo) AWS GovCloud (US-West)

Soporte para barandas

✓ Sí

✓ Sí

No

✓ Sí

No

No

No

No

No

✓ Sí

No

✓ Sí

No

No

No

✓ Sí

No

No

No

✓ Sí

No

No

Antes de empezar

Antes de empezar, debe configurar correctamente su rol de IAM.

Permisos

La función de ejecución de la AgentCore pasarela configurada en la puerta de enlace asociada a su motor de políticas debe tener permisos tanto para AgentCore las operaciones de Bedrock como para las de Bedrock Guardrails. El bedrock:InvokeGuardrailChecks permiso es necesario porque el plano de datos de la política utiliza credenciales FAS (sesión de acceso directo) derivadas de la función de ejecución de la puerta de enlace para llamar a la API de Bedrock Guardrails en su nombre.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "bedrock-agentcore:*", "Resource": "*" }, { "Effect": "Allow", "Action": "bedrock:InvokeGuardrailChecks", "Resource": "*" } ] }

Barandas compatibles

Nombre de Safeguard Tipo de identidad Categorías de protección

Filtro de contenido

ContentFilter

VIOLENCE, HATE, SEXUAL, MISCONDUCT, INSULTS

Detección rápida de ataques

PromptAttack

JAILBREAK, PROMPT_INJECTION, PROMPT_LEAKAGE

Información confidencial

SensitiveInformation

CREDIT_DEBIT_CARD_NUMBER,US_SOCIAL_SECURITY_NUMBER,EMAIL,PHONE,ADDRESS,AWS_ACCESS_KEY,AWS_SECRET_KEY,,PASSWORD, IP_ADDRESS NAMEUSERNAME, y más de 20 más

Definir las barreras en las políticas

Para definir las barreras en una política, puede escribir la política como código o describir la política en lenguaje natural. Al igual que cualquier política existente que ya hayas creado, debes especificar un efecto (por ejemplopermit) con una condición (when guardrails). En la condición, debes indicar la protección de barandilla específica que quieres habilitar, la categoría de protección que vas a utilizar, el contexto que quieres que evalúe la salvaguarda de protección de barandilla y el umbral de puntuación de confianza.

Ejemplo de definición de barandilla

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

Especificación de una salvaguarda de barandilla

Para elegir un tipo de entidad de protección específico, utilice el BedrockGuardrails espacio de nombres:

Safeguard Nombre de la función Guardrail

Filtro de contenido

BedrockGuardrails::ContentFilter

Ataque rápido

BedrockGuardrails::PromptAttack

Información confidencial

BedrockGuardrails::SensitiveInformation

Selección de una categoría de protección

Seleccione una categoría para la protección determinada (consulteBarandas compatibles).

p. ej. BedrockGuardrails::ContentFilter(["HATE"],[context.output.message])

Efectos para las barandillas

Para crear barreras de protección para usarlas en las solicitudes de autorización, utilice los efectos y. permit forbid Estos siguen rigiendo las solicitudes de autorización.

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 crear barreras y utilizarlas para suprimir los resultados de herramientas, agentes o modelos, utilice el efecto. suppressOutput suppressOutputes un efecto nuevo que funciona con los datos que devuelve una acción. Una vez completada una acción autorizada, evalúa las salidas comparándolas con la barandilla y suprime la salida cuando se infringe la barandilla.

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

suppressOutputsolo se admite para las políticas de barandilla. Su estado debe consistir únicamente en comprobar la barandilla, escrita en when guardrails {…​} bloque o en bloque plano. when {…​} suppressOutputno es compatible con Cedar estándar ni temporal {…​} con condiciones.

Pasando el contexto a tu barandilla

Al definir las barreras en la política, debes especificar las rutas de datos (por ejemplocontext.input.message) que identifiquen los valores que se van a extraer de la carga útil de la acción. La barandilla evalúa los valores extraídos. Puede especificar una o más rutas a los datos en función de su esquema de solicitud o respuesta.

p. ej. [context.input.message, context.input.systemPrompt]

Umbrales para barandas

Con los filtros de contenido y la detección inmediata de los ataques, la barandilla devuelve una puntuación de confianza, que es un valor numérico en el rango [0,1], donde 0 es una confianza baja y 1 es una confianza alta. La puntuación representa la confianza con la que la barandilla detectó una infracción. Las posibles puntuaciones actuales son valores discretos {0, 0,2, 0,4, 0,6, 0,8 y 1,0}.

Para establecer un umbral, debe proporcionar el valor decimal al operador de comparación (p. ej.greaterThan(decimal("0.4"))).

Operadores de comparación de puntuaciones

Puede aplicar los siguientes operadores de comparación a cualquiera de confidenceScoremaxConfidenceScore(), ominConfidenceScore():

Operador De uso

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

Puntuación > umbral

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

Puntuación ≥ umbral

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

Puntuación < umbral

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

Puntuación ≤ umbral

Puedes usar una agregación en tu política para extraer y comparar las puntuaciones obtenidas por los guardarrail:

Agregaciones

Agregación Description (Descripción) Ejemplo

[<category>].confidenceScore

Acceda a la puntuación de confianza de una categoría específica (decimal)

["HATE"].confidenceScore

maxConfidenceScore()

Máxima confianza en todas las categorías escaneadas (decimal)

.maxConfidenceScore()

minConfidenceScore()

Confianza mínima en todas las categorías escaneadas (decimal)

.minConfidenceScore()

count()

Número de hallazgos detectados (largo)

.count()

¿Cómo elegir un umbral

Si no especifica un umbral al solicitarlo al servicio de creación, AgentCore defina un valor predeterminado. Si escribes tus políticas sin la ayuda del servicio de creación, debes proporcionar el valor del umbral.

Los valores predeterminados siguientes están calibrados para ofrecer una amplia cobertura con una precisión aceptable para la mayoría de las cargas de trabajo:

Safeguard Umbral predeterminado

Filtro de contenido

0.2

Detección rápida de ataques

0.4

Información confidencial

0.2

Elegir un umbral personalizado

Si los umbrales predeterminados no cumplen sus requisitos, puede determinar el umbral óptimo para su carga de trabajo mediante uno de los siguientes enfoques.

Opción 1: Evalúe comparándolo con un conjunto de pruebas de oro

Utilice este enfoque cuando tenga un conjunto seleccionado de entradas para las pruebas con resultados esperados claros.

  1. Crea tus políticas y establece el modo de motor de políticas en LOG_ONLY.

  2. Ejecute su conjunto de pruebas a través de la puerta de enlace a la que está conectado su motor de políticas.

  3. Revise los registros de cada evaluación. Cada entrada del registro incluye el contenido evaluado y la puntuación de confianza devuelta por la barandilla.

  4. Para cada resultado, indique si la barrera debería haber marcado el contenido o no haber hecho nada (verdadero y falso, respectivamente).

  5. Con estas etiquetas, combinadas con las puntuaciones de confianza disponibles en sus registros, cree una matriz de confusión con varios valores de umbral. Compare la precisión y la recuperación en cada umbral para seleccionar el valor que se ajuste a su tolerancia entre los falsos positivos y las detecciones no detectadas.

Opción 2: Evalúe comparándolo con el tráfico de producción

Utilice este enfoque cuando no tenga un conjunto de pruebas prediseñado y quiera calibrarlo utilizando patrones de tráfico reales.

  1. Cree sus políticas y establezca el modo de motor de políticas en LOG_ONLY.

  2. Permita que el motor de políticas evalúe el tráfico de producción. Cada entrada del registro incluye el contenido evaluado y la puntuación de confianza devuelta por la barandilla.

  3. Use un LLM-as-a-judge para etiquetar cada resultado registrado como verdadero (la barandilla debería haber marcado el contenido) o falso (la barandilla no debería haber marcado el contenido).

  4. Con estas etiquetas, cree una matriz de confusión con varios valores de umbral. Compare la precisión y la recuperación en cada umbral para seleccionar el valor que se ajuste a su tolerancia entre los falsos positivos y las detecciones no detectadas.

Pruebe las barreras de protección de la política

AgentCore proporciona varios mecanismos para probar las políticas de protección antes de aplicarlas al tráfico de producción. Puede controlar la aplicación en el nivel del motor de políticas, en el nivel de cada política o en ambos, lo que le permite validar el comportamiento de las barreras de forma incremental. Consulta probar una política para obtener más información.

Cómo funcionan las barandillas con la política

Las políticas de protección se pueden aplicar a cualquier objetivo de puerta de enlace. Las barandillas se ejecutan en: * Objetivos de MCP — POST /mcp (JSON-RPC tools/call) * Objetivos de tiempo de ejecución HTTP — * Objetivos de POST /<target>/invocations inferencia HTTP — POST /inference

Cuando llega una llamada a su puerta de enlace, el evaluador de políticas realiza lo siguiente:

  1. Coincide con el alcance: identifica qué políticas de protección se aplican a esta solicitud

  2. Extrae el contenido: extrae el campo especificado por dataPath (por ejemplo,context.input.message) del cuerpo de la solicitud

  3. Llama a la InvokeGuardrailChecks API de Bedrock: evalúa el contenido e inyecta las puntuaciones de confianza devueltas en el contexto de evaluación de la política

  4. Evalúa la política mediante puntuaciones de salvaguardia: compara las puntuaciones de confianza devueltas con el umbral definido en la política

  5. Devuelve una decisión, ALLOW o DENY con anotaciones de política, a la pasarela

Nota: Las barandillas no son deterministas. La misma entrada puede generar salidas diferentes. Sin embargo, las políticas son deterministas: la misma entrada siempre dará como resultado la misma salida.

Limitaciones de las barreras en las políticas

  • No se admiten expresiones regulares ni coincidencias de patrones: las barreras utilizan la puntuación ML, no expresiones regulares

  • No puedes combinar las políticas estándar de Cedar con barandas: las reemplaza when guardrails {…​} when {…​}

  • Se requiere una barandilla en un when guardrails {…​} bloque; los bloques de barandillas deben tener al menos una barandilla definida

  • suppressOutputsolo es compatible con las políticas de barandilla; su estado debe consistir únicamente en comprobar la barandilla y no es compatible con las condiciones estándar de Cedar o temporal {…​}