DevOps & Infra/AWS
[AWS S3] 다른계정의 AWS S3에 S3복사하기
나른한댕댕이🐶
2022. 4. 13. 15:44
728x90
반응형
- 위의 그림과 같이 A의 계정의 S3버킷 내용을 B계정의 S3버킷에 복사하고 싶다.
# 다른 계정의 AWS S3에 접근하기
- 한 S3버킷에서 다른 계정의 S3 버킷으로 내용을 복사하기 위해서는 정책 설정을 해주어야 한다.
1. A계정의 IAM 사용자에 정책을 추가한다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::source-DOC-EXAMPLE-BUCKET",
"arn:aws:s3:::source-DOC-EXAMPLE-BUCKET/*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:PutObject",
"s3:PutObjectAcl"
],
"Resource": [
"arn:aws:s3:::destination-DOC-EXAMPLE-BUCKET",
"arn:aws:s3:::destination-DOC-EXAMPLE-BUCKET/*"
]
}
]
}
2. 접근하고자 하는 B 계정의 S3 버킷의 정책을 업데이트한다.
{
"Version": "2012-10-17",
"Id": "Policy1611277539797",
"Statement": [
{
"Sid": "Stmt1611277535086",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::222222222222:user/Jane"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::destination-DOC-EXAMPLE-BUCKET/*",
"Condition": {
"StringEquals": {
"s3:x-amz-acl": "bucket-owner-full-control"
}
}
},
{
"Sid": "Stmt1611277877767",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::222222222222:user/Jane"
},
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::destination-DOC-EXAMPLE-BUCKET"
}
]
}
# S3에 파일 복사하기
1. AWS configure를 해당 사용자 key로 변경
2. AWS CLI를 사용하여 S3 파일을 복사한다.
aws s3 cp s3://source-DOC-EXAMPLE-BUCKET/test.png s3://destination-DOC-EXAMPLE-BUCKET/a.png --acl bucket-owner-full-control
728x90
반응형