Politiques IAM pour les journaux de conversation - Amazon Lex V1

Si vous utilisez Amazon Lex V2, consultez plutôt le guide Amazon Lex V2.

 

Si vous utilisez Amazon Lex V1, nous vous recommandons de mettre à niveau vos robots vers Amazon Lex V2. Nous n'ajoutons plus de nouvelles fonctionnalités à la V1 et recommandons vivement d'utiliser la V2 pour tous les nouveaux robots.

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.

Politiques IAM pour les journaux de conversation

Selon le type de journalisation que vous sélectionnez, Amazon Lex a besoin d'une autorisation pour utiliser les compartiments Amazon CloudWatch Logs et Amazon Simple Storage Service (S3) afin de stocker vos journaux. Vous devez créer des AWS Identity and Access Management rôles et des autorisations pour permettre à Amazon Lex d'accéder à ces ressources.

Création d'un rôle IAM et de stratégies pour les journaux de conversation

Pour activer les journaux de conversation, vous devez accorder une autorisation d'écriture à CloudWatch Logs et à Amazon S3. Si vous activez le chiffrement d'objet pour vos objets S3, vous devez accorder l'autorisation d'accès aux clés AWS KMS utilisées pour chiffrer les objets.

Vous pouvez utiliser l'IAMAWS Management Console, l'API IAM ou le AWS Command Line Interface pour créer le rôle et les politiques. Ces instructions utilisent l’AWS CLI pour créer le rôle et les stratégies. Pour plus d'informations sur la création de politiques avec la console, consultez la section Création de politiques dans l'onglet JSON du guide de l'utilisateur d'AWS Identity and Access Management.

Note

Le code suivant est formaté pour Linux et macOS. Sous Windows, remplacez le caractère de continuité de ligne Linux (\) par le caret (^).

Pour créer un rôle IAM pour les journaux de conversation
  1. Créez un document dans le répertoire courant appelé LexConversationLogsAssumeRolePolicyDocument.json, ajoutez-y le code suivant et enregistrez-le. Ce document de politique ajoute Amazon Lex en tant qu'entité de confiance au rôle. Cela permet à Lex d'assumer le rôle de fournir des journaux aux ressources configurées pour les journaux de conversation.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lex.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. Dans leAWS CLI, exécutez la commande suivante pour créer le rôle IAM pour les journaux de conversation.

    aws iam create-role \ --role-name role-name \ --assume-role-policy-document file://LexConversationLogsAssumeRolePolicyDocument.json

Ensuite, créez et associez une politique au rôle qui permet à Amazon Lex d'écrire dans CloudWatch Logs.

Pour créer une politique IAM pour enregistrer le texte d'une conversation dans Logs CloudWatch
  1. Créez un document dans le répertoire actuel appeléLexConversationLogsCloudWatchLogsPolicy.json, ajoutez-y la politique IAM suivante et enregistrez-le.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:region:account-id:log-group:log-group-name:*" } ] }
  2. Dans leAWS CLI, créez la politique IAM qui accorde l'autorisation d'écriture au groupe de CloudWatch journaux Logs.

    aws iam create-policy \ --policy-name cloudwatch-policy-name \ --policy-document file://LexConversationLogsCloudWatchLogsPolicy.json
  3. Associez la politique au rôle IAM que vous avez créé pour les journaux de conversation.

    aws iam attach-role-policy \ --policy-arn arn:aws:iam::account-id:policy/cloudwatch-policy-name \ --role-name role-name

Si vous enregistrez du son dans un compartiment S3, créez une politique permettant à Amazon Lex d'écrire dans le compartiment.

Pour créer une politique IAM pour la journalisation audio dans un compartiment S3
  1. Créez un document dans le répertoire courant appelé LexConversationLogsS3Policy.json, ajoutez la stratégie suivante et enregistrez-le.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::bucket-name/*" } ] }
  2. Dans leAWS CLI, créez la politique IAM qui accorde l'autorisation d'écriture à votre compartiment S3.

    aws iam create-policy \ --policy-name s3-policy-name \ --policy-document file://LexConversationLogsS3Policy.json
  3. Attachez la stratégie au rôle que vous avez créé pour les journaux de conversation.

    aws iam attach-role-policy \ --policy-arn arn:aws:iam::account-id:policy/s3-policy-name \ --role-name role-name

Octroi de l'autorisation de transmettre un rôle IAM

Lorsque vous utilisez la consoleAWS Command Line Interface, le ou un AWS SDK pour spécifier un rôle IAM à utiliser pour les journaux de conversation, l'utilisateur qui spécifie le rôle IAM dans les journaux de conversation doit être autorisé à transmettre le rôle à Amazon Lex. Pour permettre à l'utilisateur de transmettre le rôle à Amazon Lex, vous devez accorder PassRole l'autorisation à l'utilisateur, au rôle ou au groupe.

La stratégie suivante définit l'autorisation d'accorder à l'utilisateur, au rôle ou au groupe. Vous pouvez utiliser les clés de condition iam:PassedToService et iam:AssociatedResourceArn pour limiter la portée de l'autorisation. Pour plus d'informations, consultez la section Octroi à un utilisateur des autorisations pour transmettre un rôle à un AWS service et les clés contextuelles IAM et AWS STS Condition dans le guide de l'AWS Identity and Access Managementutilisateur.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::account-id:role/role-name", "Condition": { "StringEquals": { "iam:PassedToService": "lex.amazonaws.com" }, "StringLike": { "iam:AssociatedResourceARN": "arn:aws:lex:region:account-id:bot:bot-name:bot-alias" } } } ] }