본문 바로가기
CSP (Cloud Service Provider)/AWS

AWS 계정 간 S3 객체 복사 (AWS CLI)

by BTC_SHINN 2023. 12. 7.

베하! 안녕하세요 ~!

BTC_수신자표시제한 입니다

 

오늘은 AWS CLI로 계정 간에 source 계정의 버킷에서 target 계정의 버킷으로

S3 객체 복사하는 방법에 대해 알아보고자 합니다. 


 

 

1. Target 계정에서 역할 생성 

①. IAM 정책 생성 

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetObject",
                "s3:GetObjectTagging",
                "s3:GetObjectVersion",
                "s3:GetObjectVersionTagging"
            ],
            "Resource": [
                "arn:aws:s3:::<source_bucket>",
                "arn:aws:s3:::<source_bucket>/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:PutObjectTagging",
                "s3:GetObjectTagging",
                "s3:GetObjectVersion",
                "s3:GetObjectVersionTagging"
            ],
            "Resource": [
                "arn:aws:s3:::<target_bucket>",
                "arn:aws:s3:::<target_bucket>/*"
            ]
        }
    ]
}

 

②. IAM 역할 생성 

②-1. 신뢰할수 있는 엔티티

 

②-2. 권한추가 : S3copy 정책 연결

 

2. Source 계정에서 S3 버킷 정책 생성 및 연결 

2-1. source Bucket - 권한 탭 - 버킷 정책 편집 

3. 객체 복사 

3-1. AWS CLI 구성 

# 액세스 키 구성
## 입력안내 나오는대로 1-1에서 발급해둔 AccessKey와 SecretAccessKey 값 입력
aws configure

# AWS CLI 호출되는지 확인
aws sts get-caller-identity

# IAM 역할 위임
aws sts assume-role \
   --role-arn "arn:aws:iam::<target_account>:role/s3copy-role" \
   --role-session-name AWSCLI-Session

# IAM 역할 환경변수 생성
export AWS_ACCESS_KEY_ID=<Role-AccessKeyID>
export AWS_SECRET_ACCESS_KEY=<Role-SecretKey>
export AWS_SESSION_TOKEN=<Role-SessionToken>

# IAM 역할 위임 잘됐는지 확인
aws sts get-caller-identity
# 객체 복사
aws s3 cp s3:// SOURCE-BUCKET- / \
    s3:// TARGET-BUCKET / \
    --source-region SOURCE-REGION-NAME --region TARGET-REGION-NAME

# 복사 확인
aws s3 ls s3:// TARGET-BUCKET

 

 


여기까지 AWS CLI를 통한 계정간 S3 객체복사 방법에 대해 알아보았습니다.

다음에 또 만나요 👋👋

댓글