다른 계정에서 Amazon Simple Storage Service(Amazon S3) 버킷의 데이터를 사용하여 Amazon Quick Sight에서 데이터세트를 만들려고 합니다.
간략한 설명
Amazon Quick Sight(계정 A)에서 다른 계정(계정 B)의 암호화된 Amazon S3 버킷에 대한 교체 계정 액세스를 만들려면 다음 단계를 완료하십시오.
- S3 버킷이 있는 계정 B에서 S3 버킷 정책을 업데이트합니다.
- S3 버킷을 Quick Sight 서비스 역할(계정 A)이 액세스할 수 있는 리소스로 추가합니다.
- Quick Sight 서비스 역할이 S3 버킷의 AWS Key Management Service(AWS KMS) 키에 액세스할 수 있도록 허용합니다.
참고: 이 문서에서는 S3 버킷이 암호화되었다고 가정합니다. 또한 AWS KMS 키로 S3 버킷을 암호화하는 것이 가장 좋습니다. Amazon S3의 기본 암호화를 활성화하는 방법에 대한 자세한 내용을 보려면 기본 암호화 구성을 참조하십시오.
해결 방법
계정 B에서 S3 버킷 정책 업데이트
Quick Sight에서 Amazon S3로의 교차 계정 액세스를 설정하려면 다음 단계를 완료하십시오.
-
계정 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-v0을 aws-quicksight-s3-consumers-role-v0으로 대체하여 Amazon S3와의 연결 문제를 방지하십시오.
-
계정 A의 Quick Sight 서비스 역할을 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을 Quick Sight 역할의 ARN으로 바꾸십시오.
AWS KMS 키 ARN 받기:
- Amazon S3 콘솔을 엽니다.
- 데이터 파일이 들어 있는 S3 버킷으로 이동합니다.
- 속성 탭을 선택합니다. AWS KMS 키 ARN은 기본 암호화 아래에 있습니다.
Quick Sight 서비스 역할 ARN 받기:
- 계정 A에서 AWS Identity Access Management(IAM) 콘솔을 엽니다.
- 탐색 창에서 역할을 선택합니다.
- aws-quicksight-service-role을 검색합니다.
- Quick Sight 서비스 역할을 선택하고 해당 ARN을 복사합니다.
참고: 계정 A에 aws-quicksight-s3-consumers-role-v0 역할이 있는 경우 이 역할을 대신 사용해야 합니다. 그렇지 않으면 Amazon S3에 연결하려고 할 때 오류가 발생할 수 있습니다.
S3 버킷을 Quick Sight 서비스 역할이 액세스할 수 있는 리소스로 추가
Quick Sight 서비스 역할이 계정 B의 S3 버킷에 액세스할 수 있도록 허용하려면 다음 단계를 완료하십시오.
- Amazon Quick Sight 콘솔을 엽니다.
- Quick Sight 관리를 선택합니다.
- 보안 및 권한을 선택합니다.
- 추가 또는 제거를 선택합니다.
- 세부 정보를 선택합니다.
- S3 버킷 선택을 선택합니다.
- AWS 탭에서 액세스할 수 있는 S3 버킷을 선택하여 Quick Sight 액세스에 S3 버킷이 나열되어 있는지 확인합니다.
- (선택 사항) S3 버킷이 목록에 없는 경우 다른 버킷 사용 아래에 버킷을 추가합니다.
- 마침을 선택합니다.
S3 버킷의 AWS KMS 키에 대한 Quick Sight 서비스 역할 액세스를 허용합니다.
계정 A의 Quick Sight 서비스 역할에 다음 인라인 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>"
}
]
}
참고: 위의 인라인 정책에서는 Quick Sight 서비스 역할이 계정 B의 AWS KMS 키에 액세스할 수 있도록 허용합니다. ExampleStmt3을 명령문 ID로 바꾸십시오.
**중요:**계정 A에 aws-quicksight-s3-consumers-role-v0 역할이 있는 경우, 해당 역할에 AWS KMS 정책을 첨부해야 합니다. AWS KMS 정책은 S3 버킷의 데이터를 해독합니다. 업데이트된 역할 정책을 Quick Sight 서비스 역할에 대신 연결하면 권한 오류가 발생할 수 있습니다. 권한 오류를 해결하는 방법에 대한 자세한 내용을 보려면 Amazon Quick Sight에서 AWS 리소스 권한 오류를 해결하려면 어떻게 해야 합니까?를 참조하십시오.
추가 고려 사항
Quick Sight에서 다른 계정의 S3 버킷으로의 교차 계정 액세스를 설정할 경우 다음 사항을 고려하십시오.
- Quick Sight 계정에서 IAM 정책 할당을 확인하십시오. IAM 역할 정책은 Quick Sight 서비스 역할에 S3 버킷에 대한 액세스 권한을 부여해야 합니다. 자세한 내용은 ](https://docs.aws.amazon.com/quicksight/latest/user/scoping-policies-iam-interface.html)IAM을 통한 AWS 서비스에 대한 세분화된 액세스 설정[을 참조하십시오.
- 매니페스트 파일을 사용하여 S3 버킷에 연결하고, S3 파일을 사용하여 데이터세트를 만듭니다. S3 매니페스트 파일에 지원되는 형식을 사용해야 합니다.
관련 정보
키 편집
Amazon S3에 연결할 수 없습니다
Amazon Quick Sight 문제 해결
키 정책 보기(콘솔)