View a markdown version of this page

Rédaction de politiques en langage naturel - Base rocheuse de l'Amazonie AgentCore

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.

Rédaction de politiques en langage naturel

Policy in AgentCore sélectionnera automatiquement la région optimale de votre zone géographique pour traiter vos demandes d'inférence effectuées via le service de création de politiques. Cela maximise les ressources de calcul disponibles, la disponibilité des modèles et offre la meilleure expérience client. Vos données ne seront stockées que dans la région d'origine de la demande, mais les demandes de saisie et les résultats de sortie peuvent être traités en dehors de cette région. Toutes les données sont transmises chiffrées sur l’ensemble du réseau sécurisé d’Amazon.

Policy in AgentCore acheminera en toute sécurité vos demandes d'inférence vers les ressources de calcul disponibles dans la zone géographique d'origine de la demande, comme suit :

  • Les demandes d'inférence provenant de l'Union européenne seront traitées au sein de l'Union européenne.

  • Les demandes d'inférence provenant des États-Unis seront traitées aux États-Unis.

  • Les demandes d'inférence provenant de l'APAC seront traitées dans la région APAC.

Vue d’ensemble

Cedar fournit un contrôle d'accès précis, mais nécessite l'apprentissage de la syntaxe formelle. NL2Cedar vous permet de :

  1. Rédiger les exigences d'autorisation en langage naturel

  2. Convertir automatiquement en syntaxe Cedar

  3. Vérifiez que les politiques générées correspondent à vos besoins

Note

La génération de politiques en langage naturel nécessite le déploiement d'une AgentCore passerelle et d'un moteur de politiques. Le service utilise le schéma AgentCore Gateway pour générer des politiques Cedar valides. Consultez la section Mise en route avec Policy in AgentCore pour obtenir des instructions de configuration.

Note

Le langage naturel est flexible, mais la précision est essentielle à la sécurité. Les politiques doivent être claires et sans ambiguïté.

Exemple

La politique de remboursement de la section précédente peut être exprimée en langage naturel :

Langage naturel :

Autoriser le principal dont le nom d'utilisateur est « agent de remboursement » à traiter les remboursements lorsque le montant du remboursement est inférieur à 500$.

Se transforme en cèdre :

