

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
<a name="conversation-logs-policies"></a>

Según el tipo de registro que seleccione, Amazon Lex V2 necesitará permiso para usar Amazon CloudWatch Logs y los depósitos de Amazon Simple Storage Service (S3) para almacenar sus registros. Debe crear funciones y permisos de AWS Identity and Access Management para que Amazon Lex V2 pueda acceder a estos recursos. 

## Crear un rol de IAM y políticas para registros de conversación
<a name="conversation-logs-role-and-policy"></a>

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

Puede utilizar la consola de IAM, la API de IAM o la AWS Command Line Interface para crear el rol y las políticas. Estas instrucciones utilizan la CLI de AWS para crear el rol y las políticas.

**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 V2 como entidad de confianza para el rol. Esto permite que Amazon Lex V2 asuma la función de entregar registros a los recursos configurados para los registros de conversaciones.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "lexv2.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1. En la AWS CLI, ejecute el siguiente comando para crear el rol de IAM para los registros de conversaciones.

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

A continuación, cree y adjunte una política al rol que permita a Amazon Lex V2 escribir en CloudWatch los registros. 

**Para crear una política de IAM para registrar el texto de una conversación en Logs CloudWatch**

1. Cree un documento en el directorio actual llamado **LexConversationLogsCloudWatchLogsPolicy.json**, agregue la siguiente política de IAM y guárdelo.

1. En la AWS CLI, cree la política de IAM que concede permisos de escritura al grupo de CloudWatch registros Logs.

   ```
   aws iam create-policy \
       --policy-name {{cloudwatch-policy-name}} \
       --policy-document file://LexConversationLogsCloudWatchLogsPolicy.json
   ```

1. 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 V2 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.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
         {
             "Effect": "Allow",
             "Action": [
                 "s3:PutObject"
             ],
             "Resource": "arn:aws:s3:::{{bucket-name}}/*"
         }
     ]
   }
   ```

------

1. En la AWS CLI, cree la política de IAM que conceda permisos de escritura a su bucket de S3.

   ```
   aws iam create-policy \
       --policy-name {{s3-policy-name}} \
       --policy-document file://LexConversationLogsS3Policy.json
   ```

1. 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
<a name="conversation-logs-pass-role"></a>

Si utiliza la consola AWS Command Line Interface, el o un SDK de AWS para especificar una función de IAM que se va a utilizar en los registros de conversaciones, el usuario que especifique la función de IAM de los registros de conversaciones debe tener permiso para transferir la función a Amazon Lex V2. Para permitir que el usuario pase el rol a Amazon Lex V2, debe conceder permiso `PassRole` al usuario, rol o grupo de IAM del usuario. 

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 [Otorgar permisos a un usuario para transferir un rol a un servicio de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) y a un [IAM y claves de contexto de AWS STS condición](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html) en la *Guía del usuario de AWS Identity and Access Management*.

------
#### [ JSON ]

****  

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

------