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

5분 분량
0

Amazon QuickSight 계정에서 Amazon Athena를 데이터 소스로 사용하려고 할 때 "Access denied" 오류가 발생합니다. 이 문제를 해결하려면 어떻게 해야 하나요?

간략한 설명

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

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

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

해결 방법

AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생할 경우 AWS CLI의 최신 버전을 사용하고 있는지 확인하십시오 .

QuickSight 계정에 Amazon S3 버킷에 액세스하는 데 필요한 권한이 없습니다.

다음과 유사한 오류가 발생합니다.

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

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

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

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

데이터 파일이 AWS KMS 키로 암호화된 경우, Amazon S3에서 데이터에 대한 액세스를 거부할 수 있습니다. 이 문제를 해결하려면 QuickSight 서비스 역할에 AWS KMS 키에 대한 액세스 권한을 부여하십시오. 다음 단계를 완료합니다.

AWS CLI 사용

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

2.    Amazon S3 콘솔을 사용하여 AWS KMS 키 ARN을 검색합니다.
데이터 파일이 포함된 버킷으로 이동합니다.
개요 탭을 선택하고 KMS 키 ID를 찾습니다.

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

4.    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 콘솔 사용

AWS KMS 키 정책에 QuickSight 서비스 역할을 추가하려면 키 정책 변경 방법에 대한 지침을 따르십시오. 그리고 다음의 권한 정책을 추가하여 키 정책을 편집합니다.

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

참고: aws_account_id를 사용자의 AWS 계정 ID로 바꿉니다.

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

필요한 IAM 권한 정책이 할당되지 않은 경우에도 액세스가 거부됨 오류를 수신할 수 있습니다. 할당된 정책을 확인하려면 다음 단계를 완료하십시오.

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

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

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

다음과 같은 오류가 발생합니다.

Unable to verify/create output bucket

위의 오류를 해결하려면 Amazon Athena의 "Unable to verify/create output bucket" 오류를 해결하려면 어떻게 해야 합니까?를 참조하십시오

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

필요한 SCP가 할당되지 않았습니다.

AWS Organizations를 사용하는 경우 필요한 SCPs가 할당되지 않았을 때 액세스가 거부됨 오류를 수신할 수 있습니다. AWS Organizations 관리자에게 SCP 설정을 확인하여 사용자에게 할당된 권한을 확인하도록 요청합니다. AWS Organizations 관리자인 경우 서비스 제어 정책 생성, 업데이트 및 삭제를 참조하십시오.

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

Lake Formation을 사용하는 Athena 계정의 경우 다음 오류가 발생할 수 있습니다.

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

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

다음 단계를 완료합니다.

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

다음 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로 바꿉니다.

2.    Lake Formation 콘솔을 엽니다.

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

4.    작업을 선택하고, 권한을 선택합니다.

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

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

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

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

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


관련 정보

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

Amazon QuickSight, 이제 Amazon S3 및 Amazon Athena에 대한 세분화된 액세스 제어 소개

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

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