BigQuery のセキュリティとアクセス制御の概要
このドキュメントでは、Identity and Access Management(IAM)を使用した BigQuery のアクセス制御の概要について説明します。IAM を使用すると、特定の BigQuery リソースに対するアクセス権をきめ細かく設定し、他のリソースへのアクセスを防ぐことができます。IAM は、最小権限のセキュリティ原則を適用するのに役立ちます。この原則では、必要以上に多くの権限を IAM プリンシパルに付与しないことが規定されています。
ユーザー、グループ、サービス アカウントなどの IAM プリンシパルが Google Cloud API を呼び出す場合、そのプリンシパルにはリソースを使用するために必要な最小限の IAM 権限が必要です。プリンシパルに必要な権限を付与するには、プリンシパルに IAM ロールを付与します。
このドキュメントでは、プリンシパルが BigQuery リソースにアクセスできるように、IAM 事前定義ロールと IAM カスタムロールを使用する方法について説明します。
Google Cloudでのアクセス管理方法については、IAM の概要をご覧ください。
IAM ロールのタイプ
ロールは、IAM プリンシパルに付与できる権限の集合です。IAM で次のタイプのロールを使用して、BigQuery リソースへのアクセス権を付与できます。
- 事前定義ロールは、 Google Cloud によって管理され、一般的なユースケースとアクセス制御パターンをサポートします。
- カスタムロールは、ユーザー指定の権限リストに従ってアクセスを制御します。カスタムロールの作成については、IAM ドキュメントのカスタムロールの作成と管理をご覧ください。
事前定義 IAM ロールに 1 つ以上の権限が含まれているかどうかを確認するには、次のいずれかの方法を使用します。
- BigQuery IAM のロールと権限のリファレンス
- IAM のロールと権限のインデックス
gcloud iam roles describe
コマンド- IAM API の
roles.get()
メソッド
BigQuery での IAM ロール
権限は、ユーザー、グループ、サービス アカウントに直接には割り当てられません。代わりに、ユーザー、グループ、サービス アカウントに 1 つ以上の事前定義ロールまたはカスタムロールを付与し、リソースに対するアクションの実行権限を付与します。これらのロールは、特定のリソースで付与されますが、リソース階層内にあるそのリソースのすべての子リソースにも適用されます。
1 人のユーザーに複数のロールタイプを割り当てると、付与される権限は各ロールの権限の合算になります。
次の BigQuery リソースへのアクセス権を付与できます。
- データセットとデータセット内の次のリソース:
- テーブルとビュー
- ルーティン
- 接続
- 保存したクエリ
- データ キャンバス
- データの準備
- パイプライン
- リポジトリ
Resource Manager リソースへのアクセス権を付与する
Resource Manager を使用して BigQuery リソースへのアクセスを構成するには、プリンシパルに BigQuery ロールを付与し、そのロールを組織、フォルダ、またはプロジェクトに付与します。
組織やプロジェクトなどの Resource Manager リソースにロールを付与すると、組織またはプロジェクト内の BigQuery リソースすべてに対する権限が付与されます。
IAM を使用して Resource Manager リソースへのアクセスを管理する方法の詳細については、IAM ドキュメントのプロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
データセットへのアクセス権を付与する
データセット レベルでロールを割り当てると、プロジェクトの他のリソースへの完全アクセス権を付与しなくても、特定のデータセットへのアクセス権を付与できます。IAM リソース階層では、BigQuery データセットはプロジェクトの子リソースにあたります。データセット レベルでロールを割り当てる方法について詳しくは、IAM を使用してリソースへのアクセスを制御するをご覧ください。
データセット内の個々のリソースへのアクセス権を付与する
データセットのリソースへの完全アクセス権を付与しなくても、データセット内の特定の種類のリソースへのアクセス権をロールに付与できます。
ロールは、データセット内の次のリソースに適用できます。
- テーブルとビュー
- ルーティン
テーブル、ビュー、ルーティン レベルでロールを割り当てる方法の詳細については、IAM を使用してリソースへのアクセスを制御するをご覧ください。
次のステップ
- BigQuery リソースにロールを割り当てる方法については、IAM でリソースへのアクセスを制御するをご覧ください。
- BigQuery の事前定義された IAM ロールと権限の一覧については、BigQuery の IAM ロールと権限をご覧ください。