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

4분 분량
0

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

간략한 설명

Amazon QuickSight(계정 A) 에서 다른 계정(계정 B) 의 암호화된 Amazon S3 버킷에 대한 크로스 계정 액세스를 생성하려면 다음 단계를 완료하세요.

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

참고: 이 문서에서는 S3 버킷이 암호화되었다고 가정합니다. 또한 AWS KMS 키로 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-v0aws-quicksight-s3-consumers-role-v0으로 대체하여 Amazon S3와의 연결 문제를 방지하세요.

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

    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. 계정 A에서 AWS Identity Access Management (IAM)콘솔을 엽니다.
  2. 탐색 창에서 역할을 선택합니다.
  3. aws-quicksight-service-role을 검색합니다.
  4. QuickSight 서비스 역할을 선택하고 해당 ARN을 복사합니다.

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

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

QuickSight 서비스 역할이 계정 B의 S3 버킷에 액세스할 수 있도록 허용하려면 다음 단계를 완료하세요.

  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 버킷으로의크로스 계정 액세스를 설정할 경우 다음 사항을 고려하세요.

  • QuickSight 계정에서 IAM 정책 할당을 확인하세요. IAM 역할 정책은 QuickSight 서비스 역할에 S3 버킷에 대한 액세스 권한을 부여해야 합니다. 자세한 내용을 보려면 ](https://docs.aws.amazon.com/quicksight/latest/user/scoping-policies-iam-interface.html)IAM을 통한 AWS 서비스에 대한 세분화된 액세스[ 설정을 참조하세요.
  • 매니페스트 파일을 사용하여 S3 버킷에 연결하고, S3 파일을 사용하여 데이터세트를 생성합니다. S3 매니페스트 파일에 지원되는 형식을 사용해야 합니다.

관련 정보

키 편집

Amazon S3에 연결할 수 없습니다

Amazon QuickSight 문제 해결

키 정책 보기(콘솔)

AWS 공식
AWS 공식업데이트됨 10달 전