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.
Patrones políticos comunes
Estos ejemplos muestran los patrones de política de Cedar que se utilizan con frecuencia. Los patrones funcionan tanto con la autenticación de OAuth como con la de IAM; seleccione el tipo de principal adecuado para la configuración de su puerta de enlace. AgentCore Para obtener más información sobre los atributos principales, consulte Atributos principales. Atributos principales
Estos patrones se aplican independientemente del tipo de autenticación.
Cierre de emergencia
Deshabilite todas las llamadas a herramientas en todo el Gateway:
forbid( principal, action, resource );
Caso práctico: apagado de emergencia, modo de mantenimiento o respuesta a un incidente.
Efecto: anula todas las políticas de permisos debido a una semántica en la que se prohíbe ganar.
Desactiva una herramienta específica
Inhabilita una herramienta específica mientras mantienes otras en funcionamiento:
forbid( principal, action == AgentCore::Action::"RefundTool___process_refund", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/refund-gateway" );
Caso práctico: deshabilita temporalmente una herramienta problemática sin afectar a otras funciones.
Bloquear el acceso de los usuarios
Impida que usuarios o cuentas específicos realicen cualquier acción:
OAuth: bloquea a un usuario específico
Bloquea a un usuario haciendo coincidir su etiqueta de nombre de usuario:
forbid( principal is AgentCore::OAuthUser, action, resource ) when { principal.hasTag("username") && principal.getTag("username") == "suspended-user" };
Caso práctico: revoca inmediatamente el acceso a una cuenta de usuario comprometida o suspendida.
IAM: bloquea una cuenta específica
Bloquear llamadas desde una cuenta específica AWS :
forbid( principal is AgentCore::IamEntity, action, resource ) when { principal.id like "*:444455556666:*" };
Caso práctico: impedir que las cuentas de prueba o no autorizadas accedan a las herramientas de producción. El patrón
:444455556666:
coincide con cualquier formato de ARN (rol asumido, usuario de IAM o rol de IAM) que contenga ese ID de cuenta.
Role-based control de acceso
Restrinja el acceso en función de los roles. OAuth usa etiquetas de rol; IAM usa patrones de ARN de rol.
OAuth: uso de etiquetas de rol
Permita el acceso solo a usuarios con funciones específicas:
permit( principal is AgentCore::OAuthUser, action == AgentCore::Action::"AdminAPI___delete_resource", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/admin" ) when { principal.hasTag("role") && (principal.getTag("role") == "admin" || principal.getTag("role") == "manager") };
Caso práctico: permita las operaciones administrativas solo a los usuarios con funciones de administrador o administrador.
IAM: Uso de los ARN de roles de IAM
Permita el acceso solo a las personas que llamen utilizando funciones de IAM específicas. Puedes usar la principal == coincidencia exacta o la coincidencia de principal.id like patrones:
// Exact match (recommended for single-role policies) permit( principal == AgentCore::IamEntity::"arn:aws:sts::123456789012:assumed-role/AdminRole", action == AgentCore::Action::"AdminAPI___delete_resource", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/admin" );
Caso práctico: permita las operaciones administrativas únicamente a las personas que llamen y asuman la función de AdminRole IAM. El identificador de entidad de Cedar para los roles asumidos utiliza este formato. arn:aws:sts::<account>:assumed-role/<role-name>
Variaciones que utilizan la coincidencia de patrones:
// Match a specific role from any account principal.id like "arn:aws:sts::*:assumed-role/AdminRole" // Match any role in a specific account principal.id like "arn:aws:sts::123456789012:assumed-role/*"
Operaciones de tipos de datos
Cedar admite varios tipos de datos en condiciones. En estos ejemplos se utilizan los principales de OAuth (). AgentCore::OAuthUser En el caso de IAM-authenticated las pasarelas, utilícela AgentCore::IamEntity en su lugar: la lógica de validación de entradas sigue siendo idéntica.
Números enteros (largos)
// Check if passenger count is exactly 2 permit( principal is AgentCore::OAuthUser, action == AgentCore::Action::"TravelAPI___search_flights", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/travel" ) when { context.input.passengers == 2 };
Cadenas
// Check if payment method is credit card permit( principal is AgentCore::OAuthUser, action == AgentCore::Action::"PaymentAPI___process_payment", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/payment" ) when { context.input.paymentMethod == "credit-card" };
Listas (conjuntos)
// Check if country is in allowed list permit( principal is AgentCore::OAuthUser, action == AgentCore::Action::"ShippingAPI___calculate_rate", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/shipping" ) when { ["US", "CA", "MX"].contains(context.input.country) };
Comprobando los campos opcionales
// Require optional field to be present permit( principal is AgentCore::OAuthUser, action == AgentCore::Action::"OrderAPI___create_order", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/order" ) when { context.input has shippingAddress };