← 목록으로AWS

S3 퍼블릭 액세스 차단 가이드 — Block Public Access 설정과 위험도 판단

S3 버킷의 퍼블릭 액세스 차단(Block Public Access) 4가지 옵션의 동작 원리, 상태별 위험도 판단, 조치 방법을 정리한 실무 가이드

AWSS3SecurityDevOps
2026-04-06

퍼블릭 액세스란

S3 버킷이 인터넷에 공개되어 있어서, AWS 계정 외부의 누구나 파일을 읽거나 쓸 수 있는 상태입니다.

퍼블릭 접근이 가능해지는 경로는 두 가지:

  • 버킷 정책(Bucket Policy)에 "Principal": "*" 설정
  • 버킷 ACL에 퍼블릭 읽기/쓰기 권한 부여

Block Public Access란

퍼블릭 접근을 원천 차단하는 안전장치입니다. 버킷 정책이나 ACL로 퍼블릭 접근을 허용하더라도 이 설정이 켜져 있으면 차단됩니다.

4가지 차단 옵션

옵션설명
BlockPublicAcls새로운 퍼블릭 ACL 추가 차단
IgnorePublicAcls기존 퍼블릭 ACL 무시
BlockPublicPolicy새로운 퍼블릭 버킷 정책 추가 차단
RestrictPublicBuckets퍼블릭 정책이 있는 버킷의 퍼블릭/교차 계정 접근 제한

4개 전부 켜는 것이 권장됩니다.


상태별 위험도

퍼블릭 차단버킷 정책실제 상태위험도
활성정책 없음안전 + 실수 방지안전
활성퍼블릭 정책 있음차단됨 (정책 무시)안전
비활성정책 없음현재는 안전, 실수 방지 장치 없음주의
비활성퍼블릭 정책 있음누구나 접근 가능위험

"퍼블릭 차단 비활성 + 정책 없음" 상태는 지금 당장 위험하지는 않지만, 누군가 실수로 퍼블릭 정책을 추가하면 즉시 공개됩니다. Config 규칙에 걸리는 이유가 이것입니다.


확인 방법

퍼블릭 액세스 차단 확인

  1. S3 → 버킷 클릭 → "권한(Permissions)" 탭
  2. "퍼블릭 액세스 차단" 섹션
  3. 4개 항목이 전부 "켜짐"이면 안전

버킷 정책 확인

같은 "권한" 탭 → "버킷 정책" 섹션에서 "Principal": "*" 또는 "Principal": {"AWS": "*"}가 있으면 퍼블릭입니다.


조치 방법

퍼블릭 접근이 필요 없는 버킷 (대부분)

  1. S3 → 버킷 → "권한" 탭
  2. "퍼블릭 액세스 차단" → "편집"
  3. 4개 항목 전부 체크 → "변경 사항 저장"
  4. 확인 문구에 confirm 입력 → 저장

기존 동작에 영향 없습니다. AWS SDK/CLI를 통한 IAM 인증 접근은 퍼블릭 차단과 무관합니다.

퍼블릭 접근이 의도적으로 필요한 버킷

정적 웹사이트 호스팅, 외부 파일 공유 등의 경우 Config 규칙에서 예외 리소스로 등록하여 미준수 집계에서 제외합니다.


주의사항

  • 퍼블릭 액세스 차단은 버킷 레벨과 계정 레벨 두 곳에서 설정 가능
  • 계정 레벨에서 차단하면 모든 버킷에 일괄 적용됨
  • 퍼블릭 차단을 켜도 CloudFront OAC/OAI를 통한 접근은 영향 없음 (퍼블릭이 아닌 IAM 기반 접근)
  • 퍼블릭 차단을 켜도 presigned URL은 정상 동작 (서명된 요청이라 퍼블릭이 아님)

정리

  • S3 퍼블릭 액세스 차단은 실수로 인한 데이터 공개를 원천 방지하는 안전장치
  • 4개 옵션 전부 활성화가 권장되며, 기존 IAM 인증 접근에는 영향 없음
  • CloudFront OAC, presigned URL 등 정상적인 접근 방식은 퍼블릭 차단과 무관
  • Config 규칙 s3-bucket-public-read/write-prohibited로 지속 감시