S3 공개 정책 버킷의 접근 제한 점검

공개 정책이 있는 S3 버킷의 접근을 제한하고 불필요한 공개 권한을 제거하세요.

설명

RestrictPublicBuckets는 공개 정책이 있는 S3 버킷의 접근을 AWS 서비스 주체와 버킷 소유 계정의 권한 있는 사용자로 제한합니다. 이 보호가 적용되지 않으면 공개 정책이 허용한 외부 접근이 가능할 수 있습니다. 실제 접근에는 계정 수준의 차단 등 다른 제어도 적용됩니다.

이 설정은 공개 정책 자체를 삭제하지 않습니다. 공개로 분류된 정책에서는 특정 외부 계정에 대한 별도 허용도 차단될 수 있으므로 필요한 계정 간 연동을 확인해야 합니다.

잠재적 영향

  • 공개 정책이 객체 읽기를 허용하면 의도하지 않은 사용자에게 데이터가 노출될 수 있습니다.
  • 공개 쓰기나 삭제 권한까지 부여하면 데이터 변경이나 손실로 이어질 수 있습니다.

해결 방법

  • 비공개 버킷에는 PublicAccessBlockConfiguration.RestrictPublicBuckets: true를 설정하세요.
  • 불필요한 공개 정책 문장을 제거하고 필요한 계정과 역할만 지정하세요. 변경 후 필요한 서비스 및 계정 간 접근을 확인하세요.
  • BlockPublicPolicy와 ACL 차단 옵션도 함께 검토하세요. 새 공개 정책을 거부하는 설정만으로 기존 공개 정책의 접근이 제거되지는 않습니다.

예시

다음은 같은 버킷의 퍼블릭 액세스 차단 설정을 비교한 예제입니다.

변경 전

yaml
Resources:
  Bucket13:
    Type: AWS::S3::Bucket
    Properties:
      PublicAccessBlockConfiguration:
        BlockPublicAcls: false
        BlockPublicPolicy: true
        IgnorePublicAcls: false
        RestrictPublicBuckets: false

기존 공개 정책에 따른 접근을 RestrictPublicBuckets로 제한하지 않습니다. 계정 수준의 차단 등은 여전히 적용되며, 이 설정만으로 실제 공개 정책이 존재한다고 판단할 수는 없습니다.

변경 후

yaml
Resources:
  Bucket13:
    Type: AWS::S3::Bucket
    Properties:
      PublicAccessBlockConfiguration:
        BlockPublicAcls: true
        BlockPublicPolicy: true
        IgnorePublicAcls: true
        RestrictPublicBuckets: true

공개 정책이 있을 때 접근을 제한하고 다른 공개 차단도 활성화합니다. 필요한 외부 계정 접근을 유지하려면 정책에서 공개 권한을 제거하고 해당 계정의 권한을 명확히 구성하세요.

참조