Target 버킷이 있는 계정에서 해당 정책을 생성한 후 특정 IAM 계정에 해당 정책 권한을 부여한다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::{target-bucket-name}",
"arn:aws:s3:::{target-bucket-name}/*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:PutObject",
"s3:PutObjectAcl"
],
"Resource": [
"arn:aws:s3:::{source-bucket-name}",
"arn:aws:s3:::{source-bucket-name}/*"
]
}
]
}
Source 버킷이 있는 계정에서 해당 정책을 버킷에 부여한다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DelegateS3Access",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::{target-account-id}:user/{target-iam-username}"
},
"Action": [
"s3:ListBucket",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::{source-bucket-name}/*",
"arn:aws:s3:::{source-bucket-name}"
]
}
]
}
$ aws --profile {target-profile} s3 sync s3://{source-bucket-name} s3://{target-bucket-name}