CLI를 통해 S3 버킷 생성 및 정책 설정하기
CLI 명령어를 사용하는 것을 정말 좋아하며, 이는 내 일상이다. 오늘은 CLI를 통해 'AWS에서 S3 버킷을 어떻게 생성하는지' 그리고 'S3 버킷 정책을 어떻게 설정하는지'를 설명한다.

CLI 명령어를 사용하는 것을 정말 좋아하며, 이는 내 일상이다. 오늘은 CLI를 통해 "AWS에서 S3 버킷을 어떻게 생성하는지" 그리고 "S3 버킷 정책을 어떻게 설정하는지"를 설명한다. 시작하자...
먼저 AWS_ACCESS_KEY와 AWS_SECRET_ACCESS_KEY를 설정해야 한다. 즉, aws configure 명령을 미리 실행해야 한다는 의미다. 이 작업을 완료했다면 계속 진행할 수 있다.
먼저 S3 버킷 확인하기
우선 어떤 버킷이 있는지 확인해야 한다. aws s3 ls 명령을 실행하면 기존 버킷이 반환된다.
~ aws s3 ls
2021-04-26 11:01:32 ercanermis
2021-05-20 19:14:04 ercanermis-aws-ssm-logs
2021-04-26 11:01:43 ercanermis-com
2021-04-26 11:02:08 www-ercanermis-comS3 버킷 생성하기
S3 버킷 생성 명령도 간단하고 쉽다. aws s3 mb다. 실행하고 버킷을 다시 나열해보자.
~ aws s3 mb s3://hello-this-is-new-bucket
make_bucket: hello-this-is-new-bucket이제 확인을 위해 기존 버킷을 모두 다시 나열해본다.
~ aws s3 ls
2021-04-26 11:01:32 ercanermis
2021-05-20 19:14:04 ercanermis-aws-ssm-logs
2021-04-26 11:01:43 ercanermis-com
2022-07-17 14:23:29 hello-this-is-new-bucket
2021-04-26 11:02:08 www-ercanermis-com그렇다, 새로 생성한 버킷이 보인다. 버킷 이름은 hello-this-is-new-bucket이다.
S3 버킷의 버킷 정책 확인하기
이전 단계에서 버킷을 생성했지만, 버킷 정책은 어떨까? 먼저 기존 정책이 있는지 확인해야 한다. 다음은 예시다:
~ aws s3api get-bucket-policy --bucket hello-this-is-new-bucket
An error occurred (NoSuchBucketPolicy) when calling the GetBucketPolicy operation: The bucket policy does not exist
새로 생성된 버킷은 기본적으로 정책이 없다. 이제 CLI로 정책을 생성할 시간이다.
버킷 정책 생성하기
정책은 JSON 형식이어야 하며 JSON 파일을 생성할 수 있다. 내 버킷 정책은 모든 사용자가 hello-this-is-new-bucket의 secret-folder에 있는 객체를 제외한 모든 객체를 조회할 수 있도록 허용한다. 또한 AWS 계정 "1234-5678-9012"의 "root" 사용자에게 Put 및 Delete 권한을 부여한다.
my-s3-bucket-policy.json:
{
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::hello-this-is-new-bucket/*"
},
{
"Effect": "Deny",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::hello-this-is-new-bucket/secret-folder/*"
},
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789012:root"
},
"Action": [
"s3:DeleteObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::hello-this-is-new-bucket/*"
}
]
}S3 버킷에 버킷 정책 적용하기
정책 적용도 쉽다. 아래에서 확인할 수 있다.
aws s3api put-bucket-policy --bucket hello-this-is-new-bucket --policy file://my-s3-bucket-policy.jsonput-bucket-policy 명령 후, aws cli는 어떤 출력도 제공하지 않지만, CLI를 통해 버킷 정책을 확인하는 방법을 이미 알고 있으므로 확인이 필요하면 확인할 수 있다.
이 글을 읽어줘서 매우 감사하며, 즐거운 코딩 되길!
Ercan의 다른 글
같은 저자, 다른 영역의 사이트 두 개.