View a markdown version of this page

Resource-based exemples de politiques pour Amazon Lex V2 - Amazon Lex

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.

Resource-based exemples de politiques pour Amazon Lex V2

Une politique basée sur les ressources est associée à une ressource, telle qu'un bot ou un alias de bot. Avec une politique basée sur les ressources, vous pouvez spécifier qui a accès à la ressource et les actions qu'il peut effectuer sur celle-ci. Par exemple, vous pouvez ajouter des politiques basées sur les ressources qui permettent à un utilisateur de modifier un bot spécifique ou d'autoriser un utilisateur à effectuer des opérations d'exécution sur un alias de bot spécifique.

Lorsque vous utilisez une politique basée sur les ressources, vous pouvez autoriser d'autres services AWS à accéder aux ressources de votre compte. Par exemple, vous pouvez autoriser Connect Customer à accéder à un bot Amazon Lex V2.

Pour savoir comment créer un bot ou un alias de bot, consultezUtilisation des robots Amazon Lex V2.

Utiliser la console pour spécifier une politique basée sur les ressources

Vous pouvez utiliser la console Amazon Lex V2 pour gérer les politiques basées sur les ressources pour vos robots et leurs alias. Vous entrez la structure JSON d'une politique et la console l'associe à la ressource. Si une politique est déjà associée à une ressource, vous pouvez utiliser la console pour afficher et modifier la politique.

Lorsque vous enregistrez une politique à l'aide de l'éditeur de règles, la console vérifie la syntaxe de la stratégie. Si la politique contient des erreurs, par exemple si un utilisateur n'existe pas ou si une action n'est pas prise en charge par la ressource, elle renvoie une erreur et n'enregistre pas la stratégie.

Ce qui suit montre l'éditeur de règles basé sur les ressources pour un bot dans la console. L'éditeur de règles pour un alias de bot est similaire.

L'éditeur de règles basé sur les ressources de la console Amazon Lex V2.
Pour ouvrir l'éditeur de règles pour un bot
  1. Connectez-vous à l'AWS Management Console et ouvrez la console Amazon Lex à l'adresse https://console.aws.amazon.com/lex/.

  2. Dans la liste des robots, choisissez le bot dont vous souhaitez modifier la politique.

  3. Dans la section Resource-based Politique, choisissez Modifier.

Pour ouvrir l'éditeur de règles pour un alias de bot
  1. Connectez-vous à l'AWS Management Console et ouvrez la console Amazon Lex à l'adresse https://console.aws.amazon.com/lex/.

  2. Dans la liste des robots, choisissez le robot qui contient l'alias que vous souhaitez modifier.

  3. Dans le menu de gauche, choisissez Alias, puis choisissez l'alias à modifier.

  4. Dans la section Resource-based Politique, choisissez Modifier.

Utiliser l'API pour spécifier une politique basée sur les ressources

Vous pouvez utiliser les opérations d'API pour gérer les politiques basées sur les ressources pour vos robots et leurs alias. Il existe des opérations pour créer, mettre à jour et supprimer des politiques.

CreateResourcePolicy

Ajoute une nouvelle politique de ressources avec les déclarations de politique spécifiées à un bot ou à un alias de bot.

CreateResourcePolicyStatement

Ajoute une nouvelle déclaration de politique de ressources à un bot ou à un alias de bot.

DeleteResourcePolicy

Supprime une politique de ressources d'un bot ou d'un alias de bot.

DeleteResourcePolicyStatement

Supprime une déclaration de politique en matière de ressources d'un bot ou d'un alias de bot.

DescribeResourcePolicy

Obtient une politique de ressources et la révision de la politique.

UpdateResourcePolicy

Remplace la politique de ressources existante pour un bot ou un alias de bot par une nouvelle.

Java

L'exemple suivant montre comment utiliser les opérations de stratégie basées sur les ressources pour gérer une stratégie basée sur les ressources.

