Políticas de IAM para registros de conversación - Amazon Lex V1

Si utiliza Amazon Lex V2, consulte la guía de Amazon Lex V2.

 

Si utiliza Amazon Lex V1, le recomendamos que actualice los bots a Amazon Lex V2. Hemos dejado de agregar nuevas características a V1, por lo que recomendamos encarecidamente utilizar V2 para todos los nuevos bots.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Políticas de IAM para registros de conversación

En función del tipo de registro que seleccione, Amazon Lex requiere permiso para usar Registros de Amazon CloudWatch y los buckets de Amazon Simple Storage Service (S3) para almacenar los registros. Debe crear roles y permisos de AWS Identity and Access Management para permitir a Amazon Lex el acceso a estos recursos.

Creación de un rol de IAM y políticas para registros de conversación

Para habilitar los registros de conversaciones, debe conceder permiso de escritura para Registros de CloudWatch y Amazon S3. Si habilita el cifrado de objetos para los objetos de S3, tiene que conceder permiso de acceso a las claves de AWS KMS utilizadas para cifrar los objetos.

Puede usar la AWS Management Console de IAM, la API de IAM o la AWS Command Line Interface para crear el rol y las políticas. Estas instrucciones utilizan la AWS CLI para crear el rol y las políticas. Para obtener información acerca de la creación de políticas con la consola, consulte Creación de políticas en la pestaña JSON en la Guía del usuario de AWS Identity and Access Management.

nota

El siguiente código tiene formato para Linux y MacOS. Para Windows, reemplace el carácter de continuación de línea de Linux (\) por un signo de intercalación (^).

Crear un rol de IAM para los registros de conversación
  1. Cree un documento en el directorio actual llamado LexConversationLogsAssumeRolePolicyDocument.json, agregue el código siguiente y guárdelo. En este documento de política se agrega a Amazon Lex como entidad de confianza para el rol. Esto permite a Lex asumir el rol para entregar registros a los recursos configurados para registros de conversación.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lex.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. En la AWS CLI, ejecute el siguiente comando para crear el rol de IAM para los registros de conversación.

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

A continuación, cree y asocie una política al rol que permite a Amazon Lex escribir en Registros de CloudWatch.

Creación de una política de IAM para registrar texto de conversación en Registros de CloudWatch
  1. Cree un documento en el directorio actual llamado LexConversationLogsCloudWatchLogsPolicy.json, agregue la siguiente política de IAM y guárdelo.

    { "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. En la AWS CLI, cree la política de IAM que concede permiso de escritura al grupo de registro de Registros de CloudWatch.

    aws iam create-policy \ --policy-name cloudwatch-policy-name \ --policy-document file://LexConversationLogsCloudWatchLogsPolicy.json
  3. Asocie la política al rol de IAM que creó para los registros de conversación.

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

Si está registrando audio en un bucket de S3, cree una política que permita a Amazon Lex escribir en el bucket.

Crear una política de IAM para el registro de audio en un bucket de S3
  1. Cree un documento en el directorio actual llamado LexConversationLogsS3Policy.json, agregue la siguiente política y guárdelo.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::bucket-name/*" } ] }
  2. En la AWS CLI, cree la política de IAM que concede permiso de escritura a su bucket de S3.

    aws iam create-policy \ --policy-name s3-policy-name \ --policy-document file://LexConversationLogsS3Policy.json
  3. Asocie la política al rol que creó para los registros de conversación.

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

Conceder permisos para pasar un rol de IAM

Cuando se utiliza la consola, la AWS Command Line Interface o un SDK de AWS para especificar un rol de IAM que se va a utilizar para los registros de conversaciones, el usuario que especifique el rol de IAM para los registros de conversación debe tener permiso para pasar el rol a Amazon Lex. Para permitir que el usuario pase el rol a Amazon Lex, debe conceder el permiso PassRole al usuario, rol o grupo.

La política siguiente define el permiso para conceder al usuario, rol o grupo. Puede utilizar las claves de condición iam:AssociatedResourceArn y iam:PassedToService para limitar el alcance del permiso. Para obtener más información, consulte Concesión de permisos de usuario para pasar un rol a un servicio de AWS y Claves de contexto de condición de AWS STS en la Guía del usuario de AWS Identity and Access Management.

{ "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" } } } ] }