🔒

BigQueryの列にポリシータグを追加し、閲覧出来るユーザーを制限する方法

2024/09/30に公開

やりたかったこと

特定のテーブルの特定のカラムを特定のユーザーのみにしか見れないようにしたい

参考にしたページ

https://cloud.google.com/data-catalog/docs/how-to/use-policy-tags?hl=ja
基本的には上のページの流れでいけますが、途中ポリシータグをカラムに設定するステップなどで少々引っかかりました

1.分類とポリシータグを作成する

ここは参考ページのままでいけます

必要な権限で少々引っかかりました
自分の場合少々too muchな権限かもしれませんが、

・ポリシータグ管理者
・Dataplex 分類管理者

の2つの権限を付与することで作成が出来ました

また、データマスキングルールを設定することで任意の見え方に設定することも可能です

2.新しいポリシータグを列に追加する

ここではDataplexの検索ページに飛んで設定とありますが、参考にした記事がおそらくBigQuery Studio実装前で分かれていた頃の記事なのか実際はBigQueryのスキーマ設定で行う形でした

手順としては
1.権限設定を行いたいテーブルを選択
2.スキーマの編集を選択
3.権限設定を行いたいカラムのチェックボックスを選択し、ADD POLICY TAGを選択
4.STEP1で作成したポリシータグを設定

これでカラムにポリシータグの設定が行えます

この瞬間から管理者であろうが設定したカラムは1で設定したマスキングルール通りの見え方になります

3.きめ細かい読み取りのロールを追加して、保護された列を表示する

再度1の設定を行ったポリシータグの管理画面にて設定を行います
作成したポリシータグを選択し、右上の情報パネルを表示を選択することでプリンシパルの追加が行えます

ここで権限を付与したいユーザーに対して「きめ細かい読み取り」ロールの追加を行います

ここで権限を付与されたユーザーのみ列の閲覧が可能になります
また、詳しく検証しきれていませんがクエリの実行自体もこの権限が無いと行えなくなるようです

これで設定が完了です!
昨今データセキュリティの観点から結構このような細やかな設定の必要性がましてきているように思えますので、Google Cloudのシンプルな設定で行えるのはめちゃめちゃ便利だなと思いました!

Discussion