5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

BigQueryでデータの公開設定をする方法と公開設定の確認方法

Last updated at Posted at 2020-12-22

BigQuery Advent Calendar 2020 12/23の記事です。

BigQueryのデータには一般公開されているデータが多くあります。
同じように自分で持つデータを一般公開したい場合もBigQueryでは簡単に出来ます.

データを一般公開する方法

やり方はいたって簡単で、datasetに対し下記のいずれかのユーザの閲覧権限をつければよいだけです

  • allUsers
  • allAuthenticatedUsers

allAuthenticatedUsersとは、組織の認証を受けたユーザと勘違いしがちですが以下のユーザとなっております

allAuthenticatedUsers は、すべてのサービス アカウント、および Google アカウントで認証されたユーザー全員を表す特殊な識別子です。この ID には、個人用 Gmail アカウントなど、Google Workspace または Cloud Identity のドメインに接続していないアカウントも含まれます。認証されていないユーザー(匿名の訪問者など)は含まれません。

つまり、google認証通っているすべてのアカウントがallAuthenticatedUsersの対象となります。

一般公開の注意点

一般公開した場合は、監査ログからアクセス元のIDやIPは取れない仕様となっています。

公開設定しているデータセットの確認方法

意図した公開設定なら良いのですが、意図してないデータセットを公開してしまっている場合もあるかもしれません。
その際の確認方法としていくつかあるので紹介します。

組織単位での確認方法

  • Security Command Centerを使った確認方法
    SecurityCommandCenter(以下SCC)ではBQの公開設定の検知が出来ます
    SCCを使ってる人はまずはダッシュボードから確認するのがよいと思います

  • Cloud Asset Inventoryを使った確認方法
    CLIで確認したい場合はCloud Asset Inventoryのsearch-all-iam-policies使って確認が出来ます
    サンプルコマンドはこちらです

gcloud asset search-all-iam-policies --scope organizations/ORGANIZATION_NUMBER --query "policy:(allAuthenticatedUsers OR allUsers)"

プロジェクト単位での確認方法

組織単位での確認権限が無いが自分のプロジェクトは確認しておきたいという場合もあるかと思います。

  • Cloud Asset Inventoryを使った確認方法
    検索の範囲をプロジェクトに絞ることで組織権限がなくても確認することが出来ます
gcloud asset search-all-iam-policies --scope projects/PROJECT_ID --query "policy:(allAuthenticatedUsers OR allUsers)"

まとめ

BigQueryの公開設定方法と、公開設定の確認方法を共有させていただきました。
公開設定がされたかの検知をしたい場合はSCCでもCloudAssetInventoryでも検知結果をリアルタイムにpub/subに飛ばすことが出来るので、pub/subからslackなどに通知するシステムを作るのがいいのではないかと思います。

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?