설명
ACL을 사용하는 S3 버킷에서 공개 ACL 권한을 무시하지 않으면 해당 권한이 외부 접근으로 이어질 수 있습니다. IgnorePublicAcls: true는 버킷과 객체의 공개 ACL 권한을 무시하지만 ACL 자체를 삭제하거나 새 공개 ACL 설정 요청을 거부하지는 않습니다.
실제 접근은 ACL 사용 여부와 계정 수준의 차단 등에도 달려 있습니다. 새 버킷은 기본적으로 ACL이 비활성화되므로 이 옵션만으로 공개 여부를 판단할 수는 없습니다.
잠재적 영향
- 공개 읽기 권한이 적용되면 객체 내용이나 목록이 노출될 수 있습니다.
- 남아 있는 공개 ACL을 정리하지 않으면 나중에 차단 설정을 해제할 때 공개 접근이 다시 허용될 수 있습니다.
해결 방법
PublicAccessBlockConfiguration에IgnorePublicAcls: true를 설정하세요.- 새 공개 ACL 요청도 막으려면
BlockPublicAcls를 활성화하고, 비공개 버킷의 나머지 공개 차단 옵션도 확인하세요. - 기존 ACL의 불필요한 공개 권한을 제거하고 필요한 접근은 정책으로 구성하세요.
예시
다음 예제는 같은 버킷의 공개 ACL 보호 설정을 변경합니다.
변경 전
yaml
Resources:
Bucket13:
Type: AWS::S3::Bucket
Properties:
PublicAccessBlockConfiguration:
BlockPublicAcls: false
BlockPublicPolicy: true
IgnorePublicAcls: false
RestrictPublicBuckets: true
공개 ACL 권한을 무시하지 않습니다. ACL이 활성화되어 있고 다른 차단이 없다면 기존 공개 ACL 권한이 적용될 수 있습니다.
변경 후
yaml
Resources:
Bucket13:
Type: AWS::S3::Bucket
Properties:
PublicAccessBlockConfiguration:
BlockPublicAcls: true
BlockPublicPolicy: true
IgnorePublicAcls: true
RestrictPublicBuckets: true
공개 ACL 권한을 무시하고 새 공개 ACL 요청도 차단합니다. 기존 ACL은 자동 삭제되지 않으므로 별도로 정리하세요.