개요
최근 S3 버킷 정책에서 ACL 관련 권한을 조정해야 하는 일이 있었는데, 조금 더 보니 ACL 관련 설정을 할 수 있는 ACL 항목이 따로 있는 것을 발견했다.
버킷 정책의 ACL 권한과 ACL 항목은 어떤 부분에서 차이가 있을까? 정리해둔다.
ACL
ACL이란 Access Control List의 약자로, 말 그대로 접근 제어 목록이다. AWS S3에서의 ACL은 버킷과 객체에 대한 접근을 관리하는 리소스 기반 옵션으로, 접근을 허용할 AWS 계정이나 그룹, 접근 유형을 정의한다.
ACL 사용 시 S3가 리소스에 대한 요청을 수신하면, S3는 ACL을 확인해 요청자가 필요한 접근 권한을 보유하고 있는지 판단한다. 이 때 요청자는 일반 사용자, 계정 소유자, 리소스 그룹 등이 될 수 있다.
버킷에 대한 접근과 객체에 대한 접근을 독립적으로 제어할 수 있기 때문에, 버킷 소유자와 객체 소유자가 다른 경우에 사용할 수 있다. 즉, 객체에 대한 접근을 개별적으로 제어할 필요가 있는 상황을 제외한 일반적인 사례에서는 ACL을 비활성화한다. 또한 ACL은 IAM이나 버킷 정책에 비해 넓은 범위를 제어하지만, 접근 가능 요청자와 허용 작업 정도의 간단한 부분만 설정할 수 있다.
버킷 정책 VS ACL
버킷 정책은 사용자 별로 버킷에 대해 작업할 수 있는 범위를 설정할 때 사용한다. ACL과 유사하게 버킷, 객체에 대한 접근 설정을 제어하지만 몇 가지 차이점이 존재한다.
일단 버킷 젗책은 버킷에 대한 전반적인 설정은 가능하지만 버킷 내 객체 각각에 대한 권한 설정을 불가능하다.
참고 문서
https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/acl-overview.html