View a markdown version of this page

Redacción de políticas en lenguaje natural - 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.

Redacción de políticas en lenguaje natural

Policy in AgentCore seleccionará automáticamente la región óptima dentro de su geografía para procesar las solicitudes de inferencia realizadas a través del servicio de creación de políticas. Esto maximiza los recursos informáticos disponibles, la disponibilidad del modelo y ofrece la mejor experiencia al cliente. Sus datos permanecerán almacenados solo en la región en la que se originó la solicitud; sin embargo, las solicitudes de entrada y los resultados de salida se pueden procesar fuera de esa región. Todos los datos se transmitirán cifrados a través de la red segura de Amazon.

Policy in AgentCore dirigirá de forma segura tus solicitudes de inferencia a los recursos informáticos disponibles dentro del área geográfica en la que se originó la solicitud, de la siguiente manera:

  • Las solicitudes de inferencia que se originen en la Unión Europea se procesarán en la Unión Europea.

  • Las solicitudes de inferencia que se originen en los Estados Unidos se procesarán en los Estados Unidos.

  • Las solicitudes de inferencia que se originen en APAC se procesarán en APAC.

Descripción general de

Cedar proporciona un control de acceso preciso, pero requiere aprender la sintaxis formal. NL2Cedar le permite:

  1. Escriba los requisitos de autorización en lenguaje natural

  2. Convierte automáticamente a la sintaxis de Cedar

  3. Verifique que las políticas generadas coincidan con sus requisitos

nota

La generación de políticas en lenguaje natural requiere una AgentCore puerta de enlace y un motor de políticas implementados. El servicio utiliza el esquema AgentCore Gateway para generar políticas Cedar válidas. Consulte Introducción a la política AgentCore para obtener instrucciones de configuración.

nota

El lenguaje natural es flexible, pero la precisión es esencial para la seguridad. Las políticas deben ser claras e inequívocas.

Ejemplo

La política de reembolso de la sección anterior se puede expresar en lenguaje natural:

Lenguaje natural:

Permita que el director con el nombre de usuario «agente de reembolso» procese los reembolsos cuando el importe del reembolso sea inferior a 500 dólares.

Se convierte en cedro:

