Time-based politische Unterstützung
Policy in AgentCore unterstützt zeitbasierte Einschränkungen in Cedar-Richtlinien über den context.system.now Datetime-Wert. Auf diese Weise können Sie Richtlinien auf der Grundlage bestimmter Daten, Uhrzeiten oder Zeitbereiche durchsetzen.
Themen
Funktionsweise
Während der Richtlinienevaluierung wird der aktuelle UTC-Zeitstempel als Teil des Bewertungskontextes bereitgestellt:
// Current datetime in UTC context.system.now
Sie können die Datetime-Funktionen von Cedar verwenden, um zeitbasierte Bedingungen zu erstellen:
-
datetime("YYYY-MM-DDTHH:MM:SSZ")— Erstellen Sie einen Datetime-Wert -
duration("Xh")— Erstellen Sie eine Dauer (Stunden, Minuten, Sekunden) -
.toTime()— Extrahieren Sie die Tageszeit aus Datetime -
Vergleichsoperatoren:
<,⇐,>,>===
Absolute Einschränkungen für Datum und Zeitbereich
Setzen Sie Richtlinien innerhalb bestimmter Kalenderzeiträume durch.
Beispiel: Richtlinie für den Aktionszeitraum
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") };
Anwendungsfall: Erstattungen sind nur im Januar 2025 zulässig.
Täglich wiederkehrende Zeitbeschränkungen
Setzen Sie Richtlinien auf der Grundlage der Tageszeit durch, die sich täglich wiederholen.
Beispiel: Richtlinie zu Geschäftszeiten
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") };
Anwendungsfall: Erstattungen sind nur während der Geschäftszeiten (täglich von 9:00 bis 17:00 Uhr UTC) zulässig.
Kombinierte Einschränkungen für Datum und Uhrzeit
Kombinieren Sie absolute Daten mit täglichen Zeitbeschränkungen.
Beispiel: Limited-time Promotion mit täglichen Öffnungszeiten
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") };
Anwendungsfall: Erlaube das Rabatt-Tool nur im Februar 2025, täglich zwischen 9 Uhr und 21 Uhr UTC.
Umgang mit Zeitzonen
Alle Datetime-Werte müssen in UTC angegeben werden. Die Policy Engine unterstützt keine Zeitzonenkonvertierungen oder zeitzonenabhängige Richtlinien.
Verwenden Sie bei der Angabe von Zeiten in Ihren Richtlinien immer UTC. Wenn Ihr Unternehmen in einer anderen Zeitzone tätig ist, konvertieren Sie Ihre lokalen Zeiten in UTC, bevor Sie die Richtlinie erstellen.
Verwenden Sie natürliche Sprache, um zeitbasierte Richtlinien zu generieren
Der Richtlinienerstellungsdienst kann zeitbasierte Richtlinien anhand von Beschreibungen in natürlicher Sprache generieren.
Beispiel: Generieren Sie eine Richtlinie für Geschäftszeiten
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" }'
Generierte Richtlinie:
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") };
Bewährte Verfahren für natürliche Sprache
-
Geben Sie die Zeiten explizit an — verwenden Sie „9:00 Uhr bis 17:00 Uhr UTC“ statt „Geschäftszeiten“
-
Geben Sie immer UTC an — Schließen Sie „UTC“ ein, um Unklarheiten zu vermeiden
-
Verwenden Sie das ISO-Format für Datumsangaben — Verwenden Sie „2025-01-01" statt „1. Januar“
-
Geben Sie bestimmte Zeiträume an — Vermeiden Sie vage Begriffe wie „tagsüber“ oder „außerhalb der Geschäftszeiten“
Gute Beispiele für Eingabeaufforderungen in natürlicher Sprache:
"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"