コンテンツに移動
データ分析

BigQuery がテーブルレベルのアクセス制御に対応

2020年6月10日
Google Cloud Japan Team

※この投稿は米国時間 2020 年 6 月 10 日に、Google Cloud blog に投稿されたものの抄訳です。

Google Cloud でのデータ管理に役立つ重要な新機能となる BigQuery のテーブルレベルのアクセス制御(テーブル ACL)機能をご紹介します。これは、これまでよりさらにきめ細かくデータを制御、共有するうえで重要となる機能です。一般的なデータ ウェアハウス システムでは、テーブルがセキュリティの基本要素の一つとなっていますが、BigQuery にテーブル アクセス制御機能が導入されたことにより、こうしたシステムとの互換性が高まり、セキュリティ ポリシーの移行が簡単になります。

テーブル ACLは、Google Cloud のエンタープライズ グレードのアクセス制御プラットフォームである Cloud Identity and Access Management(Cloud IAM)上に構築されています。これまでも BigQuery では、IAM ロールやカスタムロール機能との統合により、データセット、プロジェクト、フォルダへのアクセスを制御することが可能でした。BigQuery のテーブルレベルの ACL ではテーブルに対しても同様のアクセス制御を行うことが可能で、「最小限の権限を付与する」という原則を徹底できます。この機能と BigQuery の列レベルのセキュリティを組み合わせることで、Google Cloud でデータを効果的に管理し、GDPR や CCPA などのコンプライアンスを常に満たすことができるようになります。

テーブル ACL を使えば、データセット全体ではなく、データセットに含まれる個々のテーブルごとに読み取り権限や書き込み権限を付与することが可能です。テーブルごとにアクセスを制御できるので(よりきめ細かいアクセス制御)、たとえば社外の関係者に対してテーブルを 1 つだけ共有することもできます。また、テーブルとデータセットへのアクセスは、いずれもシンプルな統合メカニズムで制御されます。

現在、BigQuery ユーザーの多くは、承認済みビューを使ってテーブルへの読み取り専用権限を制御しています。承認済みビューを使えば、データオーナーは、複数のテーブルを結合してデータ形式を整えてから共有できます。しかし、データ形式を整えずに単に 1 つのテーブルを共有するだけの場合、承認済みビューはやや煩雑です。テーブル ACL なら、こうしたユースケースに効率的に対処できます。テーブル ACL は Cloud IAM を基盤としています。

テーブル ACL を使ってみる

 BigQuery ウェブ UI では [テーブルを共有] ボタンとして実装されていて、このボタンを押すと Cloud IAM 権限パネルが表示されます(データセットと同じです)。

https://storage.googleapis.com/gweb-cloudblog-publish/images/access_controls_in_BigQuery.max-1200x1200.jpg

テーブル ACL の機能は、「bq」コマンドラインと REST API からも利用できます。両者とも、Cloud IAM ポリシー JSON を使用しています。ポリシーとはどのメンバーにどのロールを付与するかを定義するもので、リソースに関連付けられています。以下に、alice@example.com に BigQuery データオーナーのロールを与え、bob@example.com に BigQuery データ閲覧者のロールを与えるポリシーの例を示します。

読み込んでいます...

IAM ポリシーについて詳しくは、ポリシーについての記事をご覧ください。テーブル ポリシーを取得するには「bq get-iam-policy」コマンドを使用し、設定するには「bq set-iam-policy」コマンドを使用します。同様に、REST API では tables.getIamPolicy と table.setIamPolicy を使用できます。 

BigQuery のこの新機能を今すぐお試しください。まずは BigQuery テーブル ACL に関するドキュメントをご覧になり、権限の種類や用途について詳しくご確認ください。   

- Google Cloud ソフトウェア エンジニア Uladzimir Makaranka、Google Cloud データ ガバナンス担当プロダクト マネージャー Uri Gilad

投稿先