설명
Cloud Storage IAM의 allUsers는 익명 사용자를 포함하고, allAuthenticatedUsers는 조직 외부의 인증된 Google 계정도 포함합니다. 부여한 역할과 적용되는 제한에 따라 데이터 읽기나 변경을 허용할 수 있습니다.
잠재적 영향
- 내부 데이터나 백업 파일이 외부에 노출될 수 있습니다.
- 쓰기·삭제 권한까지 공개하면 데이터 손상이나 서비스 중단이 발생할 수 있습니다.
해결 방법
- 불필요한 공개 주체를 제거하고 승인된 사용자, 그룹 또는 서비스 계정에 필요한 최소 역할만 부여하세요. 비공개 버킷에는 Public access prevention도 검토하세요.
- 의도적인 공개 자료는 별도 버킷으로 분리하고 읽기 등 필요한 작업만 허용하세요. 다른 IAM·ACL 권한과 실제 접근도 확인하세요.
예시
기존 버킷의 IAM 멤버 설정입니다. 예제 계정을 실제 승인된 계정으로 바꾸세요. 변경 후에도 광범위한 roles/storage.admin은 남으므로 업무에 맞게 축소해야 합니다.
변경 전
hcl
resource "google_storage_bucket_iam_member" "example" {
bucket = google_storage_bucket.default.name
role = "roles/storage.admin"
member = "allUsers"
}
변경 후
hcl
resource "google_storage_bucket_iam_member" "example" {
bucket = google_storage_bucket.default.name
role = "roles/storage.admin"
member = "user:jane@example.com"
}
설명:
- 변경 전: 모든 사용자에게 관리 역할을 부여합니다. 실제 허용 범위에는 Public access prevention 등 다른 통제도 적용됩니다.
- 변경 후: 주체를 특정 사용자로 제한합니다. 다른 공개 권한을 제거하거나 역할을 최소화하는 작업까지 수행하지는 않습니다.