내용으로 건너뛰기

Quick Suite에서 Athena를 데이터 소스로 사용할 때 “Access denied” 오류를 해결하려면 어떻게 해야 합니까?

5분 분량
0

Amazon Quick Suite 계정에서 Amazon Athena를 데이터 소스로 사용하려고 하면 “Access denied” 오류가 발생합니다.

간략한 설명

Amazon Quick Suite에서 Amazon Athena를 데이터 소스로 사용할 때 “Access denied” 오류가 발생할 수 있는 이유는 다음과 같습니다.

  • Amazon Simple Storage Service(Amazon S3) 버킷에 액세스하는 데 필요한 권한이 Quick Suite 계정에 없습니다.
  • 데이터 파일이 AWS Key Management Service(AWS KMS) 키로 암호화되어 있습니다.
  • 필요한 AWS Identity and Access Management(AWS IAM) 권한 정책이 할당되어 있지 않습니다.
  • Amazon S3 버킷이 존재하지 않습니다. 또는 데이터를 쿼리하는 데 사용되는 IAM 역할에 필요한 S3 권한이 없습니다.
  • AWS Organizations를 사용하는 Quick Suite 계정에 필요한 서비스 제어 정책(SCP)이 할당되어 있지 않습니다.
  • Quick Suite 사용자 또는 그룹에 Lake Formation을 사용하는 Athena 계정에 대한 AWS Lake Formation 권한이 없습니다.

참고: 문제 해결을 시작하기 전에, Athena에서 데이터에 액세스할 수 있는지 확인하십시오.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하는 경우, AWS CLI 오류 문제 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

S3 버킷에 Quick Suite 액세스 권한 부여

Quick Suite 계정에 Amazon S3 버킷에 액세스하는 데 필요한 권한이 없는 경우 다음과 같은 오류 메시지가 표시됩니다.

"An error has been thrown from AWS Athena client. Permission denied on S3 path:sourceErrorMessage: s3:/example bucket/object name"

이 오류를 해결하려면 Amazon S3 버킷에 대한 권한을 얻어야 합니다. 다음 단계를 완료하십시오.

  1. Quick Suite 콘솔을 엽니다.
  2. 애플리케이션 표시줄에서 사용자 이름을 선택한 다음 Quick Suite 관리를 선택합니다.
  3. 탐색 창의 권한에서 AWS 리소스를 선택합니다.
  4. AWS 서비스 목록에서 Amazon S3를 선택합니다.
  5. S3 버킷 선택을 선택한 다음 S3 버킷을 선택합니다.
  6. Athena Workgroup에 대한 쓰기 권한을 선택한 다음 마침을 선택합니다.
  7. 저장을 선택합니다.

KMS로 암호화된 데이터에 대한 Quick Suite 액세스 권한 부여

데이터 파일이 AWS KMS 키로 암호화된 경우 Amazon S3에서 데이터에 대한 액세스를 거부할 수 있습니다. 이 문제를 해결하려면 AWS CLI 또는 AWS KMS 콘솔을 사용하여 Quick Suite 서비스 역할에 AWS KMS 키에 대한 액세스 권한을 부여하십시오.

AWS CLI 사용

다음 단계를 완료하십시오.

  1. IAM 콘솔을 사용하여 Quick Sight 서비스 역할 ARN을 찾습니다.

  2. Amazon S3 콘솔을 사용하여 AWS KMS 키 ARN을 찾습니다.

  3. 데이터 파일을 포함하는 버킷으로 이동합니다.

  4. 개요 탭을 선택한 다음 KMS 키 ID를 찾습니다.

  5. KMS 키 정책에 Quick Suite 서비스 역할 ARN을 추가합니다.

  6. create-grant AWS CLI 명령을 실행합니다.

    aws kms create-grant --key-id aws_kms_key_arn --grantee-principal quicksight_role_arn --operations Decrypt
    

    참고: aws_kms_key_arn을 AWS KMS 키의 ARN으로, quicksight_role_arn을 Quick Suite 서비스 역할의 ARN으로 바꾸십시오.

AWS KMS 콘솔 사용

AWS KMS 키 정책에 Quick Suite 서비스 역할을 추가하려면 키 정책을 변경하십시오. 그런 다음 키 정책에 다음 권한을 추가합니다.

{     "Sid": "Allow use of the key",
     "Effect": "Allow",
     "Principal": {
         "AWS": [
              "arn:aws:iam::aws-account-id:role/service-role/aws-quicksight-service-role-v0",
              "arn:aws:iam::aws-account-id:role/service-role/aws-quicksight-s3-consumers-role-v0"
              ]
         },
         "Action": [
            "kms:Decrypt"
               ],
         "Resource": "*"
}

