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 |
|
|
|
Detección rápida de ataques |
|
|
|
Información confidencial |
|
|
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 |
|
|
Ataque rápido |
|
|
Información confidencial |
|
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 |
|---|---|
|
|
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 obtenidas por los guardarrail:
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 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.
-
Crea tus políticas y establece el modo de motor de políticas en LOG_ONLY.
-
Ejecute su 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 barrera 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 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.
-
Cree sus políticas y establezca 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.
-
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).
-
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:
-
Coincide con el alcance: identifica qué políticas de protección 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 de Bedrock: evalúa el contenido e inyecta las puntuaciones de confianza devueltas en el contexto de evaluación de la política
-
Evalúa la política mediante puntuaciones de salvaguardia: compara las puntuaciones de confianza devueltas con el umbral definido en la política
-
Devuelve una decisión,
ALLOWoDENYcon 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 otemporal {…}