해당 포스팅은 AWS 강의실(https://www.youtube.com/@AWSClassroom)를 보고 공부한 내용을 정리한 블로그입니다.
아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁
네 자신의 불행을 생각하지 않게 되는 가장 좋은 방법은 일에 몰두하는 것이다.
Ludwig van Beethoven
S3 권한 관리
S3 버킷 정책
IAM 종류
- Identity-based policies(자격 증명 기반 정책)
- 자격 증명(IAM 유저, 그룹, 역할)에 부여하는 정책
- 해당 자격증명이 무엇을 할 수 있는 지 허용
리소스 기반 정책
- Resource-based policies(리소스 기반 정책)
- 리소스(S3, SQS VPC Endpoint, KMS 등)에 부여하는 정책
- 해당 리소스에 누가 무엇을 할 수 있는지 허용 가능
- SQS 대기열에 lambda Service가 접근 가능
- IAM 정책을 평가할 때 리소스 정책 허용이면 허용하는 특징
S3 버킷 정책
- 버킷 단위로 부여되는 리소스 기반 정책
- 해당 버킷의 데이터에 언제 누가 어디서 무엇을 어떻게 할 수 있는지 정의 가능
- 리소스 계층 구조에 따라 권한 조절 가능
- 다른 계정에 엔티티에 대해 권한 설정 가능(cross account)
- 익명 사용자에 대한 권한 설정 가능.
- 기본적으로 모든 버킷은 Private ⇒ 접근 불가능
S3의 계층 구조
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "StatementAllow",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::demo.rwlecture.com/*",
}
]
}
- AWS 콘솔에서는 S3의 디렉토리를 생성 가능하고 확인 가능
- S3 내부적으로는 계층 구조가 존재하지 않음
- 키 이름에 포함된 “/”로 계층 구조를 표현
- 예
- s3:mybucket/aaa/bbb/ccc/ddd
- bucket: mybucket
- key: aaa/bbb/ccc/ddd(단일 스트링)
- effect: 허용
- principal: 누가? ⇒ 퍼블릭 액세스 차단 편집을 수정해야함.
- action: 무엇을
- resource: 어떤 버킷에 대해서?
버킷 관리 방법의 선택
- Identity-based policies(자격 증명 기반 정책)
- 같은 계정의 IAM 엔티티의 S3 권한 관리할 때
- S3 이외에 다른 AWS 서비스와 같이 권한 관리할 때
- Resource-based policies(리소스 기반 정책)
- 익명 사용자 혹은 다른 계정의 엔티티의 S3 이용 권한을 관리할 때
- S3 만의 권한을 관리할 때
Access Control List(ACL)
- 버킷 혹은 객체 단위로 읽기, 쓰기의 권한 부여
- S3에서 설정을 통해 ACL을 활성화 시킨 후에 적용 가능
- 파일 업로드시 설정 가능
- 간단하고 단순한 권한 관리만 가능
- 사용하지 않는 추세 ⇒ 버킷 괸리로 사용 가능함.