説明
BigQuery データセットの access に allAuthenticatedUsers を指定すると、組織内に限らず、認証済みのすべての BigQuery ユーザーに指定したロールを付与します。匿名アクセスとは異なりますが、アクセスが不要な外部ユーザーにも許可する可能性があります。
実行できる操作はロールによって異なります。特に OWNER は読み取り専用ではないため、データセットの管理権限も確認する必要があります。
想定される影響
- 機密の分析データ、顧客情報、内部指標が外部に漏えいするおそれがあります。
- 過剰なロールにより、データ変更やアクセス権の管理まで許可される場合があります。
対処方法
- 公開が目的でなければ公開グループへの権限を削除し、必要なユーザー、グループ、サービスアカウントだけを許可してください。
- 参照だけが必要な主体には、その用途に合う最小限のロールを付与してください。
- アクセス一覧を変更する際は必要な既存項目を維持し、必要なアクセスが引き続き成功し、不要なアクセスが拒否されることを確認してください。
例
Deployment Manager はサポートが終了した従来のツールです。サポートされる管理ツールへの移行を計画してください。データセット ID とグループのアドレスは実際の値に置き換えてください。
変更前
yaml
resources:
- name: bigquery
type: bigquery.v2.dataset
properties:
datasetReference:
datasetId: analytics
access:
- role: OWNER
specialGroup: allAuthenticatedUsers
- role: READER
groupByEmail: analytics-readers@example.com
認証済みのすべての BigQuery ユーザーに OWNER を付与しています。
変更後
yaml
resources:
- name: bigquery
type: bigquery.v2.dataset
properties:
datasetReference:
datasetId: analytics
access:
- role: READER
groupByEmail: analytics-readers@example.com
公開グループの項目を削除し、指定した Google グループに READER だけを付与しています。必要な管理者の権限も別途維持してください。