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