Barandillas en las pólizas
En esta sección se explica cómo definir las barandillas Bedrock en la política. Bedrock Guardrails proporciona protecciones configurables que se pueden ejecutar tanto en las solicitudes como en las respuestas para mantener seguras las aplicaciones de IA. Actualmente, puede definir en la política las barreras de ataque rápido, filtro de contenido e información confidencial. Cada barandilla debe configurarse con una categoría y un umbral entre 0 y 1.
Cuando una barrera 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 presenta la propiedad definida (p. ej.). PROMPT_INJECTION
Barandillas: disponibilidad regional
La siguiente tabla muestra qué AWS regiones respaldan las barreras de protección en la política:
| Este de EE. UU. (Norte de Virginia) | Este de EE. UU. (Ohio) | Oeste de EE. UU. (Oregón) | Europa (Fráncfort) | Europa (Irlanda) | Europa (Londres) | Europa (París) | Europa (Estocolmo) | Asia-Pacífico (Mumbai) | Asia-Pacífico (Singapur) | Asia-Pacífico (Sídney) | Asia-Pacífico (Tokio) | Asia-Pacífico (Seúl) | Canadá (Centro) | América del Sur (São Paulo) | AWS GovCloud (US-West) | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Guardrails Support |
✅ |
❌ |
❌ |
❌ |
❌ |
✅ |
❌ |
✅ |
❌ |
❌ |
✅ |
✅ |
❌ |
❌ |
❌ |
❌ |
Antes de empezar
Antes de empezar, debe configurar correctamente su función de IAM.
Permisos
La función de ejecución de AgentCore Gateway 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 Policy 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": "*" } ] }
Barandillas compatibles
| Nombre de Safeguard | Tipo de identidad | Categorías de salvaguardia |
|---|---|---|
|
Filtro de contenido |
|
|
|
Detección rápida de ataques |
|
|
|
Información confidencial |
|
|
Definición de barreras en las políticas
Para definir las barreras en la política, puede escribir la política como código o describirla en lenguaje natural. Al igual que con cualquier política existente que ya haya creado, debe especificar un efecto (p. ej.permit) con una condición (when guardrails). En esta condición, debe proporcionar la protección de barandilla específica que quiere habilitar, la categoría de protección que va a utilizar, el contexto que quiere que evalúe la protección de la barandilla y el umbral 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")) };
Especificar una protección de barandilla
Para elegir un tipo de entidad de salvaguardia específico, utilice el BedrockGuardrails espacio de nombres:
| Safeguard | Nombre de la función Guardrail |
|---|---|
|
Filtro de contenido |
|
|
Ataque rápido |
|
|
Información confidencial |
|
Selección de una categoría de protección
Seleccione una categoría para la salvaguardia en cuestión (consulteBarandillas compatibles).
p. ej. BedrockGuardrails::ContentFilter(["HATE"],[context.output.message])
Efectos para barandas
Para crear barandas para utilizarlas en las solicitudes de autorización, utilice los efectos y. permit forbid Estas 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 barandas que puedan utilizarse para suprimir las salidas de herramientas, agentes o modelos, utilice el efecto. suppressOutput suppressOutputes un efecto nuevo que actúa sobre los datos que devuelve una acción. Una vez completada una acción autorizada, evalúa las salidas con respecto a 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")) };
Pasar 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 rápida de ataques, la barandilla devuelve una puntuación de confianza, que es un valor numérico comprendido 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 puntuaciones posibles 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 (por ejemplogreaterThan(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 |
|---|---|
|
|
Puntuación > umbral |
|
|
Puntuación ≥ umbral |
|
|
Puntuación < umbral |
|
|
Puntuación ≤ umbral |
Puedes usar una agregación en tu política para extraer y comparar las puntuaciones devueltas por las barandillas:
Agregaciones
| Agregación | Description (Descripción) | Ejemplo |
|---|---|---|
|
|
Acceda a la puntuación de confianza de una categoría específica (decimal |
|
|
|
Máxima confianza en todas las categorías escaneadas (decimal |
|
|
|
Confianza mínima en todas las categorías escaneadas (decimal |
|
|
|
Número de hallazgos detectados (largo |
|
¿Cómo elegir un umbral
Si no especifica un umbral al solicitar el servicio de creación, AgentCore establece un valor por defecto. Si redacta sus políticas sin la ayuda del servicio de creación, debe proporcionar el valor límite.
Los siguientes valores predeterminados están calibrados para ofrecer una cobertura amplia 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 con un conjunto de pruebas de referencia
Utilice este enfoque cuando tenga un conjunto seleccionado de entradas de prueba con resultados esperados claros.
-
Cree sus políticas y configure el modo de motor de políticas en LOG_ONLY.
-
Ejecute el conjunto de pruebas a través de la puerta de enlace a la que está conectado su motor de políticas.
-
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.
-
Para cada resultado, indique si la barandilla debería haber marcado el contenido o no haber hecho nada (verdadero y falso, respectivamente).
-
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 omitidas.
Opción 2: Evalúe en función del tráfico de producción
Utilice este enfoque cuando no disponga de un conjunto de pruebas prediseñado y desee calibrarlo utilizando patrones de tráfico reales.
-
Cree sus políticas y configure el modo de motor de políticas en LOG_ONLY.
-
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.
-
Utilice an 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).
-
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 omitidas.
Pruebe las barreras en la política
AgentCore proporciona varios mecanismos para probar las políticas de barreras antes de aplicarlas en el tráfico de producción. Puede controlar la aplicación a nivel del motor de políticas, a nivel de políticas individuales o de ambos modos, lo que le permite validar el comportamiento de las barandillas de forma incremental. Consulte Probar una política para obtener más información.
Cómo funcionan las barandillas con la política
Las políticas de barandas se pueden aplicar a cualquier destino de puerta de enlace. Las barandillas se ejecutan en: * Objetivos MCP — POST /mcp (JSON-RPC tools/call) * Objetivos de tiempo de ejecución HTTP — * Objetivos de inferencia HTTP — POST /<target>/invocations POST /inference
Cuando llega una llamada a su puerta de enlace, el evaluador de políticas realiza lo siguiente:
-
Coincide con el alcance: identifica qué políticas de barandillas se aplican a esta solicitud
-
Extrae el contenido: extrae el campo especificado por
dataPath(por ejemplo,context.input.message) del cuerpo de la solicitud -
Llama a la InvokeGuardrailChecks API Bedrock: evalúa el contenido e introduce las puntuaciones de confianza devueltas en el contexto de la evaluación de la política
-
Evalúa la política utilizando puntuaciones de protección: compara las puntuaciones de confianza devueltas con el umbral definido en la política
-
Devuelve una decisión (
ALLOWoDENYcon las anotaciones de la política) a la pasarela
Nota: Las barandillas no son deterministas. La misma entrada puede generar diferentes salidas. Sin embargo, las políticas son deterministas: la misma entrada siempre dará como resultado la misma salida.
Limitaciones de las barreras en la política
-
No se admite la coincidencia de patrones o expresiones regulares: las barandillas utilizan la puntuación ML, no expresiones regulares
-
No se pueden mezclar las pólizas Cedar estándar con las barandillas: las sustituyen
when guardrails {…}when {…} -
Se requiere una barandilla en un
when guardrails {…}bloque; los bloques de barandillas deben tener al menos una barandilla definida en su interior