GCP - Bigquery Enum
基本情報
Google Cloud BigQueryは、完全に管理された、サーバーレスのエンタープライズデータウェアハウスであり、ペタバイト単位のデータを分析する機能を提供し、大規模なデータセットを効率的に処理します。Platform as a Service (PaaS)として、手動の監視が不要でデータ管理を容易にするためのインフラストラクチャとツールをユーザーに提供します。
ANSI SQLを使用したクエリがサポートされています。主要なオブジェクトは、SQL データを含むテーブルを含むデータセットです。
暗号化
デフォルトではGoogle管理の暗号化キーが使用されますが、**顧客管理型暗号化キー(CMEK)**を構成することも可能です。データセットごとおよびデータセット内のテーブルごとに暗号化キーを指定することができます。
有効期限
データセットに有効期限を指定することができ、このデータセットで作成された新しいテーブルは、作成後指定された日数経過後に自動的に削除されます。
外部ソース
BigQueryは他のGoogleサービスと深く統合されています。バケツ、pub/sub、Googleドライブ、RDSデータベースからデータをロードすることが可能です。
データセットACL
データセットが作成されると、アクセス権限を付与するためにACLが添付されます。デフォルトでは、データセットを作成したユーザーに対して所有者権限が与えられ、その後、プロジェクトの所有者グループ(プロジェクトの所有者)、プロジェクトライターグループにライター権限が与えられ、プロジェクトリーダーグループにリーダー権限が与えられます。
テーブル行のアクセス制御
テーブル内で主体がアクセスできる行を制御することが可能です。これは行アクセスポリシーを使用してテーブル内で定義されます。DDLを使用して定義されます。 アクセスポリシーはフィルタを定義し、そのフィルタに一致する行のみが指定された主体によってアクセス可能になります。
カラムアクセス制御
カラムレベルでデータアクセスを制限するには:
タクソノミとポリシータグを定義します。データのためのタクソノミとポリシータグを作成および管理します。https://console.cloud.google.com/bigquery/policy-tags
オプション: 作成したポリシータグの1つ以上に、Data Catalog Fine-Grained Readerロールを1人以上のプリンシパルに付与します。
BigQueryのカラムにポリシータグを割り当てします。BigQueryでは、スキーマ注釈を使用してアクセスを制限したい各カラムにポリシータグを割り当てます。
タクソノミ上でアクセス制御を強制します。アクセス制御を強制すると、タクソノミ内のすべてのポリシータグに定義されたアクセス制限が適用されます。
ポリシータグ上でアクセスを管理します。Identity and Access Management (IAM) ポリシーを使用して、各ポリシータグへのアクセスを制限します。ポリシーは、ポリシータグに属する各カラムに対して有効です。
ユーザーがクエリ実行時にカラムデータにアクセスしようとすると、BigQueryはカラムポリシータグとそのポリシーをチェックして、ユーザーがデータにアクセスする権限があるかどうかを確認します。
要約すると、特定のユーザーに対して特定のカラムへのアクセスを制限するには、スキーマのカラムにタグを追加し、ユーザーのアクセスをタグに制限することができます。これにより、タグのタクソノミ上でアクセス制御を強制できます。
タクソノミ上でアクセス制御を強制するには、サービスを有効にする必要があります:
次のコマンドを使用して、列のタグを表示できます:
データセットのすべてのテーブルの列とテーブル名:
同じプロジェクト内の他のデータセット:
SQLインジェクションの種類:
エラーベース - キャスティング:
select CAST(@@project_id AS INT64)
エラーベース - ゼロ除算:
' OR if(1/(length((select('a')))-1)=1,true,false) OR '
ユニオンベース(bigqueryではALLを使用する必要があります):
UNION ALL SELECT (SELECT @@project_id),1,1,1,1,1,1)) AS T1 GROUP BY column_name#
ブールベース:
' WHERE SUBSTRING((select column_name from `project_id.dataset_name.table_name` limit 1),1,1)='A'#
潜在的な時間ベース - パブリックデータセットの使用例:
SELECT * FROM `bigquery-public-data.covid19_open_data.covid19_open_data` LIMIT 1000
ドキュメント:
特権昇格とポストエクスプロイテーション
GCP - BigQuery Privesc永続性
GCP - BigQuery Persistence参考文献
Last updated