일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- flask
- TypeScript
- dict
- S3
- 파이썬
- 카톡
- async
- SAA
- git
- node
- EC2
- 중급파이썬
- merge
- 튜플
- socket io
- NeXT
- SSA
- Class
- MongoDB
- AWS
- RDS
- pandas
- Props
- wetube
- lambda
- crud
- Vue
- 채팅
- docker
- react
- Today
- Total
초보 개발자
AWS 다른 계정의 S3로 데이터 복사 본문
AWS 아키텍처
위의 아키텍쳐는 AWS 공식 사이트에서 제공하는 이미지이다.
준비물
먼저 필요한 것은 다음과 같다.
1. S3
2. IAM
3. CLI
과정
앞으로 Source Account는 복사되는, Destination Account는 복사하는 으로 설명하겠다.
먼저 복사되는 S3버켓에 복사하는 계정이 버켓, 버켓안에 있는 객체를 읽을 수 있는 Policy를 생성하여 부착하자.
Create a bucket policy to allow a user in the destination account to list the source bucket’s contents and read the source bucket’s objects. Attach the bucket policy to the source bucket.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DelegateS3Access",
"Effect": "Allow",
"Principal": {"AWS": "arn:aws:iam::<destination_account>:role/<RoleName>"},
"Action": ["s3:ListBucket","s3:GetObject"],
"Resource": [
"arn:aws:s3:::awsexamplesourcebucket/*",
"arn:aws:s3:::awsexamplesourcebucket"
]
}
]
}
그 다음, 복사하는 계정에 , 복사되는 계정의 S3버켓을 읽고, 그 안의 객체 또한 가져올 수 있는 권한을 부여하고, 또 자신의 S3버켓에 객체를 업로드할 수 있는 Policy를 생성 후 부착하자.
Create an IAM policy in the destination account. Configure the policy to allow a user in the destination account to list contents and get objects in the source bucket, and to list contents, put objects, and set objectACLs in the destination bucket. Attach the policy to the user.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::awsexamplesourcebucket",
"arn:aws:s3:::awsexamplesourcebucket/*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:PutObject",
"s3:PutObjectAcl"
],
"Resource": [
"arn:aws:s3:::awsexampledestinationbucket",
"arn:aws:s3:::awsexampledestinationbucket/*"
]
}
]
}
마지막으로copy 및sync 명령을 실행하여 원본 S3 버킷에서 대상 S3 버킷으로 데이터를 전송합니다. ( 복사하는 IAM 유저에서 진행 )
Run the aws s3 sync command as a user in the destination account. Specify the source and destination buckets to copy the data.
COPY
aws s3 cp s3:// DOC-EXAMPLE-BUCKET-SOURCE / \
s3:// DOC-EXAMPLE-BUCKET-TARGET / \
--recursive --source-region SOURCE-REGION-NAME --region DESTINATION-REGION-NAME
SYNC
aws s3 sync s3:// DOC-EXAMPLE-BUCKET-SOURCE / \
s3:// DOC-EXAMPLE-BUCKET-TARGET / \
--source-region SOURCE-REGION-NAME --region DESTINATION-REGION-NAME
참고:
'AWS' 카테고리의 다른 글
AWS Budgets 을 사용하여 과금 제한 (0) | 2023.05.23 |
---|---|
AWS Lambda canary release ( alias, version, weight ) (0) | 2023.05.17 |
AWS VPC prefix lists (0) | 2023.05.15 |
AWS 다른 계정 간의 VPC에 프라이빗 호스트존을 연결시키는법. (1) | 2023.05.11 |
AWS S3 크로스 계정 액세스 권한 제공 (0) | 2023.05.10 |