View a markdown version of this page

Barandillas en las pólizas - Amazon Bedrock AgentCore

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

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,NAME,USERNAME, y más de 20

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

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

.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 devueltas por las barandillas:

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

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

  2. Ejecute el 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 barandilla 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 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.

  1. Cree sus políticas y configure 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. 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).

  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 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:

  1. Coincide con el alcance: identifica qué políticas de barandillas 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 Bedrock: evalúa el contenido e introduce las puntuaciones de confianza devueltas en el contexto de la evaluación de la política

  4. Evalúa la política utilizando puntuaciones de protección: compara las puntuaciones de confianza devueltas con el umbral definido en la política

  5. Devuelve una decisión (ALLOWo DENY con 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