S3 공개 ACL 무시 설정 점검

공개 ACL의 권한이 실제 접근에 사용되지 않도록 보호 설정을 확인하세요.

설명

ignore_public_acls는 공개 ACL이 적용되어 있어도 S3가 그 공개 권한을 접근 제어에 사용하지 않게 하는 보호 장치입니다. block_public_acls가 새 공개 ACL 요청을 차단한다면, 이 옵션은 기존 공개 ACL의 효력도 무시합니다.

실제 권한은 다른 차단 설정과 Object Ownership에도 달려 있습니다. ACL이 비활성화된 버킷에서는 ACL이 권한을 부여하지 않으므로, 이 옵션 하나만으로 공개 상태를 판단할 수는 없습니다.

잠재적 영향

  • 기존 공개 ACL이 유효하면 의도하지 않은 사용자의 접근이 계속 허용될 수 있습니다.
  • 불필요한 읽기 권한으로 객체 내용이나 버킷 내 객체 목록이 공개될 수 있습니다.

해결 방법

  • ignore_public_acls = true로 설정해 공개 ACL의 권한이 접근 제어에 반영되지 않게 하세요.
  • block_public_acls도 함께 검토하고 불필요한 공개 ACL을 제거하세요. 공개 ACL을 무시하더라도 저장된 ACL 자체가 삭제되지는 않습니다.
  • ACL이 필요 없다면 Object Ownership으로 비활성화하세요. 버킷 정책을 포함한 다른 권한도 별도로 확인하세요.

예시

예시는 공개 ACL 무시 옵션을 비교합니다. 새 버킷의 기본 ACL 비활성화와 계정 등의 다른 차단 설정도 적용될 수 있습니다. 버킷 이름은 실제 사용할 이름으로 바꾸세요.

변경 전

hcl
resource "aws_s3_bucket" "example" {
  bucket = "example"
}

resource "aws_s3_bucket_public_access_block" "example" {
  bucket = aws_s3_bucket.example.id

  block_public_acls   = true
  block_public_policy = true
  ignore_public_acls  = false
}

변경 후

hcl
resource "aws_s3_bucket" "example" {
  bucket = "example"
}

resource "aws_s3_bucket_public_access_block" "example" {
  bucket = aws_s3_bucket.example.id

  block_public_acls   = true
  block_public_policy = true
  ignore_public_acls  = true
}

설명:

변경 후에는 공개 ACL의 권한을 무시합니다. 기존 ACL을 삭제하거나 버킷 정책에서 부여한 권한까지 차단하는 설정은 아니므로 실제 접근을 함께 확인하세요.

참조