説明
GCP BigQuery データセットで 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 権限は残ります。データセットの管理まで必要か確認し、不要ならより限定的なロールを使用してください。