AWS
Amazon S3 보안 - IAM 정책, 버킷 정책, 암호화 키
heesoohi
2025. 2. 22. 20:28
# S3 Security
1. 사용자 기준에서 Amazon S3 보안
- IAM 정책
: 어떤 API가 어떤 IAM 사용자에 의해 호출될 수 있는지 정의한다.
2. 리소스 기준에서 S3 보안
- S3 버킷 정책 - 가장 일반적인 S3 보안 적용 방법
-> 여러 버킷에 적용되는 규칙을 S3 콘솔에서 설정한다.
-> 특정 사용자 혹은 다른 계정의 사용자의 이용을 허용할 수 있다. S3 버킷을 대상으로 교차 계정 액세스가 가능하다. - ACL(액세스 컨트롤 리스트)
: 세밀하게 보안을 관리하는 장치로, 비활성화시킬 수도 있다. - 버킷 ACL
: 버킷 단위에서 관리하기 위한 ACL로 비활성화 시킬 수 있다.
3. 암호화 키
: 버킷 내의 오브젝트를 암호화 키를 사용하여 암호화하는 방식으로 보안을 지킬 수도 있다.
✅ IAM 권한 혹은 리소스 정책이 허용으로 되어 있을 때
✅ 접근 거절 액션이 명시되어 있지 않을 때
➡️ IAM 정책으로 API 호출 시 정책에 기반하여 S3 오브젝트에 접근할 수 있다.

# S3 Bucket Policies
버킷 정책은 JSON으로 정의한다. 아래 이미지와 같이 JSON 문서로 되어 있다.
아래 예시에서는 'GetObject' 라는 Action을 누구든지 호출할 수 있도록 버킷 정책이 정의되어 있다. 해당 버킷의 모든 오브젝트는 공개되어 누구나 읽을 수 있게 설정되어 있는 것! 이렇게 오브젝트를 강제로 암호화할수도, 다른 계정에게 권한을 줄 수도 있다.

Resource에 어떤 버킷, 어떤 오브젝트에 이 정책이 적용되는지 명시되어 있다. 아래의 예시는 "/*"로, 모든 오브젝트에 해당 정책이 적용됨을 의미한다.
Effect에는 허용/거절(Allow/Deny) 값이 들어가며, 액션이 허용되는지 거절되는지 나타낸다.