View a markdown version of this page

Time-based soutien aux politiques - Amazon Bedrock AgentCore

Time-based soutien aux politiques

Policy in AgentCore prend en charge les restrictions temporelles dans les politiques de Cedar par le biais de la valeur context.system.now date/heure. Cela vous permet d'appliquer des politiques basées sur des dates, des heures ou des plages de temps spécifiques.

Comment ça marche

Lors de l'évaluation de la politique, l'horodatage UTC actuel est fourni dans le cadre du contexte d'é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()— Extrait l'heure de la journée de la date et de l'heure

  • Opérateurs de comparaison : <,>,>=, ==

Restrictions absolues de date et de plage horaire

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 : autorisez les remboursements uniquement en janvier 2025.

Restrictions horaires récurrentes quotidiennes

Appliquez des politiques basées sur les heures récurrentes de la journée.

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 : autorisez les remboursements uniquement pendant les heures ouvrables (tous les jours de 9 h à 17 h UTC).

Restrictions de date et d'heure combinées

Combinez les dates absolues avec les 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 exprimées en UTC. Le moteur de politiques 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 basées sur le temps

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

Bonnes pratiques en matière de langage naturel

  • Soyez précis quant aux horaires : utilisez « de 9 h à 17 h UTC » au lieu de « heures ouvrables »

  • Spécifiez toujours UTC — Incluez « UTC » pour éviter toute ambiguïté

  • Utiliser le format ISO pour les dates — Utilisez « 2025-01-01 » au lieu de « 1er janvier »

  • Indiquez des plages horaires spécifiques — Évitez les termes vagues tels que « jour » ou « après les heures de bureau »

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"