As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Time-based políticas
As políticas desta seção decidem a partir do horário normal — uma janela promocional, horário comercial ou uma combinação dos dois. Eles lêemcontext.system.now, que o serviço fornece em cada solicitação.
Time-based as condições são when cláusulas comuns do Cedar, portanto, elas se compõem com todo o resto dessas páginas. Uma verificação principal, uma condição de entrada, uma grade de proteção ou uma condição temporal podem se enquadrar na mesma política.
Como o restante do guia de criação, esses exemplos são escritos no gateway de referência descrito em Configuração de recursos para obter exemplos, para que você possa combiná-los com os outros exemplos em um mecanismo de política.
nota
Time-based não é o mesmo que temporal. Uma condição baseada no tempo pergunta que horas são agora; uma condição temporal pergunta o que já aconteceu nessa sessão. Para obter mais informações, consulte Exemplos de políticas temporais.
Como funciona
Durante a avaliação da política, o timestamp UTC atual é fornecido como parte do contexto de avaliação:
// Current datetime in UTC context.system.now
Você pode usar as funções de data e hora do Cedar para criar condições baseadas em tempo:
-
datetime("YYYY-MM-DDTHH:MM:SSZ")— Crie um valor de data e hora -
duration("Xh")— Crie uma duração (horas, minutos, segundos) -
.toTime()— Extraia a hora do dia a partir da data e hora -
Operadores de comparação:
<⇐,,>,>=,==
Restrições absolutas de intervalo de data e hora
Aplique políticas dentro de períodos específicos do calendário.
Exemplo: Open-enrollment janela
permit ( principal, action == AgentCore::Action::"InsuranceAPI___calculate_premium", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/insurance-gw-a1b2c3d4e5" ) when { context.system.now >= datetime("2025-01-01T00:00:00Z") && context.system.now < datetime("2025-02-01T00:00:00Z") };
Caso de uso: ofereça prêmios somente durante a janela de inscrições abertas de janeiro de 2025.
Restrições diárias de horário recorrentes
Aplique políticas com base na hora do dia que se repete diariamente.
Exemplo: política de horário comercial
permit ( principal, action == AgentCore::Action::"InsuranceAPI___disburse_payment", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/insurance-gw-a1b2c3d4e5" ) when { duration("9h") <= context.system.now.toTime() && context.system.now.toTime() <= duration("17h") };
Caso de uso: desembolse pagamentos somente durante o horário comercial (diariamente das 9h às 17h UTC).
Restrições combinadas de data e hora
Combine datas absolutas com restrições de horário diárias.
Exemplo: janela de inscrição com horários diários
permit ( principal, action == AgentCore::Action::"InsuranceAPI___update_coverage", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/insurance-gw-a1b2c3d4e5" ) when { // Valid dates: February 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 de uso: permita alterações de cobertura somente durante fevereiro de 2025, diariamente entre 9h e 21h UTC.
Tratamento de fuso horário
Todos os valores de data e hora devem estar em UTC. O Policy Engine não oferece suporte a conversões de fuso horário ou políticas com reconhecimento de fuso horário.
Ao especificar horários em suas políticas, sempre use UTC. Se sua empresa opera em um fuso horário diferente, converta seu horário local para UTC antes de criar a política.