Amazon QuickSight에서 다른 계정의 Amazon S3 버킷으로 크로스 계정 액세스를 설정하려면 어떻게 해야 합니까?

4분 분량
0

다른 계정의 Amazon Simple Storage Service(Amazon S3) 버킷의 데이터를 사용하여 Amazon QuickSight에서 데이터 세트를 생성하려고 합니다. 어떻게 해야 합니까?

간략한 설명

Amazon QuickSight에서 다른 계정(계정 B)의 암호화된 Amazon S3 버킷에 대한 크로스 계정 액세스를 생성하려면 다음 단계를 수행하십시오.

  1. 계정 B(S3 버킷이 있는 위치)에서 S3 버킷 정책을 업데이트합니다.
  2. S3 버킷을 QuickSight 서비스 역할(계정 A)이 액세스할 수 있는 리소스로 추가합니다.
  3. S3 버킷의 AWS Key Management Service(KMS)에 대한 QuickSight 서비스 역할 액세스 허용

참고: 이 문서에서는 S3 버킷이 암호화되었다고 가정합니다. 또한 AWS KMS 키를 사용하여 S3 버킷을 암호화하는 것이 좋습니다. Amazon S3에 대한 기본 암호화를 활성화하는 방법에 대한 자세한 내용은 Amazon S3 기본 버킷 암호화 활성화를 참조하세요.

해결 방법

계정 B에서 S3 버킷 정책 업데이트

QuickSight에서 Amazon S3로의 크로스 계정 액세스를 설정하려면 다음 단계를 완료하십시오.

1.    계정 B에서 S3 버킷의 버킷 정책을 업데이트합니다. 예를 들면 다음과 같습니다.

{
  "Version": "2012-10-17",
  "Id": "BucketPolicy",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::<Account A>:role/service-role/aws-quicksight-service-role-v0"
      },
      "Action": [
        "s3:ListBucket",
        "s3:GetObject",
        "s3:GetObjectVersion"
      ],
      "Resource": [
        "arn:aws:s3:::cross-account-qstest-bucket",
        "arn:aws:s3:::cross-account-qstest-bucket/*"
      ]
    }
  ]
}

참고: 계정 A에 aws-quicksight-s3-consumers-role-v0 역할이 있는 경우 대신 이 역할을 사용해야 합니다. aws-quicksight-service-role-v0Aaws-quicksight-s3-consumers-role-v0로 대체하여 Amazon S3와의 연결 문제를 방지합니다.

2.    S3 버킷의 AWS KMS 키에 액세스할 수 있는 사용자 목록에 QuickSight 서비스 역할(계정 A)을 추가합니다.

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 키 ARN을 가져오려면 다음을 수행하십시오.

  1. Amazon S3 콘솔을 엽니다.
  2. 데이터 파일이 포함된 S3 버킷으로 이동합니다.
  3. 속성 탭을 선택합니다. AWS KMS 키 ARN은 기본 암호화 아래에 있습니다.

QuickSight 서비스 역할 ARN을 가져오려면 다음을 수행하십시오.

  1. AWS Identity and Access Management(IAM) 콘솔을 계정 A에서 엽니다.
  2. 왼쪽 탐색 창에서 규칙을 선택합니다.
  3. aws-quicksight-service-role을 검색합니다.
  4. QuickSight 서비스 역할을 선택하고 해당 ARN을 복사합니다.

참고: 계정 A에 aws-quicksight-s3-consumers-role-v0 역할이 있는 경우 이 역할을 대신 사용해야 합니다. 그렇지 않으면 Amazon S3에 연결하려고 할 때 오류가 발생할 수 있습니다.

QuickSight 서비스 역할이 액세스할 수 있는 리소스로 S3 버킷 추가

계정 B의 S3 버킷에 대한 QuickSight 서비스 역할 액세스를 허용하려면 다음 단계를 완료하십시오.

  1. Amazon QuickSight 콘솔을 엽니다.
  2. QuickSight 관리를 선택합니다.
  3. 보안 및 권한을 선택합니다.
  4. 추가 또는 제거를 선택합니다.
  5. 세부 정보를 선택합니다.
  6. S3 버킷 선택을 선택합니다.
  7. AWS 탭에서 액세스할 수 있는 S3 버킷을 선택하여 해당 S3 버킷이 QuickSight 액세스를 위해 나열되어 있는지 확인합니다.
  8. (선택 사항) S3 버킷이 목록에 없는 경우, 다른 버킷 사용 아래에 버킷을 추가합니다.
  9. 마침을 선택합니다.

S3 버킷의 AWS KMS 키에 대한 QuickSight 서비스 역할 액세스 허용

계정 A의 QuickSight 서비스 역할에 다음과 같은 인라인 IAM 정책을 추가합니다.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ExampleStmt3",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt"
        ],
      "Resource": ""arn:aws:kms:us-east-1:<account ID of your S3 bucket>:key/<KEYID>"
    }
  ]
}

참고: 위의 인라인 정책은 QuickSight 서비스 역할이 계정 B의 AWS KMS 키에 액세스할 수 있도록 허용합니다. ExampleStmt3를 사용자의 스테이트먼트 ID로 바꿉니다.

중요: 계정 A에 aws-quicksight-s3-consumers-role-v0 역할이 있는 경우, 이 AWS KMS 정책을 역할에 연결해야 합니다. AWS KMS 정책은 S3 버킷의 데이터를 해독합니다. 업데이트된 역할 정책을 QuickSight 서비스 역할에 연결하는 경우, 권한 오류가 발생할 수 있습니다. 이 권한 오류를 해결하는 방법에 대한 자세한 내용은 Amazon QuickSight에서 AWS 리소스 권한 오류를 해결하려면 어떻게 해야 합니까?를 참조하십시오.

추가 고려 사항

QuickSight에서 다른 계정의 S3 버킷으로 크로스 계정 액세스를 설정하는 경우 다음 사항을 고려하십시오.


관련 정보

키 편집

Amazon S3에 연결할 수 없습니다.

Amazon QuickSight 문제 해결

주요 정책 보기(콘솔)

AWS 공식
AWS 공식업데이트됨 2년 전