버킷 정책은 어떻게 설정할까?
버킷 정책 (Bucket Policy)
--
버킷 정책은
AWS S3 버킷 전체에 대한 접근 권한을 제어하는 JSON 형식의 접근 제어 정책으로,
주로 버킷과 그 안에 저장된 모든 객체에 대해 접근 권한을 부여하거나 제한하는 데 사용된다.
버킷 정책과 ACL의 차이점
- 버킷 정책 : ACL보다 정교하고 세부적인 접근 제어를 제공하며, IAM 정책과 유사하게 조건부 접근 설정가능
- ACL : 객체나 버킷에 대한 접근 권한을 설정하는 기본적인 방식으로, 세부적인 조건을 추가하는 데 제한적
AWS에서는 보안을 강화하기 위해 ACL 사용을 줄이고, 버킷 정책을 권장
--
[버킷 정책 과정] 버킷 정책 설정 위치
--
S3 -> 버킷 -> 정책 설정할 버킷 클릭
권한 -> 버킷 정책 편집
--
[버킷 정책 과정] 정책 추가하기
--
버킷 정책 편집 -> 새 문 추가
여기서 이미 기본적인 권한 설정 JSON 코드들이 완성되어 있어
원하는 권한을 찾아 선택하고 수정이 필요하면 해당 코드를 기반으로 수정해주기만 해 주면 된다.
--
[버킷 정책 과정] S3 버킷에 업로드된 객체(이미지)를 조회하는 권한 설정
--
s3 검색 -> s3 선택 -> GetObject 선택 -> 리소스 추가 버튼
GetObject는
S3 버킷에 있는 객체를 조회하는 권한을 허용하는 JSON 코드
리소스 유형은
해당 정책을 적용할 대상을 선택하는 파트로
객체에 대한 권한을 설정하고 있으니 object를 선택한다.
리소스 ARN은
AWS에서 리소스를 고유하게 실벽하는 이름으로
해당 정책을 적용할 때 해당 리소스를 명확하게 지정하기 위해 버킷을 명시해 주는 파트다.
여기서 작성하는 기본 틀대로 작성해주면 된다.
arn:aws:s3:::{BucketName}/{ObjectName}
- {BucketName} : 적용할 버킷 이름
- {ObjectName} : 적용할 객체 이름
모든 객체에 적용할 것이므로 "와일드카드(*)"로 작성했다.
ARN (Amazon Resource Nubmer)는
AWS에 존재하는 리소스를 표현하는 문법을 의미한다.
위 코드에서 "Principal"의 값을 *로 수정한다.
코드 설명
- "Sid" : Statement Id의 줄인말로 해당 정책을 고유하게 식별하기 위한 식별자다.
- "Principal" : 해당 정책이 적용되는 사용자, 계정, 서비스 등 권한을 허용할 대상을 지정한다.
- "Effect" : 해당 권한을 허용(Allow)할지 거부(Deny)할지 결정한다.
- "Action" : 허용 및 거부할 권한의 종류를 지정한다.
- "Resource" : 해당 정책이 적용될 S3버킷 및 객체를 지정한다.
즉 위 코드를 해석하면
real-moment-s3-bucket 버킷에 있는 모든 파일들을
조회하는 것에 대해 모두에게 권한을 허용해 준다는 의미다.
--
참고 및 출처
'AWS' 카테고리의 다른 글
[S3] S3와 Spring Boot 연동하기 (3) | 2024.11.15 |
---|---|
[S3] S3 버킷 생성하기 (2) | 2024.11.14 |
[S3] S3란? (3) | 2024.11.13 |
EC2 인스턴스 상태검사 "1/2개 검사 통과" (EC2 인스턴스 서버 다운) (1) | 2024.10.08 |
[ELB] ACM(SSL/TLS 인증서)를 통해 HTTPS 설정하기 (+ HTTP요청시 HTTPS로 자동 리다렉트) (0) | 2024.09.06 |