認証済みの全ユーザーを対象とする BigQuery アクセス設定

BigQuery で allAuthenticatedUsers に権限を与えると、組織外の認証済みユーザーもデータにアクセスできる場合があります。必要な対象とロールにアクセスを限定してください。

説明

BigQuery の allAuthenticatedUsers は、組織内のユーザーだけを指すものではありません。Google アカウントで認証したインターネット上のユーザーとサービスアカウントが含まれ、個人の Gmail アカウントも対象になります。認証していない匿名ユーザーは含まれません。

このグループにデータセットのロールを与えると、組織外のユーザーも、そのロールで許可された操作を行えるようになります。内部用データは、必要なユーザー、グループ、サービスアカウントにアクセスを限定してください。実際のアクセス範囲を確認する際は、データセットの権限に加え、上位リソースから継承した権限も調べてください。

想定される影響

  • 有効な権限付与が適用されると、組織外の認証済みユーザーも、そのロールで許可された操作を行えるようになります。読み取り権限があれば、意図しないデータ閲覧やコピーにつながる可能性があります。
  • 広範なグループに書き込みや管理の権限を与えると、影響が大きくなる可能性があります。グループ名だけで、実際の権限や公開範囲を判断しないでください。
  • 既存のアクセス一覧を誤って置き換えると、必要なユーザーやサービスのアクセスも失われるおそれがあります。公開権限の削除と、業務に必要な権限の維持を併せて確認してください。

対処方法

  1. 実際のデータセットのアクセス一覧、IAM ポリシー、上位リソースから継承した権限を調べてください。意図したデータ公開かを判断し、内部用であれば不要な allAuthenticatedUsers への権限付与を削除してください。
  2. 必要なユーザー、グループ、サービスアカウントと、必要最小限のロールを明示してください。
  3. 既存の権限は、BigQuery がサポートするアクセス制御の変更手順で明示的に取り消してください。一覧の更新時には維持すべき項目を残してください。google.cloud 1.14.0 モジュールで access を省略したり空にしたりしても、既存の権限を明示的に取り消したことにはなりません。
  4. 変更後のポリシーを読み直し、許可すべきユーザーと許可すべきでないユーザーのアクセスをそれぞれ確認してください。別の経路で付与された権限が残っていないかも調べてください。

例

認証済みユーザーのグループ指定

yaml
---
- name: create a dataset
  google.cloud.gcp_bigquery_dataset:
    name: my_example_dataset
    access:
      - special_group: allAuthenticatedUsers
    dataset_reference:
      dataset_id: my_example_dataset
    project: test_project
    auth_kind: serviceaccount
    service_account_file: "/tmp/auth.pem"
    state: present

新規データセットの既定のアクセス

yaml
- name: create a dataset
  google.cloud.gcp_bigquery_dataset:
    name: my_example_dataset
    dataset_reference:
      dataset_id: my_example_dataset
    project: test_project
    auth_kind: serviceaccount
    service_account_file: /tmp/auth.pem
    state: present

説明:

  • 認証済みユーザーのグループ指定: allAuthenticatedUsers を指定していますが、role がありません。権限設定が不完全なため、そのまま適用しないでください。
  • 新規データセットの既定のアクセス: 作成時に access を省略すると、BigQuery はプロジェクトの所有者グループ(projectOwners)、書き込み権限のグループ(projectWriters)、読み取り権限のグループ(projectReaders)と、データセット作成者に対する既定のアクセスを追加します。自動的に最小権限になるわけではなく、既存データセットの公開権限を取り消す例でもありません。プロジェクトと認証ファイルは実際の環境に合わせて設定してください。

参考資料