기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
를 사용하면 다른에 속하는 Amazon S3 버킷 간에 데이터를 전송할 AWS DataSync수 있습니다 AWS 계정.
중요
이 자습서의 메서드를 AWS 계정 사용하여 로 데이터를 전송하는 것은 Amazon S3에서만 작동합니다. 또한 이 자습서는 서로 다른 AWS 리전의 S3 버킷 간에 데이터를 전송하는 데 도움이 될 수 있습니다.
개요
AWS 계정특히 조직의 리소스를 관리하는 별도의 팀이 있는 경우 간에 데이터를 전송하는 것은 드문 일이 아닙니다. DataSync를 사용한 계정간 전송은 다음과 같습니다:
-
소스 계정: 데이터를 전송해야 하는 S3 버킷을 관리하기 AWS 계정 위한 입니다.
-
대상 계정: 데이터를 전송해야 하는 S3 버킷을 관리하기 AWS 계정 위한 입니다.
다음 다이어그램은 서로 다른 AWS 계정에서 S3 버킷에서 다른 S3 버킷으로 데이터를 전송하는 시나리오를 보여줍니다.

사전 조건: 필수 소스 계정 권한
소스의 경우 이러한 종류의 교차 계정 전송과 함께 고려해야 할 두 가지 권한 세트 AWS 계정가 있습니다.
-
사용자가 DataSync를 사용하도록 허용하는 사용자 권한(사용자 또는 스토리지 관리자일 수 있음)입니다. 이러한 권한을 통해 DataSync 위치 및 작업을 생성할 수 있습니다.
-
DataSync가 대상 계정 버킷으로 데이터를 전송하도록 허용하는 DataSync 서비스 권한입니다.
소스 계정에서 DataSync 위치 및 작업을 생성하기 위해 IAM 역할에 최소한 다음 권한을 추가합니다. 역할에 권한을 추가하는 방법에 대한 자세한 내용은 IAM 역할 생성 또는 수정을 참조하세요.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "SourceUserRolePermissions",
"Effect": "Allow",
"Action": [
"datasync:CreateLocationS3",
"datasync:CreateTask",
"datasync:DescribeLocation*",
"datasync:DescribeTaskExecution",
"datasync:ListLocations",
"datasync:ListTaskExecutions",
"datasync:DescribeTask",
"datasync:CancelTaskExecution",
"datasync:ListTasks",
"datasync:StartTaskExecution",
"iam:CreateRole",
"iam:CreatePolicy",
"iam:AttachRolePolicy",
"iam:ListRoles",
"s3:GetBucketLocation",
"s3:ListAllMyBuckets"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"iam:PassRole"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"iam:PassedToService": [
"datasync.amazonaws.com"
]
}
}
}
]
}
작은 정보
사용자 권한을 설정하려면 AWSDataSyncFullAccess 사용을 고려하세요. 이는 사용자에게 DataSync에 대한 전체 액세스 권한과 해당 종속성에 대한 최소 액세스를 제공하는 AWS 관리형 정책입니다.
대상 계정 버킷으로 데이터를 전송하려면 DataSync 서비스는 소스 계정에서 다음 권한이 필요합니다.
이 자습서의 후반부에서 DataSync에 대한 IAM 역할을 생성할 때 이러한 권한을 추가합니다. 또한 대상 버킷 정책 및 DataSync 대상 위치 생성 시 이 역할(
)을 지정합니다.source-datasync-role
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:GetBucketLocation",
"s3:ListBucket",
"s3:ListBucketMultipartUploads"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket
"
},
{
"Action": [
"s3:AbortMultipartUpload",
"s3:DeleteObject",
"s3:GetObject",
"s3:ListMultipartUploadParts",
"s3:PutObject",
"s3:GetObjectTagging",
"s3:PutObjectTagging"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket
/*"
}
]
}
사전 조건: 필수 대상 계정 권한
대상 계정에서 사용자 권한을 통해 대상 버킷의 정책을 업데이트하고 해당 액세스 제어 목록(ACL)을 비활성화할 수 있어야 합니다. 이러한 특정 권한에 대한 자세한 설명은 Amazon S3 사용자 가이드를 참조하세요.
1단계: 소스 계정에서 대상 버킷 액세스의 DataSync IAM 역할 생성
소스에는 DataSync에 대상 계정 버킷으로 데이터를 전송할 수 있는 권한을 부여하는 IAM 역할이 AWS 계정필요합니다.
계정 간에 데이터를 이전하는 것이므로 이 역할을 수동으로 생성해야 합니다. (DataSync는 동일한 계정으로 전송할 때 콘솔에서 이 역할을 생성할 수 있습니다.)
DataSync를 신뢰할 수 있는 엔터티로 사용하여 IAM 역할을 생성합니다.
소스 계정으로 AWS Management Console 에 로그인합니다.
https://console.aws.amazon.com/iam/
에서 IAM 콘솔을 엽니다. -
왼쪽 탐색 창의 액세스 관리에서 역할을 선택한 다음, 역할 생성을 선택합니다.
-
신뢰할 수 있는 엔터티 선택 페이지에서 신뢰할 수 있는 엔터티 유형으로 AWS 서비스를 선택합니다.
-
사용 사례로 드롭다운 목록에서 DataSync를 선택하고 DataSync를 선택합니다. 다음을 선택합니다.
-
권한 추가 페이지에서 다음을 선택합니다.
-
역할 이름을 제공하고 역할 생성을 선택합니다.
자세한 내용은 IAM 사용 설명서의 AWS 서비스 (콘솔)에 대한 역할 생성을 참조하세요.
방금 생성한 IAM 역할에는 DataSync가 대상 계정의 S3 버킷에 데이터를 전송하도록 허용하는 권한이 필요합니다.
IAM 콘솔의 역할 페이지에서 방금 생성한 역할을 찾아서 그 명칭을 선택합니다.
역할의 세부 정보 페이지에서 권한 탭을 선택합니다. 권한 추가를 선택한 후 인라인 정책 추가를 선택합니다.
-
JSON 탭을 선택한 다음, 다음을 수행합니다.
다음 JSON을 정책 편집기에 붙여넣습니다.
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetBucketLocation", "s3:ListBucket", "s3:ListBucketMultipartUploads" ], "Effect": "Allow", "Resource": "arn:aws:s3:::
amzn-s3-demo-destination-bucket
" }, { "Action": [ "s3:AbortMultipartUpload", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploadParts", "s3:PutObject", "s3:GetObjectTagging", "s3:PutObjectTagging" ], "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket
/*" } ] }
의 각 인스턴스를 대상 계정의 S3 버킷의 이름으로 바꿉니다.amzn-s3-demo-destination-bucket
-
Next(다음)를 선택합니다. 정책 명칭을 지정하고 정책 생성을 선택합니다.
2단계: 대상 계정에서 S3 버킷 정책 업데이트
대상 계정에서, 소스 계정에서 생성한 DataSync IAM 역할을 포함하도록 대상 S3 버킷 정책을 수정합니다.
시작하기 전에: 대상 계정에 필요한 권한이 있는지 확인합니다.
-
에서 대상 계정으로 AWS Management Console전환합니다.
https://console.aws.amazon.com/s3/
에서 Amazon S3 콘솔을 엽니다. -
왼쪽 탐색 창에서 버킷을 선택합니다.
-
버킷 목록에서 데이터를 전송할 S3 버킷을 선택합니다.
-
버킷의 세부 정보 페이지에서 권한 탭을 선택합니다.
-
버킷 정책에서 편집을 선택하고 다음을 수행하여 S3 버킷 정책을 수정하세요.
-
편집기에 있는 내용을 업데이트하여 다음 정책 설명을 포함하세요.
{ "Version": "2008-10-17", "Statement": [ { "Sid": "DataSyncCreateS3LocationAndTaskAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
source-account
:role/source-datasync-role
" }, "Action": [ "s3:GetBucketLocation", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:AbortMultipartUpload", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploadParts", "s3:PutObject", "s3:GetObjectTagging", "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-destination-bucket
", "arn:aws:s3:::amzn-s3-demo-destination-bucket
/*" ] } ] } -
의 각 인스턴스를 소스 계정의 AWS 계정 ID
로 바꿉니다.source-account
-
을 소스 계정에서 DataSync용으로 생성한 IAM 역할로 바꾸세요.source-datasync-role
-
의 각 인스턴스를 대상 계정의 S3 버킷의 이름으로 바꿉니다.amzn-s3-demo-destination-bucket
-
-
Save changes(변경 사항 저장)를 선택합니다.
3단계: 대상 계정에서 S3 버킷의 ACL을 비활성화합니다.
S3 버킷으로 전송하는 모든 데이터는 대상 계정에 속해야 합니다. 이 계정이 데이터를 소유하도록 하려면 버킷의 액세스 제어 목록(ACL) 사용을 중지합니다. 자세한 설명은 Amazon S3 사용자 가이드의 객체 소유권 제어 및 버킷에 대해 ACL 사용 중지를 참조하세요.
시작하기 전에: 대상 계정에 필요한 권한이 있는지 확인합니다.
-
대상 계정으로 S3 콘솔에 로그인한 상태에서 데이터를 전송할 S3 버킷을 선택합니다.
-
버킷의 세부 정보 페이지에서 권한 탭을 선택합니다.
-
객체 소유권(Object Ownership)에서 편집(Edit)을 선택합니다.
-
아직 선택하지 않은 경우, ACL 비활성화(권장) 옵션을 선택하세요.
-
Save changes(변경 사항 저장)를 선택합니다.
4단계: 소스 계정에서 DataSync 위치 생성
소스 계정에서 소스 및 대상 S3 버킷을 위한 DataSync 위치를 생성합니다.
시작하기 전에: 소스 계정에 필요한 권한이 있는지 확인합니다.
소스 계정에서 데이터를 전송하려는 S3 버킷의 위치를 생성합니다.
소스 계정에 있는 동안 데이터를 전송하려는 S3 버킷의 위치를 생성합니다.
DataSync 콘솔 인터페이스를 사용하여 교차 계정 위치를 생성할 수 없으므로 이 지침에 따라 대상 위치를 생성하는 create-location-s3
명령을 실행해야 합니다. 콘솔에서 직접 시작하는 브라우저 기반 사전 인증된 AWS CloudShell쉘을 사용하여 명령을 실행하는 것이 좋습니다. CloudShell을 사용하면 AWS CLI 명령줄 도구를 다운로드하거나 설치create-location-s3
하지 않고도와 같은 명령을 실행할 수 있습니다.
참고
CloudShell 이외의 명령줄 도구를 사용하여 다음 단계를 완료하려면 AWS CLI 프로필이 소스 계정에서 DataSync를 사용하는 데 필요한 사용자 권한을 포함하는 동일한 IAM 역할을 사용하는지 확인하세요.
CloudShell을 사용하여 DataSync 목적지 위치를 만들려면
-
소스 계정에 있는 동안 다음 중 하나를 수행하여 콘솔에서 CloudShell을 시작합니다.
-
콘솔 탐색 모음에서 CloudShell 아이콘을 선택합니다. 검색 상자 오른쪽에 있습니다.
-
콘솔 탐색 모음의 검색 상자를 사용하여 CloudShell을 검색한 다음 CloudShell 옵션을 선택합니다.
-
-
다음
create-location-s3
명령을 복사합니다.aws datasync create-location-s3 \ --s3-bucket-arn arn:aws:s3:::
amzn-s3-demo-destination-bucket
\ --regionamzn-s3-demo-destination-bucket-region
\ --s3-config '{ "BucketAccessRoleArn":"arn:aws:iam::source-account-id
:role/source-datasync-role
" }' -
대상 계정에서
을 S3 버킷의 이름으로 바꿉니다.amzn-s3-demo-destination-bucket
-
대상 버킷이 소스 버킷과 다른 리전에 있는 경우 대상 버킷이 있는 리전(예:
)으로us-east-2
을 바꿉니다. 버킷이 동일한 리전에 있는 경우 이 옵션을 제거합니다.amzn-s3-demo-destination-bucket-region
-
를 소스 AWS 계정 ID
로 바꿉니다.source-account-id
-
을 소스 계정에서 생성한 DataSync IAM 역할로 대체하세요.source-datasync-role
-
명령을 CloudShell에서 실행합니다.
명령이 다음과 비슷한 DataSync 위치 ARN을 반환하면 위치가 성공적으로 생성된 것입니다.
{ "LocationArn": "arn:aws:datasync:us-east-2:123456789012:location/loc-abcdef01234567890" }
-
왼쪽 탐색 창에서 데이터 전송을 확장한 다음 위치를 선택합니다.
-
다른 리전에 위치를 생성한 경우 탐색 창에서 해당 리전을 선택합니다.
소스 계정에서 대상 계정 버킷용으로 방금 생성한 S3 위치를 확인할 수 있습니다.
5단계: 소스 계정에서 DataSync 전송 작업을 생성하고 시작
DataSync 작업을 시작하여 데이터를 전송하기 전에 지금까지 수행한 작업을 요약해 보겠습니다.
-
소스 계정에서 DataSync가 대상 계정의 S3 버킷에 데이터를 전송하도록 허용하는 IAM 역할을 생성했습니다.
-
대상 계정에서 DataSync가 S3 버킷으로 데이터를 전송할 수 있도록 S3 버킷을 구성했습니다.
-
소스 계정에서 전송을 위한 DataSync 소스 및 목적지 위치를 생성했습니다.
-
소스 계정에서 DataSync 콘솔을 계속 사용하는 동안 왼쪽 탐색 창에서 데이터 전송을 펼친 다음 작업과 작업 생성을 선택합니다.
-
대상 계정의 버킷이 소스 계정의 버킷과 다른 리전에 있는 경우 상단 탐색 창에서 대상 버킷의 리전을 선택합니다.
중요
네트워크 연결 오류를 방지하려면 대상 위치와 동일한 리전에서 DataSync 작업을 생성해야 합니다.
-
소스 위치 구성 페이지에서 다음을 수행합니다.
-
기존 위치 선택을 선택합니다.
-
(리전 간 전송의 경우) 리전 드롭다운에서 소스 버킷이 있는 리전을 선택합니다.
-
기존 위치의 경우, 데이터를 전송할 S3 버킷의 소스 위치를 선택하고 다음을 선택합니다.
-
-
대상 위치 구성 페이지에서 다음을 수행합니다.
-
기존 위치 선택을 선택합니다.
-
기존 위치의 경우, 데이터를 전송할 S3 버킷의 대상 위치를 선택하고 다음을 선택합니다.
-
-
설정 구성 페이지에서 작업 모드를 선택합니다.
작은 정보
Enhanced 모드를 사용하는 것이 좋습니다. 자세한 내용은 데이터 전송을 위한 작업 모드 선택 단원을 참조하십시오.
-
작업에 이름을 지정하고 Amazon CloudWatch 로그 그룹 지정과 같은 추가 설정을 구성합니다. Next(다음)를 선택합니다.
-
검토 페이지에서 설정을 검토하고 작업 생성을 선택합니다.
-
작업의 세부 정보 페이지에서 시작을 선택하고 다음 중 하나를 선택하세요:
-
수정하지 않고 작업을 실행하려면 기본값으로 시작을 선택합니다.
-
작업을 실행하기 전에 수정하려면 재정의 옵션으로 시작을 선택합니다.
-
작업이 완료되면 목적지 계정의 S3 버킷을 확인합니다. 소스 계정 버킷에서 이동한 데이터를 확인할 수 있을 것입니다.
문제 해결
교차 계정 전송을 완료하는 데 문제가 발생하는 경우 다음 정보를 참조하세요.
- 연결 오류
-
서로 다른 AWS 계정 및 리전의 S3 버킷 간에 전송할 때 DataSync 작업을 시작할 때 네트워크 연결 오류가 발생할 수 있습니다. 이 문제를 해결하려면 대상 위치와 동일한 리전에서 작업을 생성하고 해당 작업을 실행해 보세요.
관련: 서버 측 암호화를 사용하여 S3 버킷으로 교차 계정 전송
서버 측 암호화를 사용하여 S3 버킷으로 이 전송을 수행하려는 경우 AWS Storage Blog