참고: 위의 정책에서는, 주체 섹션에 Quick Suite 서비스 역할의 ARN을 추가해야 합니다.

IAM 정책 할당 확인 및 업데이트

어떤 정책이 자신에게 할당되었는지 확인하고 해당 정책이 액세스를 제한하는지 확인하려면 다음 단계를 완료하십시오.

  1. Amazon Quick Suite 콘솔을 엽니다.
  2. 애플리케이션 표시줄에서 사용자 이름을 선택한 다음 Quick Suite 관리를 선택합니다.
  3. 탐색 창의 권한에서 IAM 정책 할당을 선택합니다.
  4. Athena에 액세스할 IAM 정책 할당이 있는지 확인합니다.
  5. 해당 정책이 Amazon S3 또는 Athena에 대한 액세스를 제한하지 않는지 확인합니다.

정책이 S3 또는 Athena에 대한 액세스를 제한하는 경우, Quick Suite 관리자에게 해당 정책을 변경하도록 요청하십시오. 자신이 관리자인 경우, IAM 정책 할당을 비활성화하고 S3 및 Athena 권한을 포함하도록 정책을 편집합니다. 자세한 내용은 IAM을 통한 AWS 서비스에 대한 세분화된 액세스 설정을 참조하십시오.

S3 버킷이 존재하고 올바른 권한이 있는지 확인

S3 버킷이 존재하지 않는 경우, 다음과 같은 오류 메시지가 표시됩니다. 또는, 데이터를 쿼리하는 데 사용한 IAM 역할에 필요한 S3 권한이 없는 경우:

"Unable to verify/create output bucket."

이 오류를 해결하려면 Athena에서 “Unable to verify/create output bucket” 오류를 해결하려면 어떻게 해야 합니까?를 참조하십시오.

버킷이 없는 경우 유효한 S3 버킷을 추가합니다. Quick Suite 콘솔의 AWS Services 목록에서 Amazon S3를 선택합니다. 그런 다음 쿼리 결과 위치에 사용되는 S3 버킷을 선택합니다.

서비스 제어 정책(SCP) 업데이트

조직 관리자에게 SCP 설정을 확인하여 자신에게 할당된 권한을 확인하도록 요청합니다. 조직 관리자인 경우, AWS Organizations를 사용하여 조직 정책 만들기를 참조하십시오.

Quick Suite 사용자에게 Lake Formation 권한 부여

Quick Suite 사용자 또는 그룹에 Lake Formation 권한이 없는 경우, 다음과 같은 오류 메시지가 표시됩니다.

"An error has been thrown from the AWS Athena client. Insufficient permissions to execute the query. Insufficient Lake Formation permission(s)."

이 오류를 해결하려면 Quick Suite에 Lake Formation 권한을 부여하십시오. 사용자가 Lake Formation 관리자여야 합니다.

다음 단계를 완료하십시오.

  1. Quick Suite 사용자 또는 그룹의 ARN을 찾습니다.

  2. 다음 AWS CLI 명령 중 하나를 실행합니다.

    describe-user

    aws quicksight describe-user  --user-name user_name  --aws-account-id account_id --namespace default
    

    -또는-

    describe-group

    aws quicksight describe-group --group-name group_name  --aws-account-id account_id --namespace default
    

    참고: 위의 명령에서 user_name을 사용자 이름으로, group_name을 그룹 이름으로, account_id를 계정 ID로 바꿉니다.

  3. Lake Formation 콘솔을 엽니다.

  4. 테이블을 선택합니다.

  5. 작업을 선택한 다음 권한을 선택합니다.

  6. 주체 목록에서 권한 부여를 선택합니다.

  7. SAML 및 Amazon Quick Sight 사용자 및 그룹에서 Quick Suite 사용자 또는 그룹 ARN을 입력합니다. 예를 들면 arn:aws:quicksight:region:accountId:user/namespace/username입니다.

  8. 올바른 데이터 소스를 선택한 다음 모든 테이블을 선택합니다. 테이블 권한은 선택 및 설명입니다.

  9. 권한 부여를 선택합니다.

권한을 부여한 다음 Quick Suite 콘솔로 돌아가 데이터세트를 다시 만들어 보십시오.

관련 정보

Amazon Quick Suite와 함께 Athena를 사용할 때 권한이 부족함

Amazon S3와 Amazon Athena에 대한 Amazon Quick Suite의 세분화된 액세스 제어 소개

AWS Lake Formation에서 Amazon Quick Stuie 작성자를 위한 세분화된 권한 활성화

댓글 없음