/* * Create a new policy for the specified bot alias * that allows a role to invoke lex:UpdateBotAlias on it. * The created policy will have revision id 1. */ CreateResourcePolicyRequest createPolicyRequest = CreateResourcePolicyRequest.builder() .resourceArn("arn:aws:lex:Region:123456789012:bot-alias/MYBOTALIAS/TSTALIASID") .policy("{\"Version\": \"2012-10-17\",\"Statement\": [{\"Sid\": \"BotAliasEditor\",\"Effect\": \"Allow\",\"Principal\": {\"AWS\": \"arn:aws:iam::123456789012:role/BotAliasEditor\"},\"Action\": [\"lex:UpdateBotAlias\"],\"Resource\":[\"arn:aws:lex:Region:123456789012:bot-alias/MYBOTALIAS/TSTALIASID\"]]}") lexmodelsv2Client.createResourcePolicy(createPolicyRequest); /* * Overwrite the policy for the specified bot alias with a new policy. * Since no expectedRevisionId is provided, this request overwrites the current revision. * After this update, the revision id for the policy is 2. */ UpdateResourcePolicyRequest updatePolicyRequest = UpdateResourcePolicyRequest.builder() .resourceArn("arn:aws:lex:Region:123456789012:bot-alias/MYBOTALIAS/TSTALIASID") .policy("{\"Version\": \"2012-10-17\",\"Statement\": [{\"Sid\": \"BotAliasEditor\",\"Effect\": \"Deny\",\"Principal\": {\"AWS\": \"arn:aws:iam::123456789012:role/BotAliasEditor\"},\"Action\": [\"lex:UpdateBotAlias\"],\"Resource\":[\"arn:aws:lex:Region:123456789012:bot-alias/MYBOTALIAS/TSTALIASID\"]]}") lexmodelsv2Client.updateResourcePolicy(updatePolicyRequest); /* * Creates a statement in an existing policy for the specified bot alias * that allows a role to invoke lex:RecognizeText on it. * This request expects to update revision 2 of the policy. The request will fail * if the current revision of the policy is no longer revision 2. * After this request, the revision id for this policy will be 3. */ CreateResourcePolicyStatementRequest createStatementRequest = CreateResourcePolicyStatementRequest.builder() .resourceArn("arn:aws:lex:Region:123456789012:bot-alias/MYBOTALIAS/TSTALIASID") .effect("Allow") .principal(Principal.builder().arn("arn:aws:iam::123456789012:role/BotRunner").build()) .action("lex:RecognizeText") .statementId("BotRunnerStatement") .expectedRevisionId(2) .build(); lexmodelsv2Client.createResourcePolicyStatement(createStatementRequest); /* * Deletes a statement from an existing policy for the specified bot alias by statementId. * Since no expectedRevisionId is supplied, the request will remove the statement from * the current revision of the policy for the bot alias. * After this request, the revision id for this policy will be 4. */ DeleteResourcePolicyRequest deleteStatementRequest = DeleteResourcePolicyRequest.builder() .resourceArn("arn:aws:lex:Region:123456789012:bot-alias/MYBOTALIAS/TSTALIASID") .statementId("BotRunnerStatement") .build(); lexmodelsv2Client.deleteResourcePolicy(deleteStatementRequest); /* * Describe the current policy for the specified bot alias * It always returns the current revision. */ DescribeResourcePolicyRequest describePolicyRequest = DescribeResourcePolicyRequest.builder() .resourceArn("arn:aws:lex:Region:123456789012:bot-alias/MYBOTALIAS/TSTALIASID") .build(); lexmodelsv2Client.describeResourcePolicy(describePolicyRequest); /* * Delete the current policy for the specified bot alias * This request expects to delete revision 3 of the policy. Since the revision id for * this policy is already at 4, this request will fail. */ DeleteResourcePolicyRequest deletePolicyRequest = DeleteResourcePolicyRequest.builder() .resourceArn("arn:aws:lex:Region:123456789012:bot-alias/MYBOTALIAS/TSTALIASID") .expectedRevisionId(3); .build(); lexmodelsv2Client.deleteResourcePolicy(deletePolicyRequest);

Autoriser un rôle IAM à mettre à jour un bot et à répertorier les alias de bot

L'exemple suivant accorde l'autorisation à un rôle IAM spécifique d'appeler les opérations d'API de création de modèles Amazon Lex V2 afin de modifier un bot existant. L'utilisateur peut répertorier les alias d'un bot et le mettre à jour, mais ne peut pas supprimer le bot ou les alias de bot.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "botBuilders", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/BotBuilder" }, "Action": [ "lex:ListBotAliases", "lex:UpdateBot" ], "Resource": [ "arn:aws:lex:us-east-1:123456789012:bot/MYBOT" ] } ] }

Autoriser un utilisateur à avoir une conversation avec un bot

L'exemple suivant autorise un utilisateur spécifique à appeler les opérations de l'API d'exécution Amazon Lex V2 sur un seul alias de bot.

L'autorisation de mettre à jour ou de supprimer l'alias du bot est spécifiquement refusée à l'utilisateur.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "botRunners", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/botRunner" }, "Action": [ "lex:RecognizeText", "lex:RecognizeUtterance", "lex:StartConversation", "lex:DeleteSession", "lex:GetSession", "lex:PutSession" ], "Resource": [ "arn:aws:lex:us-east-1:123456789012:bot-alias/MYBOT/MYBOTALIAS" ] }, { "Sid": "botRunners", "Effect": "Deny", "Principal": { "AWS": "arn:aws:iam::123456789012:user/botRunner" }, "Action": [ "lex:UpdateBotAlias", "lex:DeleteBotAlias" ], "Resource": [ "arn:aws:lex:us-east-1:123456789012:bot-alias/MYBOT/MYBOTALIAS" ] } ] }

Autoriser un service AWS à utiliser un bot Amazon Lex V2 spécifique

L'exemple suivant autorise AWS Lambda et connecte le client à appeler les opérations de l'API d'exécution Amazon Lex V2.

Le bloc de conditions est obligatoire pour les principaux de service et doit utiliser les clés de contexte globales AWS:SourceAccount etAWS:SourceArn.

AWS:SourceAccountIl s'agit de l'identifiant du compte qui appelle le bot Amazon Lex V2.

AWS:SourceArnIl s'agit de l'ARN de ressource de l'instance de service client Connect ou de la fonction Lambda d'où provient l'appel à l'alias du bot Amazon Lex V2.