[AWS] 서로 다른 Account 간에 S3 bucket replication 설정

pokcha's·2021년 6월 10일
0

aws

목록 보기
1/9

계정 간 S3 동기화를 지원하는 Replicating objects(객체 복제)를 알아보자.
S3 버킷 전체에 비동기식으로 자동 복사할 수 있고 다른 계정 간 복사가 가능하다.
아쉬운 점은 활성화된 새로운 S3 객체 복사만 지원하고 기존 객체를 받아올순 없다. (sync를 사용하자)
Source Bucket과 Destination bucket 모두 설정을 해주어야 한다.

1. Source Bucket Owner 작업

source bucket에서 복제 규칙 생성을 선택한다.

❗️Bucket replication을 사용하기 위해서는 Source와 Destination bucket에서 Bucket Versioning이 활성화되어 있어야 한다.

복제 규칙 이름을 입력한다.

Replication을 받고자 하는 account ID 및 Destination Bucket 이름을 입력한다. Replication 되는 오브젝트는 기본적으로는 Source owner의 permission을 가지나 Destination owner가 권한을 가지도록 체크한다.
S3가 복제 작업을 할 수 있도록 IAM role 설정이 필요한데 새 역할 생성을 설정해서 자동으로 필요한 권한을 설정할 수 있도록 한다. 이때 생성한 IAM role 이름은 Destination 작업 에서 필요하다.

나머지 옵션은 필요에 따라 설정하면 된다.

2. Destination bucket Owner 작업

Destination bucket에 Source Owner의 설정에 의해서 replication이 진행될 수 있도록 다음과 같은 Bucket Policy를 추가한다.
Source Bucket Owner의 account ID와 앞 단계에서 설정한 IAM role 이름을 Policy 설정시에 지정해 주면된다

{
   "Version":"2012-10-17",
   "Id":"PolicyForDestinationBucket",
   "Statement":[
      {
         "Sid":"Permissions on objects",
         "Effect":"Allow",
         "Principal":{
            "AWS":"arn:aws:iam::SourceBucket-AcctID:source-acct-IAM-role"    //Source Bucket 작업 시 생성한 IAM 역할 ARN
         },
         "Action":[
            "s3:ReplicateDelete",
            "s3:ReplicateObject"
         ],
         "Resource":"arn:aws:s3:::destinationbucket/*"    //Destination Bucket
      },
      {
         "Sid":"Permissions on bucket",
         "Effect":"Allow",
         "Principal":{
            "AWS":"arn:aws:iam::SourceBucket-AcctID:source-acct-IAM-role"    //Source Bucket 작업 시 생성한 IAM 역할 ARN
         },
         "Action": [
            "s3:List*",
            "s3:GetBucketVersioning",
            "s3:PutBucketVersioning"
         ],
         "Resource":"arn:aws:s3:::destinationbucket"	//Destination Bucket
      }
   ]
}

성공이 되면 복제 규칙에 상태가 활성화 되어 자동으로 버킷이 동기화 된다.

profile
AWS 운영기록 💾

1개의 댓글

comment-user-thumbnail
2021년 7월 6일

안녕하세요.
destination bucket policy만 올려주셨는데요.
source bucket policy 와 iam role에 policy도 어떻게 만드셨는지 궁금합니다!!

답글 달기