설명
GCP BigQuery Dataset에서 allAuthenticatedUsers에 권한을 부여하면 조직 밖의 Google 인증 사용자와 서비스 계정까지 접근 대상에 포함됩니다. 민감한 데이터 세트에 이런 광범위한 권한을 부여하면 역할에 따라 데이터 조회, 변경 또는 접근 관리가 허용될 수 있습니다.
allAuthenticatedUsers는 익명 사용자를 뜻하지 않지만 조직 내부 사용자만으로 제한되지도 않습니다. 실제 가능한 작업은 부여한 역할과 적용되는 다른 권한 통제에 따라 달라집니다.
잠재적 영향
- 데이터 읽기 권한이 있으면 조직 외부로 정보가 유출될 수 있습니다.
- 변경·관리 권한까지 부여하면 데이터 무결성이나 접근 통제가 훼손될 수 있습니다.
해결 방법
의도적으로 공개할 데이터인지 확인하고, 불필요한 allAuthenticatedUsers 권한을 제거하세요. 승인된 사용자·그룹·서비스 계정에 필요한 최소 역할만 부여하고 상위 수준의 IAM 권한도 검토하세요. 필요한 접근은 성공하고 승인되지 않은 접근은 거부되는지 확인하세요.
예시
같은 데이터 세트의 접근 대상을 바꾸는 예시입니다. 참조한 bqowner 서비스 계정의 정의는 생략했습니다.
변경 전
hcl
resource "google_bigquery_dataset" "analytics_dataset" {
dataset_id = "example_dataset"
location = "EU"
access {
role = "OWNER"
special_group = "allAuthenticatedUsers"
}
}
Google 인증 사용자와 서비스 계정 전체에 OWNER 권한을 부여하므로 접근 범위와 권한이 모두 넓습니다.
변경 후
hcl
resource "google_bigquery_dataset" "analytics_dataset" {
dataset_id = "example_dataset"
location = "EU"
access {
role = "OWNER"
user_by_email = google_service_account.bqowner.email
}
}
대상을 하나의 서비스 계정으로 제한하지만 OWNER 권한은 유지합니다. 이 계정에 데이터 세트 관리 권한까지 필요한지 검토하고, 필요하지 않으면 더 제한된 역할을 사용하세요.