[입 개발] aws s3 bucket owner control policy 중에 BucketOwnerFullControl 에 대해서

예전에 Udemy 다닐 때 크게 한 번 당했던 내용인데, 오늘 다시 한번 겪어서 정리합니다. 알고나면 큰 이슈도 아니고….

결론부터 말하자면, S3 Bucket 을 생성할때는 그냥 BucketOwnerFullControl 설정하는게 좋은데, 이제는 비슷하게 2023년 4월부터 모든 새 S3 버킷에 대한 ACL이 비활성화 되므로 BucketOwnerEnforced 를 쓰시면 됩니다.

https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/about-object-ownership.html

이게 왜 문제가 되느냐? AWS를 쓰다보면 여러 이유로 멀티 Account 를 사용하게 되고, 이러면 다른 계정에서 특정 계정의 Bucket을 읽거나 써야하는 경우가 생깁니다. 다른 계정에서 읽어만 가는 경우는 큰 문제가 없는데, 다른 계정에서 해당 Bucket 에 쓰기를 하는 순간 권한 이슈가 발생하게 됩니다.

흔하게 다른 계정에서 스면, 해당 오브젝트의 권한이 생성자의 권한이 되버려서 정작 해당 버킷 소유자가 해당 오브젝트를 읽을 수 가 없습니다. 이런 걸 방지하는 것이 BucketOWnerFullControl 이거나 이제는 그냥 ACL을 끄고 Bucket Owner Enforced 를 쓰는 것입니다. 즉, 누가 쓰든 다 버킷 소유자의 것이다 라는 것이죠.

알고나면 별거 아닌데, 모르면, 엄청 고생하게 되는게… 이것입니다.