대화 로그에 대한 IAM 정책 - Amazon Lex V1

Amazon Lex V2를 사용하는 경우 Amazon Lex V2 가이드를 대신 참조하십시오.

 

Amazon Lex V1을 사용하는 경우 봇을 Amazon Lex V2로 업그레이드하는하는 것이 좋습니다. 더 이상 V1에 새로운 기능을 추가하지 않으므로 모든 새 봇에 V2를 사용할 것을 강력히 권장합니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

대화 로그에 대한 IAM 정책

선택하는 로깅 유형에 따라, Amazon Lex는 Amazon CloudWatch Logs 및 S3(Amazon Simple Storage Service) 버킷을 사용해 로그를 보관할 권한이 필요합니다. 사용자는 AWS Identity and Access Management 역할 및 권한을 생성해 Amazon Lex가 이러한 리소스에 액세스할 수 있게 해야 합니다.

대화 로그에 대한 IAM 역할 및 정책 생성

대화 로그를 활성화하려면, CloudWatch Logs 및 Amazon S3 에 대한 쓰기 권한을 부여해야 합니다. S3 객체에 대해 객체 암호화를 활성화하는 경우 객체를 암호화하는 데 사용되는 AWS KMS 키에 대한 액세스 권한을 부여해야 합니다.

IAM AWS Management Console, IAM API 또는 AWS Command Line Interface를 사용하여 역할 및 정책을 생성할 수 있습니다. 이 지침은 AWS CLI를 사용하여 역할과 정책을 만듭니다. 콘솔을 사용한 정책 생성에 대한 자세한 내용은 AWS Identity and Access Management 사용 설명서JSON 탭에 정책 생성을 참조하세요.

참고

다음 코드는 Linux 및 MacOS 용으로 형식이 지정됩니다. Windows의 경우 Linux 줄 연속 문자(\)를 캐럿(^)으로 바꿉니다.

대화 로그에 대한 IAM 역할 을 만들려면
  1. LexConversationLogsAssumeRolePolicyDocument.json이라는 현재 디렉터리에 문서를 만들고 다음 코드를 추가한 다음 저장합니다. 이 정책 문서는 Amazon Lex를 역할에 대한 신뢰할 수 있는 엔터티로써 추가합니다. 이를 통해 Lex는 대화 로그를 위해 구성된 리소스로 로그를 전달하기 위한 역할을 맡을 수 있습니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lex.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. AWS CLI에서 다음 명령을 실행하여 대화 로그에 대한 IAM 역할을 만듭니다.

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

그런 다음 Amazon Lex가 CloudWatch Logs 에 쓸 수 있도록 하는 정책을 만들어 역할에 연결합니다.

대화 텍스트를 CloudWatch Logs 에 로깅하기 위한 IAM 정책 을 만들려면
  1. LexConversationLogsCloudWatchLogsPolicy.json이라는 현재 디렉터리에 문서를 만들고 다음 IAM 정책 을 추가한 다음 저장합니다.

    { "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. AWS CLI 에서 CloudWatch Logs 그룹에 대한 쓰기 권한을 부여하는 IAM 정책을 만듭니다.

    aws iam create-policy \ --policy-name cloudwatch-policy-name \ --policy-document file://LexConversationLogsCloudWatchLogsPolicy.json
  3. 대화 로그에 대해 생성한 IAM 역할 에 정책을 연결합니다.

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

S3 버킷에 오디오를 로깅하는 경우 Amazon Lex가 버킷에 쓸 수 있도록 허용하는 정책을 생성합니다.

S3 버킷에 오디오를 로깅하기 위한 IAM 정책을 만들려면
  1. LexConversationLogsS3Policy.json이라는 현재 디렉터리에 문서를 만들고 다음의 정책을 추가한 후 저장합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::bucket-name/*" } ] }
  2. AWS CLI에서 S3 버킷에 대한 쓰기 권한을 부여하는 IAM 정책을 생성합니다.

    aws iam create-policy \ --policy-name s3-policy-name \ --policy-document file://LexConversationLogsS3Policy.json
  3. 대화 로그에 대해 생성한 역할에 정책을 연결합니다.

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

IAM 역할 전달 권한 부여

콘솔, AWS Command Line Interface 또는 AWSSDK을 사용해 대화 로그 사용을 위한 IAM 역할 을 지정할 경우, 대화 로그 IAM 역할을 지정하는 사용자는 역할을 Amazon Lex에 전달하는 권한이 있어야 합니다. 사용자가 역할을 Amazon Lex에 전달하도록 하려면 사용자, 역할 또는 그룹에 PassRole 권한을 부여해야 합니다.

다음 정책은 사용자, 역할 또는 그룹에게 부여할 권한을 정의합니다. iam:AssociatedResourceArniam:PassedToService 조건 키를 사용해 권한 범위를 제한할 수 있습니다. 자세한 내용은 AWS서비스에 역할을 전달하기 위한 사용자 권한 부여IAM 및 AWS STS조건 컨텍스트 키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" } } } ] }