View a markdown version of this page

Time-based dukungan kebijakan - Batuan Dasar Amazon AgentCore

Time-based dukungan kebijakan

Kebijakan dalam AgentCore mendukung pembatasan berbasis waktu dalam kebijakan Cedar melalui nilai context.system.now datetime. Ini memungkinkan Anda untuk menegakkan kebijakan berdasarkan tanggal, waktu, atau rentang waktu tertentu.

Cara kerjanya

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

Menegakkan kebijakan dalam periode kalender tertentu.

Contoh: Kebijakan periode promosi

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

Kasus penggunaan: Izinkan pengembalian uang hanya selama Januari 2025.

Pembatasan waktu berulang harian

Menegakkan kebijakan berdasarkan waktu hari yang berulang setiap hari.

Contoh: Kebijakan jam kerja

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

Kasus penggunaan: Izinkan pengembalian uang hanya selama jam kerja (9 pagi — 5 sore UTC setiap hari).

Batasan tanggal dan waktu gabungan

Gabungkan tanggal absolut dengan batasan waktu harian.

Contoh: Limited-time promosi dengan jam harian

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

Kasus penggunaan: Izinkan alat diskon hanya selama Februari 2025, antara jam 9 pagi dan 9 malam UTC setiap hari.

Penanganan zona waktu

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, konversikan waktu lokal Anda ke UTC sebelum membuat kebijakan.

Menggunakan bahasa alami untuk menghasilkan kebijakan berbasis waktu

Layanan pembuat kebijakan dapat menghasilkan kebijakan berbasis waktu dari deskripsi bahasa alami.

Contoh: Menghasilkan kebijakan jam kerja

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" }'

Kebijakan yang dihasilkan:

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

Praktik terbaik untuk bahasa alami

  • Bersikap eksplisit tentang waktu - Gunakan “9 pagi hingga 5 sore UTC” alih-alih “jam kerja”

  • Selalu tentukan UTC - Sertakan “UTC” untuk menghindari ambiguitas

  • Gunakan format ISO untuk tanggal - Gunakan “2025-01-01" alih-alih “1 Januari”

  • Berikan rentang waktu tertentu - Hindari istilah yang tidak jelas seperti “siang hari” atau “setelah jam kerja”

Contoh bagus dari petunjuk bahasa alami:

"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"