Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Time-based soutien aux politiques
Policy in AgentCore prend en charge les restrictions temporelles dans les politiques Cedar via la valeur context.system.now datetime. Cela vous permet d'appliquer des politiques en fonction de dates, d'heures ou de plages horaires spécifiques.
Rubriques
Comment ça marche
Lors de l'évaluation de la politique, l'horodatage UTC actuel est fourni dans le cadre du contexte de l'évaluation :
// Current datetime in UTC context.system.now
Vous pouvez utiliser les fonctions datetime de Cedar pour créer des conditions basées sur le temps :
-
datetime("YYYY-MM-DDTHH:MM:SSZ")— Crée une valeur date/heure -
duration("Xh")— Créez une durée (heures, minutes, secondes) -
.toTime()— Extraire l'heure de la journée à partir de la date/heure -
Opérateurs de comparaison :
<⇐,,>,>=,==
Restrictions de dates et d'heures absolues
Appliquez les politiques au cours de périodes calendaires spécifiques.
Exemple : politique relative à la période promotionnelle
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") };
Cas d'utilisation : n'autoriser les remboursements qu'en janvier 2025.
Restrictions de temps récurrentes quotidiennes
Appliquez des politiques en fonction des heures de la journée qui se répètent tous les jours.
Exemple : Politique relative aux heures d'ouverture
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") };
Cas d'utilisation : n'autorisez les remboursements que pendant les heures ouvrables (de 9 h à 17 h UTC tous les jours).
Restrictions de date et d'heure combinées
Combinez des dates absolues avec des restrictions horaires quotidiennes.
Exemple : Limited-time promotion avec horaires quotidiens
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") };
Cas d'utilisation : autoriser l'outil de réduction uniquement en février 2025, entre 9 h et 21 h UTC tous les jours.
Gestion des fuseaux horaires
Toutes les valeurs de date/heure doivent être en UTC. Le moteur de politique ne prend pas en charge les conversions de fuseaux horaires ni les politiques tenant compte des fuseaux horaires.
Lorsque vous spécifiez des heures dans vos politiques, utilisez toujours l'UTC. Si votre entreprise opère dans un autre fuseau horaire, convertissez vos heures locales en UTC avant de créer la politique.
Utiliser le langage naturel pour générer des politiques temporelles
Le service de création de politiques peut générer des politiques temporelles à partir de descriptions en langage naturel.
Exemple : générer une politique relative aux heures d'ouverture
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" }'
Politique générée :
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") };
Meilleures pratiques pour le langage naturel
-
Soyez explicite en ce qui concerne les horaires : utilisez « 9 h à 17 h UTC » au lieu de « heures ouvrables »
-
Spécifiez toujours l'UTC — Incluez « UTC » pour éviter toute ambiguïté
-
Utilisez le format ISO pour les dates — Utilisez « 2025-01-01 » au lieu de « 1er janvier »
-
Fournissez des plages horaires spécifiques — Évitez les termes vagues tels que « de jour » ou « en dehors des heures de bureau »
Voici de bons exemples d'instructions en langage naturel :
"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"