

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Time-based kebijakan
<a name="example-policies-time-based"></a>

Kebijakan di bagian ini memutuskan dari **waktu jam dinding** — jendela promosi, jam kerja, atau kombinasi keduanya. Mereka membaca`context.system.now`, yang disediakan layanan pada setiap permintaan.

Time-based kondisi adalah `when` klausa Cedar biasa, jadi mereka menulis dengan segala sesuatu yang lain di halaman ini. Pemeriksaan pokok, kondisi input, pagar pembatas, atau kondisi temporal semuanya dapat dilakukan dalam kebijakan yang sama.

Seperti panduan penulisan lainnya, contoh-contoh ini ditulis terhadap gateway referensi yang dijelaskan dalam [konfigurasi Sumber daya sebagai contoh](example-policies-reference.md), sehingga Anda dapat menggabungkannya dengan contoh lain di satu mesin kebijakan.

**catatan**  
Time-based tidak sama dengan **temporal**. Kondisi berbasis waktu menanyakan jam berapa sekarang; kondisi temporal menanyakan apa yang telah terjadi dalam sesi ini. Untuk informasi selengkapnya, lihat [Contoh kebijakan sementara](example-policies-temporal.md).

## Cara kerjanya
<a name="example-policies-time-based-how"></a>

Selama evaluasi kebijakan, stempel waktu UTC saat ini disediakan sebagai bagian dari konteks evaluasi:

```
// Current datetime in UTC
context.system.now
```

Anda dapat menggunakan fungsi datetime Cedar untuk membuat kondisi berbasis waktu:
+  `datetime("YYYY-MM-DDTHH:MM:SSZ")`— Buat nilai datetime
+  `duration("Xh")`— Buat durasi (jam, menit, detik)
+  `.toTime()`— Ekstrak waktu hari dari datetime
+ Operator perbandingan:`<`,`⇐`,`>`,`>=`, `==` 

## Batasan tanggal dan rentang waktu absolut
<a name="example-policies-time-absolute"></a>

Menegakkan kebijakan dalam periode kalender tertentu.

### Contoh: Open-enrollment jendela
<a name="example-policies-time-absolute-example"></a>

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

 **Kasus penggunaan:** Penawaran premi hanya selama jendela pendaftaran terbuka Januari 2025.

## Pembatasan waktu berulang harian
<a name="example-policies-time-daily"></a>

Menegakkan kebijakan berdasarkan waktu hari yang berulang setiap hari.

### Contoh: Kebijakan jam kerja
<a name="example-policies-time-daily-example"></a>

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

 **Kasus penggunaan:** Cairkan pembayaran hanya selama jam kerja (9 pagi — 5 sore UTC setiap hari).

## Batasan tanggal dan waktu gabungan
<a name="example-policies-time-combined"></a>

Gabungkan tanggal absolut dengan batasan waktu harian.

### Contoh: Jendela pendaftaran dengan jam harian
<a name="example-policies-time-combined-example"></a>

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

 **Kasus penggunaan:** Izinkan perubahan cakupan hanya selama Februari 2025, antara jam 9 pagi dan 9 malam UTC setiap hari.

## Penanganan zona waktu
<a name="example-policies-time-timezone"></a>

Semua nilai datetime harus dalam UTC. Mesin Kebijakan tidak mendukung konversi zona waktu atau kebijakan sadar zona waktu.

Saat menentukan waktu dalam kebijakan Anda, selalu gunakan UTC. Jika bisnis Anda beroperasi di zona waktu yang berbeda, ubah waktu lokal Anda ke UTC sebelum membuat kebijakan.