Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
Amazon Redshift에서 다른 계정의 Amazon S3 버킷으로 데이터를 복사하거나 언로드하려면 어떻게 해야 합니까?
Amazon Redshift에서 다른 AWS 계정에 있는 Amazon Simple Storage Service(Amazon S3) 버킷으로 데이터를 복사하거나 언로드하려고 합니다. 하지만 다른 계정이 AWS Identity and Access Management(IAM) 역할을 맡을 수 없습니다. 교차 계정 액세스를 설정해야 합니다.
간략한 설명
다른 계정에 있는 Amazon S3 리소스에 액세스하려면 다음 단계를 완료하십시오.
- Amazon S3 계정(RoleA)에서 IAM 역할을 생성합니다.
- Amazon Redshift 계정(RoleB)에서 RoleA를 맡을 수 있는 권한을 가진 IAM 역할을 생성합니다.
- RoleA와 RoleB 간의 교차 계정 액세스를 테스트합니다.
참고: 이전 단계는 Redshift Serverless와 Redshift에서 프로비저닝한 데이터 웨어하우스 모두에 적용되며 모든 데이터 형식에서 작동합니다. 하지만 특정 데이터 형식에 대해서는 COPY 및 UNLOAD 명령 구문을 수정해야 할 수 있습니다. 예를 들어 Parquet 데이터 형식을 사용하는 경우 다음 구문을 사용해야 합니다.
COPY table_name FROM 's3://awsexamplebucket/crosscopy1.csv' IAM_ROLE 'arn:aws:iam::Amazon_Redshift_Account_ID:role/RoleB,arn:aws:iam::Amazon_S3_Account_ID:role/RoleA FORMAT AS PARQUET;
해결 방법
참고: 다음 절차에서는 Amazon Redshift 클러스터와 S3 버킷이 동일한 AWS 리전에 있다고 가정합니다. 클러스터와 버킷이 서로 다른 리전에 있는 경우 COPY 또는 UNLOAD 명령에 REGION 파라미터를 추가해야 합니다.
Amazon S3(RoleA)를 사용하는 계정에 IAM 역할 생성
다음 단계를 완료하십시오.
- IAM 콘솔을 엽니다.
- 정책을 선택한 다음 정책 생성을 선택합니다.
- JSON 탭을 선택한 후 다음 IAM 정책을 입력합니다.
참고: S3 버킷이 AWS Key Management Service(AWS KMS) 키로 암호화되지 않은 경우 AWS KMS 권한을 제거하십시오.
참고: awsexamplebucket을 S3 버킷의 이름으로 바꾸십시오. AWS KMS 키 암호화를 사용하는 경우 KMS_KEY_ARN_A_Used_for_S3_encryption을 AWS KMS 키의 ARN으로 바꾸십시오.{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey" ], "Resource": [ "<KMS_KEY_ARN_A_Used_for_S3_encryption>" ] }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::awsexamplebucket", "arn:aws:s3:::awsexamplebucket/*" ] } ] }
- 정책 검토를 선택합니다.
- 정책 이름을 입력한 다음 정책 생성을 선택합니다.
- 탐색 창에서 역할을 선택합니다.
- 역할 생성을 선택합니다.
- 다른 AWS 계정을 신뢰할 수 있는 엔터티 역할로 선택합니다.
- Amazon Redshift를 사용하는 계정의 계정 ID를 입력합니다.
- 다음: 권한을 선택한 다음 정책을 선택합니다.
- (선택 사항) 다음: 태그를 선택한 다음 태그를 추가합니다.
- 다음: 검토를 선택합니다.
- 역할 이름을 입력합니다.
- 역할 생성을 선택합니다.
Amazon Redshift 계정에서 역할 A를 맡을 수 있는 권한을 가진 IAM 역할(RoleB) 생성
다음 단계를 완료하십시오.
- IAM 콘솔을 엽니다.
- 정책을 선택한 다음 정책 생성을 선택합니다.
- JSON 탭을 선택한 후 다음 IAM 정책을 입력합니다.
참고: AmazonS3AccountRoleARN을 RoleA의 ARN(arn:aws:iam::Amazon_S3_Account_ID:role/RoleA)으로 바꾸십시오.{ "Version": "2012-10-17", "Statement": [ { "Sid": "CrossAccountPolicy", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "AmazonS3AccountRoleARN" } ] }
- 정책 검토를 선택합니다.
- 정책 이름을 입력한 다음 정책 생성을 선택합니다.
- 탐색 창에서 역할을 선택합니다.
- 역할 생성을 선택합니다.
- AWS 서비스를 신뢰할 수 있는 엔터티 유형으로 선택합니다.
- Redshift를 선택합니다.
- Redshift - 사용자 지정을 선택합니다.
- 다음: 권한을 선택한 다음 정책을 선택합니다.
- (선택 사항) 다음: 태그를 선택한 다음 태그를 추가합니다.
- 다음: 검토를 선택합니다.
- 역할 이름을 입력합니다.
- 역할 생성을 선택합니다.
- RoleB를 Amazon Redshift 클러스터에 연결합니다.
프로비저닝된 Redshift 클러스터의 경우 클러스터에 IAM 역할 연결을 참조하십시오.
-또는-
Redshift Serverless의 경우 Amazon Redshift Serverless에 권한 부여를 참조하십시오.
참고: Amazon Redshift에서 IAM 역할을 체인으로 연결하면 Amazon Redshift 클러스터가 RoleB를 맡고, RoleB가 RoleA를 맡습니다.
S3 버킷과 Amazon Redshift 간의 교차 계정 액세스 테스트
다음 단계를 완료하십시오.
-
COPY 명령을 실행하여 S3 버킷에서 Amazon Redshift로 데이터를 가져옵니다.
COPY table_name FROM 's3://awsexamplebucket/crosscopy1.csv' IAM_ROLE 'arn:aws:iam::Amazon_Redshift_Account_ID:role/RoleB,arn:aws:iam::Amazon_S3_Account_ID:role/RoleA' DELIMITER ',' REMOVEQUOTES;
-
교차 계정 액세스가 허용되었는지 확인하려면 UNLOAD 명령을 실행하여 Amazon Redshift에서 S3 버킷으로 데이터를 언로드합니다.
UNLOAD ('SELECT * FROM table_name') TO 's3://awsexamplebucket/folder/table_name_' IAM_ROLE 'arn:aws:iam::Amazon_Redshift_Account_ID:role/RoleB,arn:aws:iam::Amazon_S3_Account_ID:role/RoleA' KMS_KEY_ID 'ARN_KMS_KEY_ID' ENCRYPTED;
참고: 앞의 명령에서 다음 값을 원하는 값으로 바꾸십시오.
- table_name: Amazon S3 데이터를 복사하는 대상인 Amazon Redshift 테이블
- s3://awsexamplebucket/crosscopy1.csv: 데이터를 복사하는 소스 S3 파일 경로
- Amazon_Redshift_Account_ID: Amazon Redshift 계정의 계정 ID
- Amazon_S3_Account_ID: Amazon S3 계정의 계정 ID
- (선택 사항) ARN_KMS_KEY_ID: S3 버킷을 암호화하는 데 사용한 KMS 키 ID의 ARN
관련 정보
Amazon S3 버킷에 있는 객체에 교차 계정 액세스를 제공하려면 어떻게 해야 합니까?

관련 콘텐츠
- 질문됨 2년 전lg...
- 질문됨 2년 전lg...
- 질문됨 3달 전lg...
- 질문됨 3달 전lg...
- 질문됨 2달 전lg...
- AWS 공식업데이트됨 2년 전
- AWS 공식업데이트됨 5달 전
- AWS 공식업데이트됨 5달 전