Quicksight에서 Athena를 데이터 소스로 사용할 때 "액세스 거부" 오류를 해결하려면 어떻게 해야 하나요?

5분 분량
0

Amazon QuickSight 계정에서 Amazon Athena를 데이터 소스로 사용하려고 하면 "액세스 거부" 오류가 발생합니다.

간략한 설명

Amazon QuickSight에서 Amazon Athena를 데이터 소스로 사용할 때 액세스 거부 오류가 발생하는 일반적인 이유는 다음과 같습니다.

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

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

해결 방법

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

QuickSight 계정에 Amazon S3 버킷에 액세스하는 데 필요한 권한 없음

다음과 비슷한 오류가 발생합니다.

"AWS Athena 클라이언트에서 오류가 발생했습니다. S3 path:sourceErrorMessage: s3:/example bucket/object 이름에서 권한이 거부되었습니다."

S3 버킷에 대한 권한을 얻으려면 다음 단계를 완료하세요.

  1. Amazon QuickSight 콘솔을 엽니다.
  2. QuickSight 관리를 선택합니다.
  3. 보안 및 권한을 선택합니다.
  4. AWS 서비스에 대한 QuickSight 액세스에서 관리를 선택합니다.
  5. AWS 서비스 목록에서 Amazon S3를 선택합니다.
  6. S3 버킷 선택을 선택한 다음 S3 버킷을 선택합니다.
  7. Athena Workgroup에 대한 쓰기 권한을 선택한 다음 마침을 선택합니다.
  8. 저장을 선택합니다.

데이터 파일이 AWS KMS 키로 암호화됨

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

AWS CLI 사용

다음 단계를 완료합니다.

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

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

  3. 데이터 파일이 들어 있는 버킷으로 이동합니다.

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

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

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

    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을 QuickSight 서비스 역할의 ARN으로 바꾸세요.

AWS KMS 콘솔 사용

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

{     "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": "*"
}

참고: 위 정책에서는 Principal 섹션에 QuickSight 서비스 역할에 대한 ARN을 추가해야 합니다.

필요한 IAM 권한 정책이 할당되어 있지 않음

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

  1. Amazon QuickSight 콘솔을 엽니다.
  2. QuickSight 관리를 선택합니다.
  3. 보안 및 권한을 선택합니다.
  4. IAM 정책 할당을 선택합니다.
  5. Athena에 액세스하기 위한 IAM 정책 할당이 있는지 확인합니다.
  6. 정책이 S3 또는 Athena에 대한 액세스를 제한하지 않는지 확인합니다.

정책에 따라 S3 또는 Athena에 대한 액세스가 제한되는 경우 QuickSight 관리자에게 정책 변경을 요청합니다. 관리자는 IAM 정책 할당을 비활성화하고 S3 및 Athena 권한을 포함하도록 정책을 편집합니다. 자세한 내용은 ](https://docs.aws.amazon.com/quicksight/latest/user/scoping-policies-iam-interface.html)IAM을 통한 AWS 서비스에 대한 세분화된 액세스 설정[을 참조하세요.

S3 버킷이 존재하지 않습니다. 또는 데이터를 쿼리하는 데 사용되는 IAM 역할에 필요한 S3 권한 없음

다음 오류가 발생한다고 가정합니다.

"출력 버킷을 확인/생성할 수 없습니다."

위 오류를 해결하려면 Amazon Athena의 "출력 버킷을 확인/생성할 수 없음" 오류를 해결하려면 어떻게 해야 하나요?를 참조하세요.

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

필요한 SCP가 할당되지 않음(조직)

조직 관리자에게 SCP 설정을 확인하여 자신에게 할당된 권한을 확인하도록 요청합니다. 조직 관리자는 서비스 제어 정책의 생성, 업데이트, 삭제를 참조하세요.

QuickSight 사용자 또는 그룹에 Lake Formation 권한 없음

Lake Formation을 사용하는 Athena 계정에서 다음과 같은 오류가 발생할 수 있습니다.

"AWS Athena 클라이언트에서 오류가 발생했습니다. 쿼리를 실행할 권한이 부족합니다. Lake Formation 권한이 부족합니다."

QuickSight에 Lake Formation 권한을 부여하려면 Lake Formation 관리자여야 합니다.

다음 단계를 완료합니다.

  1. QuickSight 사용자 또는 그룹의 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. Principals 목록에서 허용을 선택합니다.

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

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

  9. 허용을 선택합니다.

권한을 부여한 후 QuickSight 콘솔로 돌아가 데이터세트를 다시 생성해 보세요.

관련 정보

Amazon QuickSight와 함께 Athena를 사용할 때 권한이 충분하지 않음

Amazon S3와 Amazon Athena에 대한 Amazon QuickSight의 세밀한 액세스 제어 소개

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

AWS 공식
AWS 공식업데이트됨 일 년 전
댓글 없음

관련 콘텐츠