permit( principal is AgentCore::OAuthUser, action == AgentCore::Action::"RefundTool___process_refund", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/refund-gateway" ) when { principal.hasTag("username") && principal.getTag("username") == "refund-agent" && context.input.amount < 500 };

Effets politiques

Les politiques d'autorisation ont deux effets possibles : autoriser et interdire.

Politiques relatives aux permis

Les politiques d'autorisation spécifient ce que les utilisateurs peuvent faire :

  • « Autoriser l'agent de remboursement de l'utilisateur à traiter les remboursements »

  • « Autoriser les utilisateurs ayant le rôle de directeur à approuver les décisions »

  • « Autoriser les utilisateurs avec scope admin:write à mettre à jour la couverture »

Politiques d'interdiction

Les politiques d'interdiction spécifient ce que les utilisateurs ne peuvent pas faire :

  • « Empêcher les utilisateurs d'accéder à des modèles à haute sensibilité »

  • « Empêcher les souscripteurs juniors d'approuver les décisions »

  • « Interdire aux utilisateurs de procéder à des remboursements lorsque la validation des risques est en attente »

Sémantique des autorisations

Il est essentiel de comprendre comment Cedar évalue les politiques pour rédiger des règles d'autorisation efficaces. Le cèdre suit trois principes fondamentaux :

  • Par défaut, tout est refusé. Si aucune politique n'autorise explicitement une action, celle-ci est automatiquement bloquée

  • Interdire gagne toujours - Si l'une des règles d'interdiction correspond, l'accès est refusé même si les politiques d'autorisation correspondent également

  • Au moins un permis est requis - Pour que l'accès soit accordé, au moins une politique d'autorisation doit correspondre ET aucune politique d'interdiction ne doit correspondre

Pourquoi utiliser des politiques d'interdiction si tout est refusé par défaut ?

Les politiques d'interdiction garantissent que des actions spécifiques ne peuvent pas être autorisées par erreur. Même si quelqu'un rédige une politique d'autorisation plus large, la politique d'interdiction prévaut et bloque l'accès.

Exemple de scénario :

// Broad permit policy - allows all users to view model results permit( principal is AgentCore::OAuthUser, action == AgentCore::Action::"ModelAPI___view_results", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/model" ); // Forbid policy - blocks access to high-sensitivity results forbid( principal is AgentCore::OAuthUser, action == AgentCore::Action::"ModelAPI___view_results", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/model" ) when { context.input.sensitivity == "high" };

Résultat : les utilisateurs peuvent afficher les résultats de sensibilité faible et moyenne (l'autorisation s'applique), mais les résultats de sensibilité élevée sont toujours bloqués (interdiction de gagner).

Utilisez des politiques d'interdiction pour :

  • Restrictions de sécurité explicites qui ne doivent jamais être contournées

  • Exigences de conformité

  • Arrêts d'urgence

  • Création d'exceptions à des politiques d'autorisation plus générales

Éléments de stratégie

Les politiques d'autorisation nécessitent trois éléments clés :

  1. Qui  : quels utilisateurs ou quels rôles peuvent effectuer l'action

  2. Quoi  ? Quelles opérations ou quels outils peuvent-ils utiliser

  3. Quand - Dans quelles conditions ou contraintes

Spécification principale

Le principal identifie les utilisateurs, les rôles ou les groupes auxquels la politique s'applique.

Expressions flexibles :

  • « Autoriser l'agent de remboursement de l'utilisateur à... »

  • « Autoriser les utilisateurs dont le nom d'utilisateur rembourd-agent est autorisé à... »

  • « Les utilisateurs ayant le rôle d'agent d'assurance peuvent... »

  • « Toute personne ayant la portée de remboursement:write est autorisée à... »

  • « Tous les utilisateurs peuvent... »

Soyez précis en ce qui concerne l'identité :

Incomplet : ❌ « Autoriser le traitement des remboursements inférieurs à 500$ »

Complet : ✓ « Autoriser l'agent de remboursement à traiter les remboursements inférieurs à 500$ »

Spécification de l'action

Le « quoi » identifie les opérations, les outils ou les actions contrôlés par la politique.

Verbes d'action flexibles :

  • « Autoriser les utilisateurs à traiter les remboursements »

  • « Autoriser le traitement des remboursements »

  • « Les utilisateurs peuvent créer des applications »

  • « Autoriser l'affichage des journaux d'audit »

Soyez précis à propos de l'outil :

Vague : ❌ « Autoriser les utilisateurs à accéder aux modèles »

Effacer : ✓ « Autoriser l'équipe chargée de la science des données à accéder au modèle analytique »

Spécification de l'état

Le « quand » indique dans quelles circonstances la politique s'applique.

Expressions conditionnelles flexibles :

  • «... lorsque le montant est inférieur à 500$ »

  • «... si la région est située aux États-Unis, en Californie ou au Royaume-Uni »

  • «... uniquement lorsque le statut d'approbation est approuvé par le responsable »

  • «... à condition que le score de risque ait été soumis »

Soyez précis en ce qui concerne les conditions :

Vague : ❌ « Autoriser les virements lorsque le montant est raisonnable »

Précis : ✓ « Autoriser les virements lorsque le montant est inférieur à 10 000$ »

Exemples de politiques

Les exemples suivants montrent comment structurer des politiques en matière de langage naturel avec des principes, des actions et des conditions clairs.

Exemple 1 : User-Based politique simple

Autorisez l'agent de remboursement de l'utilisateur à traiter les remboursements lorsque le montant est inférieur à 500$.

Éléments :

  • Qui : agent de remboursement des utilisateurs

  • Quoi : traiter les remboursements

  • Quand : le montant est inférieur à 500$

Exemple 2 : Role-Based avec plusieurs conditions

Autorisez les utilisateurs ayant le rôle d'agent d'assurance à mettre à jour la couverture lorsque le type de couverture est responsabilité ou collision et que la police est active.

Éléments :

  • Qui : utilisateurs ayant le rôle d'agent d'assurance

  • Quoi : mettre à jour la couverture

  • Quand : le type de couverture est responsabilité civile ou collision ET la police est active

Exemple 3 : Scope-Based Accès

Autorisez les utilisateurs de scope travel:book à créer des réservations de vol lorsque la région n'est pas l'UE et que le produit est éligible.

Éléments :

  • Qui : utilisateurs avec scope travel:book

  • Quoi : créer des réservations de vol

  • Quand : la région n'est pas membre de l'UE ET le produit est éligible

Exemple 4 : Toutes les personnes soumises à des contraintes

Autorisez tous les utilisateurs à consulter les résultats du modèle lorsque la sensibilité des données est faible ou moyenne et que le type de résultat est le score de risque.

Éléments :

  • Qui : tous les utilisateurs

  • Quoi : voir les résultats du modèle

  • Quand : la sensibilité des données est faible ou moyenne ET le type de résultat est le score de risque

Syntaxe des conditions

C'est dans ces conditions que les politiques deviennent souvent ambiguës. Voici comment rédiger des conditions claires et vérifiables.

Comparaisons numériques

De bons exemples :

  • « lorsque le montant est inférieur à 500$ »

  • « lorsque le montant de la couverture est inférieur à 5 millions »

  • « lorsque la réclamation dépasse 10 000 000$ »

  • « quand le nombre de passagers est exactement de 2 »

Évitez les termes vagues :

  • ❌ « quand la quantité est faible »

  • ❌ « lorsque la couverture est élevée »

Correspondance de chaînes

Correspondance exacte :

  • « quand la région, c'est les États-Unis »

  • « lorsque le mode de paiement est la carte de crédit »

  • « lorsque le statut est approuvé »

Plusieurs options :

  • « lorsque la région est située aux États-Unis, en Californie ou au Royaume-Uni »

  • « lorsque le type de décision est d'approuver ou de renvoyer »

Correspondance des motifs :

  • « lorsque l'e-mail contient @example .com »

  • « lorsque la portée contient admin:write »

Négation :

  • « quand la région n'est pas membre de l'UE »

  • « lorsque le classement n'est pas restreint »

Conditions booléennes

Contrôles directs :

  • « quand le produit est éligible »

  • « lorsque le score de risque est soumis »

  • « lorsque la livraison express est demandée »

Négation :

  • « lorsque le produit n'est pas éligible »

  • « lorsque le score de risque n'est pas soumis »

Existence sur le terrain

Champs obligatoires :

  • « lorsqu'une raison est fournie »

  • « lorsqu'un identifiant d'application existe »

  • « lorsque la date de retour est spécifiée »

Combiner les conditions

Les véritables politiques nécessitent souvent de multiples conditions. Utilisez des connecteurs logiques clairs.

ET logique (tout doit être vrai)

Utilisez des mots tels que : « et », « également », « en plus », « pendant », « avec »

Exemple :

Autorisez les candidatures lorsque la région est située aux États-Unis, que le produit est éligible et que le territoire est actif.

OU Logique (au moins une doit être vraie)

Utilisez des mots tels que : « ou », « alternativement », « soit »

Exemple :

Autorisez l'approbation lorsque la réclamation dépasse 10 000 000$ ou que le niveau de risque est élevé ou critique.

Logique complexe

Pour les conditions complexes, utilisez une structure claire :

Exemple :

Autoriser la finalisation lorsque l'étape du flux de travail est terminée ou approuvée, que le statut de conformité est passé et que l'autorité est le responsable ou le directeur.

Pièges courants

Évitez ces erreurs courantes lors de la rédaction de politiques en langage naturel afin de vous assurer qu'elles sont correctement converties en syntaxe Cedar.

Erreur 1 : principes vagues

Mauvais : « Autoriser l'accès à l'outil de remboursement »

Bien : « Autoriser l'agent de remboursement de l'utilisateur à accéder à l'outil de remboursement »

Erreur 2 : actions ambiguës

Mauvais : « Autoriser les utilisateurs à accéder aux données »

Bien : « Autoriser les utilisateurs à consulter les dossiers des patients »

Erreur 3 : conditions subjectives

Mauvais : « Autoriser les transferts lorsque le montant est raisonnable »

Bien : « Autoriser les virements lorsque le montant est inférieur à 10 000$ »

Erreur 4 : Conditions manquantes

Mauvais : « Autoriser les utilisateurs avec scope admin:write à mettre à jour la couverture »

Bien : « Autoriser les utilisateurs ayant scope admin:write à mettre à jour la couverture lorsque la police est active et que le type de couverture est responsabilité ou collision »

Erreur 5 : logique peu claire

Mauvais : « Autoriser quand A ou B et C »

Bien : « Autoriser quand (A ou B) et C » ou « Autoriser quand A ou (B et C) »