

# Time-based apoio político
<a name="policy-time-based"></a>

A política em AgentCore suporta restrições baseadas em tempo nas políticas do Cedar por meio do valor de `context.system.now` data e hora. Isso permite que você aplique políticas com base em datas, horários ou intervalos de tempo específicos.

**Topics**
+ [Como funciona](#policy-time-based-how)
+ [Restrições absolutas de intervalo de data e hora](#policy-time-absolute)
+ [Restrições diárias de horário recorrentes](#policy-time-daily)
+ [Restrições combinadas de data e hora](#policy-time-combined)
+ [Tratamento de fuso horário](#policy-time-timezone)
+ [Usando linguagem natural para gerar políticas baseadas em tempo](#policy-time-natural-language)

## Como funciona
<a name="policy-time-based-how"></a>

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
<a name="policy-time-absolute"></a>

Aplique políticas dentro de períodos específicos do calendário.

### Exemplo: política do período promocional
<a name="policy-time-absolute-example"></a>

```
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 reembolsos somente durante janeiro de 2025.

## Restrições diárias de horário recorrentes
<a name="policy-time-daily"></a>

Aplique políticas com base na hora do dia que se repete diariamente.

### Exemplo: política de horário comercial
<a name="policy-time-daily-example"></a>

```
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 de uso:** permita reembolsos somente durante o horário comercial (diariamente das 9h às 17h UTC).

## Restrições combinadas de data e hora
<a name="policy-time-combined"></a>

Combine datas absolutas com restrições de horário diárias.

### Exemplo: Limited-time promoção com horário diário
<a name="policy-time-combined-example"></a>

```
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 de uso:** permita a ferramenta de descontos somente durante fevereiro de 2025, diariamente entre 9h e 21h UTC.

## Tratamento de fuso horário
<a name="policy-time-timezone"></a>

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.

## Usando linguagem natural para gerar políticas baseadas em tempo
<a name="policy-time-natural-language"></a>

O serviço de criação de políticas pode gerar políticas baseadas em tempo a partir de descrições em linguagem natural.

### Exemplo: gerar política de horário comercial
<a name="policy-time-nl-example"></a>

```
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 gerada:

```
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")
};
```

### Práticas recomendadas para linguagem natural
<a name="policy-time-nl-best-practices"></a>
+  **Seja explícito quanto aos horários** — use “9h às 17h UTC” em vez de “horário comercial”
+  **Sempre especifique UTC** — Inclua “UTC” para evitar ambigüidade
+  **Use o formato ISO para datas** — Use “2025-01-01" em vez de “1º de janeiro”
+  **Forneça intervalos de tempo específicos** — Evite termos vagos como “diurno” ou “depois do expediente”

Bons exemplos de instruções em linguagem 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"
```