기존에 사용하던 AWS 계정에서 다른 AWS 계정으로 S3 버킷 안에 있는 폴더구조를 포함한 파일을 한 번에 싹! 옮기고 싶다면 아래 방법을 사용하면 된다.
A 계정: Source Bucket (기존 계정)
B 계정: Target Bucket (기존 계정의 버킷을 복사하여 넣어줄 타겟 계정)
(* B계정에서 S3 버킷 생성 후 진행하면 된다.)
액세스 키
와 비밀 액세스 키
를 복사해 둔다. 비밀 액세스 키는 여기에서 딱 한번 볼 수 있다!.csv 파일
을 다운로드 받아 사용해도 된다.권한 추가 > 인라인 정책 생성을 클릭한다.
또는 오른쪽 메뉴 탭에서 정책을 클릭하여, 새로운 정책을 생성할 수도 있지만, 그러면 IAM 사용자에게 정책을 따로 설정해 줘야 하기 때문에 여기서 바로 하는게 편하다.
버킷 복사를 위한 정책을 입력한다.
Source Bucket에는 기존 계정 A의 S3 버킷 이름을, Target Bucket에는 새로운 계정 B의 S3 버킷 이름을 적으면 된다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::Source_Bucket",
"arn:aws:s3:::Source_Bucket/*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:PutObject",
"s3:PutObjectAcl"
],
"Resource": [
"arn:aws:s3:::Target_Bucket",
"arn:aws:s3:::Target_Bucket/*"
]
}
]
}
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DelegateS3Access",
"Effect": "Allow",
"Principal": {
"AWS": "Account B's AccountID"
},
"Action": [
"s3:ListBucket",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::Source_Bucket/*",
"arn:aws:s3:::Source_Bucket"
]
}
]
}
액세스 키
와 비밀 액세스 키
를 사용한다.$ aws configure
$ aws s3 sync s3://Bucket-Source s3://Bucket-Target