Politiques IAM pour les journaux de conversation - 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.

Politiques IAM pour les journaux de conversation

Selon le type de journalisation que vous sélectionnez, Amazon Lex V2 nécessite l'autorisation d'utiliser les compartiments Amazon CloudWatch Logs et Amazon Simple Storage Service (S3) pour stocker vos journaux. Vous devez créer des AWS Identity and Access Management rôles et des autorisations pour permettre à Amazon Lex V2 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'objets pour vos objets S3, vous devez accorder l'autorisation d'accès aux AWS KMS clés utilisées pour chiffrer les objets.

Vous pouvez utiliser la console IAM, l'API IAM ou le AWS Command Line Interface pour créer le rôle et les politiques. Ces instructions utilisent le AWS CLI pour créer le rôle et les politiques.

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 V2 en tant qu'entité de confiance au rôle. Cela permet à Amazon 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": "lexv2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. Dans le AWS 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 V2 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 le AWS 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 V2 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 le AWS 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 console AWS 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 des journaux de conversation doit être autorisé à transmettre le rôle à Amazon Lex V2. Pour permettre à l'utilisateur de transmettre le rôle à Amazon Lex V2, vous devez accorder l'PassRoleautorisation à l'utilisateur, au rôle ou au groupe IAM de l'utilisateur.

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 Management utilisateur.

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