Políticas do IAM para logs de conversa - Amazon Lex V1

Se você estiver usando o Amazon Lex V2, consulte o Guia do Amazon Lex V2.

 

Se você estiver usando o Amazon Lex V1, recomendamos atualizar seus bots para o Amazon Lex V2. Não estamos mais adicionando novos atributos à V1 e recomendamos o uso da V2 para todos os novos bots.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Políticas do IAM para logs de conversa

Dependendo do tipo de criação de log selecionado, o Amazon Lex requer permissão para usar o Amazon CloudWatch Logs e buckets do Amazon Simple Storage Service (S3) para armazenar os logs. É necessário criar permissões e perfis do AWS Identity and Access Management para permitir que o Amazon Lex acesse esses atributos.

Criar um perfil e políticas do IAM para logs de conversa

Para habilitar logs de conversa, é necessário conceder permissão de gravação para o CloudWatch Logs e o Amazon S3. Se você habilitar a criptografia de objeto para seus objetos do S3, deverá conceder permissão de acesso às chaves do AWS KMS usadas para criptografar os objetos.

É possível usar o AWS Management Console do IAM, a API do IAM ou a AWS Command Line Interface para criar o perfil e as políticas. Essas instruções usam a AWS CLI para criar o perfil e as políticas. Para obter informações sobre como criar uma política com o console, consulte Criar políticas na guia JSON no Guia do usuário do AWS Identity and Access Management.

nota

O código a seguir é formatado para Linux e MacOS. Para Windows, substitua o caractere de continuação de linha do Linux (\) pelo circunflexo (^).

Para criar um perfil do IAM para logs de conversa
  1. Crie um documento no diretório atual chamado LexConversationLogsAssumeRolePolicyDocument.json, adicione o código a seguir a ele e salve-o. Esse documento de política adiciona o Amazon Lex como uma entidade confiável ao perfil. Isso permite que o Lex assuma o perfil para entregar logs aos recursos configurados para logs de conversa.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lex.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. Na AWS CLI, execute o comando a seguir para criar o perfil do IAM para logs de conversa.

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

Depois, crie e associe uma política ao perfil que permita ao Amazon Lex gravar no CloudWatch Logs.

Como criar uma política do IAM para criar logs de texto da conversa no CloudWatch Logs
  1. Crie um documento no diretório atual chamado LexConversationLogsCloudWatchLogsPolicy.json, adicione a ele a política do IAM a seguir e salve-o.

    { "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. Na AWS CLI, crie a política do IAM que concede permissão de gravação ao grupo de logs do CloudWatch Logs.

    aws iam create-policy \ --policy-name cloudwatch-policy-name \ --policy-document file://LexConversationLogsCloudWatchLogsPolicy.json
  3. Associe a política ao perfil do IAM criada para logs de conversa.

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

Se você estiver criando logs de áudio em um bucket do S3, crie uma política que permita ao Amazon Lex gravar no bucket.

Como criar uma política do IAM para criar logs de áudio em um bucket do S3
  1. Crie um documento no diretório atual chamado LexConversationLogsS3Policy.json, adicione a ele a política a seguir e salve-o.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::bucket-name/*" } ] }
  2. Na AWS CLI, crie a política do IAM que concede permissão de gravação ao bucket do S3.

    aws iam create-policy \ --policy-name s3-policy-name \ --policy-document file://LexConversationLogsS3Policy.json
  3. Associe a política ao perfil criado para logs de conversa.

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

Conceder permissão para passar um perfil do IAM

Quando você usa o console, o AWS Command Line Interface ou um SDK do AWS para especificar um perfil do IAM que será usado para logs de conversa, o usuário que especifica o perfil do IAM dos logs de conversa deve ter permissão para passar o perfil ao Amazon Lex. Para permitir que o usuário passe o perfil ao Amazon Lex, é necessário conceder a permissão de PassRole ao usuário, ao perfil ou ao grupo.

A política a seguir define a permissão que será concedida ao usuário, ao perfil ou ao grupo. É possível usar as chaves de condição iam:AssociatedResourceArn e iam:PassedToService para limitar o escopo da permissão. Para obter mais informações, consulte Conceder permissões a um usuário para passar um perfil a um serviço do AWS e Chaves de contexto de condição do IAM e do AWS STS no Guia do usuário do 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" } } } ] }