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 버킷에 접근이 허용될 수도, 거절될 수도 있다.

 

 

 

 # S3 Bucket Policies 

 

 

버킷 정책은 JSON으로 정의한다. 아래 이미지와 같이 JSON 문서로 되어 있다. 

 

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

 

 

Resource에 어떤 버킷, 어떤 오브젝트에 이 정책이 적용되는지 명시되어 있다. 아래의 예시는 "/*"로, 모든 오브젝트에 해당 정책이 적용됨을 의미한다.

 

Effect에는 허용/거절(Allow/Deny) 값이 들어가며, 액션이 허용되는지 거절되는지 나타낸다.