permit( principal is AgentCore::OAuthUser, action == AgentCore::Action::"RefundTool___process_refund", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/refund-gateway" ) when { principal.hasTag("username") && principal.getTag("username") == "refund-agent" && context.input.amount < 500 };

Efectos en las políticas

Las políticas de autorización tienen dos efectos posibles: permitir y prohibir.

Políticas de permisos

Las políticas de permisos especifican lo que pueden hacer los usuarios:

  • «Permitir que el agente de reembolsos del usuario procese los reembolsos»

  • «Permitir a los usuarios con rol de director aprobar decisiones»

  • «Autoriza a los usuarios con el alcance admin:write a actualizar la cobertura»

Prohibir políticas

Las políticas de prohibición especifican lo que los usuarios no pueden hacer:

  • «Impedir que los usuarios accedan a modelos de alta sensibilidad»

  • «Impedir que los aseguradores junior aprueben sus decisiones»

  • «Prohíba a los usuarios procesar reembolsos cuando la validación del riesgo esté pendiente»

Semántica de autorización

Comprender cómo Cedar evalúa las políticas es crucial para redactar reglas de autorización eficaces. Cedar sigue tres principios fundamentales:

  • De forma predeterminada, todo está denegado: si ninguna política permite explícitamente una acción, se bloquea automáticamente

  • Prohibir siempre gana: si alguna política de prohibición coincide, se deniega el acceso aunque las políticas de permiso también coincidan

  • Se requiere al menos un permiso: para que se conceda el acceso, al menos una política de permisos debe coincidir y ninguna política de prohibición puede coincidir

¿Por qué usar políticas de prohibición si todo está denegado de forma predeterminada?

Las políticas de prohibición garantizan que no se puedan permitir por error acciones específicas. Incluso si alguien redacta una política de permisos más amplia, la política de prohibición tiene prioridad y bloquea el acceso.

Escenario de ejemplo:

// Broad permit policy - allows all users to view model results permit( principal is AgentCore::OAuthUser, action == AgentCore::Action::"ModelAPI___view_results", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/model" ); // Forbid policy - blocks access to high-sensitivity results forbid( principal is AgentCore::OAuthUser, action == AgentCore::Action::"ModelAPI___view_results", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/model" ) when { context.input.sensitivity == "high" };

Resultado: los usuarios pueden ver los resultados de sensibilidad baja y media (se aplica el permiso), pero los resultados de alta sensibilidad siempre están bloqueados (no se permite ganar).

Usa las políticas de prohibición para:

  • Restricciones de seguridad explícitas que nunca deben anularse

  • Requisitos de conformidad

  • Paradas de emergencia

  • Crear excepciones a políticas de permisos más amplias

Elementos de una política

Las políticas de autorización requieren tres elementos clave:

  1. Quién: qué usuarios o roles pueden realizar la acción

  2. Qué: qué operaciones o herramientas pueden usar

  3. Cuándo: bajo qué condiciones o restricciones

Especificación principal

El principal identifica a qué usuarios, roles o grupos se aplica la política.

Expresiones flexibles:

  • «Permitir que el agente de reembolsos del usuario...»

  • «Permita a los usuarios con el nombre de usuario del agente de reembolso...»

  • «Los usuarios con el rol de agente de seguros pueden...»

  • «Cualquier persona que tenga el alcance de reembolsar:write está autorizada a...»

  • «Todos los usuarios pueden...»

Sea específico en cuanto a la identidad:

Incompleto: ❌ «Permitir procesar reembolsos de menos de 500$»

Completo: ✓ «Permitir que el agente de reembolsos procese reembolsos de menos de 500$»

Especificación de la acción

El «qué» identifica qué operaciones, herramientas o acciones controla la política.

Verbos de acción flexibles:

  • «Permitir a los usuarios procesar reembolsos»

  • «Permitir el procesamiento de reembolsos»

  • «Los usuarios pueden crear aplicaciones»

  • «Autorizar la visualización de los registros de auditoría»

Sea específico con respecto a la herramienta:

Vago: ❌ «Permitir a los usuarios acceder a los modelos»

Claro: ✓ «Permitir que el equipo de ciencia de datos acceda al modelo de análisis»

Especificación de la condición

El «cuándo» especifica en qué circunstancias se aplica la política.

Expresiones condicionales flexibles:

  • «... cuando la cantidad es inferior a 500$»

  • «... si la región es EE. UU., California o el Reino Unido»

  • «... solo cuando el estado de aprobación es aprobado por el gerente»

  • «... siempre que se haya presentado la puntuación de riesgo»

Sea preciso con las condiciones:

Impreciso: ❌ «Permitir transferencias cuando la cantidad sea razonable»

Preciso: ✓ «Permitir transferencias cuando el importe sea inferior a 10 000$»

Ejemplos de políticas

Los siguientes ejemplos demuestran cómo estructurar las políticas de lenguaje natural con principios, acciones y condiciones claros.

Ejemplo 1: Política simple User-Based

Permita que el agente de reembolsos del usuario procese los reembolsos cuando el importe sea inferior a 500$.

Elementos:

  • Quién: agente de reembolsos al usuario

  • Qué: procesar reembolsos

  • Cuándo: el importe es inferior a 500$

Ejemplo 2: Role-Based con varias condiciones

Permita a los usuarios con el rol de agente de seguros actualizar la cobertura cuando el tipo de cobertura sea de responsabilidad civil o colisión y la póliza esté activa.

Elementos:

  • Quién: usuarios con rol de agente de seguros

  • Qué: actualizar la cobertura

  • Cuándo: el tipo de cobertura es de responsabilidad civil o colisión Y la póliza está activa

Ejemplo 3: Scope-Based Acceso

Permite a los usuarios con el objetivo travel:book crear reservas de vuelos cuando la región no sea de la UE y el producto cumpla los requisitos.

Elementos:

  • Quién: usuarios con alcance travel:book

  • Qué: crear reservas de vuelos

  • Cuándo: la región no es de la UE Y el producto es elegible

Ejemplo 4: Todas las personas con restricciones

Permita que todos los usuarios vean los resultados del modelo cuando la sensibilidad de los datos sea baja o media y el tipo de resultado sea la puntuación de riesgo.

Elementos:

  • Quién: todos los usuarios

  • Qué: ver los resultados del modelo

  • Cuándo: la sensibilidad de los datos es baja o media Y el tipo de resultado es la puntuación de riesgo

Sintaxis de condiciones

Las condiciones son aquellas en las que las políticas suelen volverse ambiguas. A continuación, te explicamos cómo redactar condiciones claras y comprobables.

Comparaciones numéricas

Buenos ejemplos:

  • «cuando la cantidad es inferior a 500 dólares»

  • «cuando el monto de la cobertura es inferior a 5 millones»

  • «cuando la reclamación supere los 10 000 000$»

  • «cuando el recuento de pasajeros sea exactamente de 2»

Evite los términos vagos:

  • ❌ «cuando la cantidad es pequeña»

  • ❌ «cuando la cobertura es alta»

Coincidencia de cadenas

Coincidencia exacta:

  • «cuando la región es EE. UU.»

  • «cuando el método de pago es tarjeta de crédito»

  • «cuando se apruebe el estado»

Múltiples opciones:

  • «cuando la región es EE. UU., California o el Reino Unido»

  • «cuando el tipo de decisión es aprobar o remitir»

Coincidencia de patrones:

  • «cuando el correo electrónico contiene @example .com»

  • «cuando el ámbito contiene admin:write»

Negación:

  • «cuando la región no es la UE»

  • «cuando la clasificación no está restringida»

Condiciones booleanas

Controles directos:

  • «cuando el producto sea elegible»

  • «cuando se envía la puntuación de riesgo»

  • «cuando se solicita el envío exprés»

Negación:

  • «cuando el producto no es elegible»

  • «cuando no se presenta la puntuación de riesgo»

Existencia de campo

Campos obligatorios:

  • «cuando se proporciona un motivo»

  • «cuando existe un identificador de aplicación»

  • «cuando se especifique la fecha de devolución»

Combinación de condiciones

Las políticas reales a menudo necesitan múltiples condiciones. Utilice conectores lógicos claros.

Y la lógica (todo debe ser cierto)

Usa palabras como: «y», «también», «adicionalmente», «mientras», «con»

Ejemplo:

Permita las solicitudes cuando la región sea EE. UU., el producto cumpla los requisitos y el territorio esté activo.

O lógica (al menos una debe ser verdadera)

Usa palabras como: «o», «alternativamente», «cualquiera de las dos»

Ejemplo:

Permita la aprobación cuando la reclamación supere los 10 000 000$ o el nivel de riesgo sea alto o crítico.

Lógica compleja

Para condiciones complejas, utilice una estructura clara:

Ejemplo:

Permita la finalización cuando la fase del flujo de trabajo esté finalizada o aprobada, el estado de cumplimiento haya pasado y la autoridad recaiga en el gerente o el director.

Dificultades comunes

Evite estos errores comunes al escribir políticas de lenguaje natural para asegurarse de que se convierten correctamente a la sintaxis de Cedar.

Error 1: Principios vagos

Malo: «Permitir el acceso a la herramienta de reembolsos»

Bueno: «Permite al agente de reembolso del usuario acceder a la herramienta de reembolsos»

Error 2: Acciones ambiguas

Malo: «Permitir a los usuarios acceder a los datos»

Bueno: «Permitir a los usuarios ver los registros de los pacientes»

Error 3: condiciones subjetivas

Malo: «Permitir transferencias cuando la cantidad sea razonable»

Bueno: «Permitir transferencias cuando el importe sea inferior a 10 000$»

Error 4: Faltan condiciones

Malo: «Permitir a los usuarios con el alcance admin:write actualizar la cobertura»

Bueno: «Permite a los usuarios con scope admin:write actualizar la cobertura cuando la póliza esté activa y el tipo de cobertura sea de responsabilidad civil o colisión»

Error 5: Lógica poco clara

Malo: «Permitir cuando sea A o B y C»

Bueno: «Permitir cuando (A o B) y C» o «Permitir cuando A o (B y C)»