Time-based apoyo a las políticas
La política AgentCore apoya las restricciones basadas en el tiempo en las políticas de Cedar mediante el valor de context.system.now fecha y hora. Esto le permite hacer cumplir las políticas en función de fechas, horas o intervalos de tiempo específicos.
Temas
Funcionamiento
Durante la evaluación de la política, se proporciona la marca de tiempo UTC actual como parte del contexto de la evaluación:
// Current datetime in UTC context.system.now
Puede utilizar las funciones de fecha y hora de Cedar para crear condiciones basadas en el tiempo:
-
datetime("YYYY-MM-DDTHH:MM:SSZ")— Crea un valor de fecha y hora -
duration("Xh")— Crear una duración (horas, minutos, segundos) -
.toTime()— Extrae la hora del día a partir de la fecha y hora -
Operadores de comparación:
<,,,⇐,>>===
Restricciones absolutas de intervalo de fecha y hora
Haga cumplir las políticas dentro de períodos de calendario específicos.
Ejemplo: política de períodos promocionales
permit( principal, action == AgentCore::Action::"RefundToolTarget___refund", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/my-gateway" ) when { context.system.now >= datetime("2025-01-01T00:00:00Z") && context.system.now < datetime("2025-01-31T23:59:59Z") };
Caso de uso: permita los reembolsos solo durante enero de 2025.
Restricciones horarias periódicas diarias
Aplica las políticas en función de la hora del día que se repiten a diario.
Ejemplo: política de horario comercial
permit( principal, action == AgentCore::Action::"RefundToolTarget___refund", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/my-gateway" ) when { duration("9h") <= context.system.now.toTime() && context.system.now.toTime() <= duration("17h") };
Caso práctico: permite los reembolsos solo durante el horario laboral (todos los días de 9:00 a 17:00 UTC).
Restricciones combinadas de fecha y hora
Combine fechas absolutas con restricciones horarias diarias.
Ejemplo: Limited-time promoción con horario diario
permit( principal, action == AgentCore::Action::"DiscountToolTarget___apply_discount", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/my-gateway" ) when { // Valid dates: Feb 1-28, 2025 context.system.now >= datetime("2025-02-01T00:00:00Z") && context.system.now < datetime("2025-03-01T00:00:00Z") && // Valid hours: 9am-9pm UTC daily duration("9h") <= context.system.now.toTime() && context.system.now.toTime() <= duration("21h") };
Caso práctico: permite la herramienta de descuentos solo durante febrero de 2025, entre las 9 a.m. y las 9 p.m. UTC todos los días.
Manejo de zonas horarias
Todos los valores de fecha y hora deben estar en UTC. El motor de políticas no admite conversiones de zonas horarias ni políticas que tengan en cuenta las zonas horarias.
Cuando especifiques las horas en tus políticas, utiliza siempre UTC. Si tu empresa opera en una zona horaria diferente, convierte la hora local a UTC antes de crear la política.
Utiliza un lenguaje natural para generar políticas basadas en el tiempo
El servicio de creación de políticas puede generar políticas basadas en el tiempo a partir de descripciones en lenguaje natural.
Ejemplo: generar una política de horario comercial
aws bedrock-agentcore-control start-policy-generation \ --policy-engine-id MyEngine-abc123 \ --name BusinessHoursOnly \ --content '{ "rawText": "Allow refunds only during business hours 9am to 5pm UTC" }' \ --resource '{ "arn": "arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/MyGateway-xyz789" }'
Política generada:
permit( principal, action == AgentCore::Action::"RefundToolTarget___refund", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/MyGateway-xyz789" ) when { duration("9h") <= context.system.now.toTime() && context.system.now.toTime() <= duration("17h") };
Mejores prácticas para el lenguaje natural
-
Sea explícito con respecto a los horarios: utilice «de 9 a. m. a 5 p. m. UTC» en lugar de «horario comercial»
-
Especifique siempre UTC: incluya «UTC» para evitar ambigüedades
-
Utilice el formato ISO para las fechas: utilice «2025-01-01» en lugar de «1 de enero»
-
Proporcione intervalos de tiempo específicos: evite términos vagos como «durante el día» o «fuera del horario laboral»
Buenos ejemplos de indicaciones en lenguaje natural:
"Allow refunds only between 9am and 5pm UTC" "Allow payments except between 2am and 4am UTC daily" "Allow discounts only from 2025-02-01 to 2025-02-28" "Permit high-value transactions between 8am and 8pm UTC"