연재 시리즈

S3 공개(public) 설정 - 버킷 policy 설정편

악분 2023. 9. 2. 21:56
반응형

이전 글에 이어 버킷 policy로 S3를 공개로 설정하는 편을 설명합니다.

▶ 이전 글 링크: https://malwareanalysis.tistory.com/643

 

→ 스터디 소개 글

더보기

이 글은 가시다님이 운영하는 AWS 보안스터디(ahss)를 정리한 글입니다. 이 글 이외에 다른 스터디 정리 글을 보고 싶으신 분은 아래 목차를 참조해주세요!

 

→ 이 글은 유투브 영상으로도 볼 수 있습니다.

 

1. 버킷 policy란?

버킷 policy는 리소스에 policy를 설정하는 방법입니다. ACL 설정방법과 다른점은, ACL는 파일마다 일일이 공개 설정해야 했는데, policy는 패턴을 사용하여 복수 파일을 지정 가능합니다. 또한 policy는 요청자를 AWS 리소스로 필터링 할 수 있습니다.

 

2. 전제조건

이전 글에서 설명한 것처럼 버킷은 퍼블릭 액세스 요청이 허용되어 있어야 합니다.

 

버킷 [Permission -> Block public access] 메뉴에서 Edit버튼을 클릭합니다.

 

Block all public access 체크박스를 해제합니다.

 

퍼블릭 액세스가 off로 되어 있는지 확인합니다.

 

3. 버킷 policy설정

버킷 policy를 설정하여 객체를 공개로 변경합니다.

 

버킷 policy는 [Permissions -> Bucket policy]메뉴에서 Edit버튼을 클릭하여 설정합니다.

 

설정할 policy는 Policy generator로 생성합니다.

 

policy를 생성하기 위해 아래 그림처럼 입력합니다. 적용할 policy는 GetObject이고 ③에 설정합니다. ④번에 policy를 적용할 버킷 arn을 입력해야 하는데 총 2개 버킷 arn을 입력합니다. 버킷 모든 객체에 적용하기위해 "*"를 추가로 입력했습니다.

arn:aws:s3:::{버킷이름},arn:aws:s3:::{버킷이름}/*

 

Add Statement버튼과 Generate Policy버튼을 차례대로 누르면 policy가 생성됩니다. 생성된 policy를 복사합니다.

 

복사한 policy를 버킷 policy설정에 붙여넣습니다.

 

4. 테스트

버킷 파일을 누구나 접근할 수 있는지 확인해보겠습니다.

 

텍스트 파일을 만들고 버킷에 업로드 합니다. 텍스트 파일내용은 hello world로 했습니다.

 

 

버킷에 파일을 업로드하면 외부에서 접근가능한 주소가 생성됩니다. 접근 주소는 파일 상세정보에 있습니다.

 

복사한 주소를 웹 브라우저에 접속하면 파일내용이 잘 보입니다.

 

5. 보너스 테라폼 코드

이 글에서 콘솔로 설정한 내용을 그대로 테라폼 코드로 변경했습니다. 코드는 저의 github에 공개되어 있습니다.

▶ 링크: https://github.com/choisungwook/terraform_s3_public/tree/main/using_bucket_policy

 

반응형