Time-based supporto politico
Policy in AgentCore supporta le restrizioni basate sul tempo nelle politiche Cedar tramite il valore context.system.now datetime. Ciò consente di applicare politiche basate su date, orari o intervalli di tempo specifici.
Argomenti
Come funziona
Durante la valutazione delle politiche, l'attuale timestamp UTC viene fornito come parte del contesto di valutazione:
// Current datetime in UTC context.system.now
Puoi utilizzare le funzioni datetime di Cedar per creare condizioni basate sul tempo:
-
datetime("YYYY-MM-DDTHH:MM:SSZ")— Crea un valore datetime -
duration("Xh")— Crea una durata (ore, minuti, secondi) -
.toTime()— Estrai l'ora del giorno da datetime -
Operatori di confronto:
<,⇐,,>,>===
Restrizioni assolute per intervalli di data e ora
Applica le politiche entro periodi di calendario specifici.
Esempio: politica relativa al periodo promozionale
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 d'uso: consenti i rimborsi solo nel mese di gennaio 2025.
Restrizioni orarie giornaliere ricorrenti
Applica le politiche in base all'ora del giorno che si ripetono quotidianamente.
Esempio: politica sull'orario di lavoro
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 d'uso: consenti i rimborsi solo durante l'orario lavorativo (tutti i giorni dalle 9:00 alle 17:00 UTC).
Restrizioni combinate di data e ora
Combina date assolute con restrizioni orarie giornaliere.
Esempio: Limited-time promozione con orari giornalieri
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 d'uso: Allow discount tool solo nel mese di febbraio 2025, tra le 9:00 e le 21:00 UTC tutti i giorni.
Gestione del fuso orario
Tutti i valori datetime devono essere espressi in UTC. Il Policy Engine non supporta le conversioni di fuso orario o le politiche che tengono conto del fuso orario.
Quando specificate gli orari nelle vostre politiche, utilizzate sempre l'UTC. Se la tua azienda opera in un fuso orario diverso, converti l'ora locale in UTC prima di creare la politica.
Utilizzo del linguaggio naturale per generare politiche basate sul tempo
Il servizio di creazione delle politiche può generare politiche basate sul tempo a partire da descrizioni in linguaggio naturale.
Esempio: generare una politica sull'orario di lavoro
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" }'
Politica generata:
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") };
Le migliori pratiche per il linguaggio naturale
-
Sii esplicito sugli orari: utilizza «dalle 9:00 alle 17:00 UTC» anziché «l'orario lavorativo»
-
Specificate sempre l'UTC: includete «UTC» per evitare ambiguità
-
Usa il formato ISO per le date: usa «2025-01-01" anziché «1 gennaio»
-
Fornisci intervalli di tempo specifici: evita termini vaghi come «giorno» o «fuori orario»
Buoni esempi di istruzioni in linguaggio naturale:
"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"