Cloud Storage 공개 ACL 주체 점검

공개 ACL 주체에 부여하는 권한과 실제 데이터 접근 범위를 확인하세요.

설명

Cloud Storage ACL의 allUsers는 익명 사용자를 포함하며, allAuthenticatedUsers는 조직에 한정되지 않은 인증된 사용자와 서비스 계정을 포함합니다. 공개 배포가 목적이 아니라면 이런 주체에 접근 권한을 부여하지 않아야 합니다.

노출 범위는 부여한 역할과 버킷·객체에 따라 달라집니다. 버킷의 READER ACL은 버킷 내 객체 목록 조회를 허용하며, 객체 내용 읽기 권한은 별도로 확인해야 합니다.

잠재적 영향

  • 넓게 허용된 목록 조회로 객체 이름과 저장 구조가 노출될 수 있습니다.
  • 객체 읽기 권한까지 공개되면 파일 유출이나 무단 다운로드로 이어질 수 있습니다.

해결 방법

  • 불필요한 allUsers와 allAuthenticatedUsers 권한을 ACL과 IAM에서 제거하고 승인된 주체에 필요한 역할만 부여하세요.
  • 비공개 버킷에는 Public Access Prevention을 검토하세요. 균일한 버킷 수준 액세스로 ACL을 끄는 경우 기존 접근을 IAM으로 전환하고 실제 권한을 확인하세요.

예시

지원이 종료된 Deployment Manager 형식에서 ACL 주체만 비교한 발췌입니다. 대상 버킷과 role 등 필수 설정은 생략되어 있으며, 현재 지원되는 도구에서 실제 주체와 최소 권한을 구성해야 합니다.

변경 전

yaml
resources:
  - name: bucket-access-control
    type: storage.v1.bucketAccessControl
    properties:
      entity: allUsers

변경 후

yaml
resources:
  - name: bucket-access-control
    type: storage.v1.bucketAccessControl
    properties:
      entity: user-example@example.com

설명:

  • 변경 전: 익명 사용자를 포함하는 공개 주체를 지정합니다. 실제 허용 작업은 역할에 달려 있습니다.
  • 변경 후: 특정 사용자로 주체를 제한합니다. 예시 주소를 승인된 사용자로 바꾸고 다른 ACL과 IAM의 공개 권한도 제거해야 합니다.

참조