BigQuery の IAM の概要
このドキュメントでは、BigQuery の Identity and Access Management(IAM)のロールと権限について説明します。
概要
プリンシパル(ユーザー、グループ、またはサービス アカウント)が Google Cloud API を呼び出す場合、そのプリンシパルにはリソースを使用するための適切な IAM 権限が必要です。プリンシパルに必要な権限を付与するには、プリンシパルに IAM ロールを付与します。
このドキュメントでは、プリンシパルが BigQuery リソースにアクセスできるように、IAM 事前定義ロールと IAM カスタムロールを使用する方法について説明します。
Google Cloud でのアクセス管理の概要を把握するには、IAM の概要をご覧ください。
IAM ロールのタイプ
ロールとは、一連の権限のことです。IAM で次のタイプのロールを使用して、BigQuery リソースへのアクセス権を付与できます。
ロールに 1 つ以上の権限が含まれているかどうかを確認するには、次のいずれかの方法を使用します。
- IAM 権限の検索リファレンス
gcloud iam roles describe
コマンド- IAM API の
roles.get()
メソッド
1 人のユーザーに複数のロールタイプを割り当てると、付与される権限は各ロールの権限の合算になります。
IAM を使用してリソースにアクセスする方法の詳細については、IAM ドキュメントのリソースへのアクセス権の付与、変更、取り消しをご覧ください。
カスタムロールの作成方法については、IAM ドキュメントのカスタムロールの作成と管理をご覧ください。
BigQuery での IAM ロール
権限は、ユーザー、グループ、サービス アカウントに直接には割り当てられません。代わりに、ユーザー、グループ、サービス アカウントに 1 つ以上の事前定義ロールまたはカスタムロールへのアクセス権を付与し、リソースに対するアクションの実行権限を付与します。
アクセス権は次の BigQuery リソースレベルで付与できます。
- 組織レベルまたは Google Cloud プロジェクト レベル
- データセット レベル
- テーブルレベルまたはビューレベル
組織レベルまたは Google Cloud プロジェクト レベルで適用されるロール
組織レベルおよびプロジェクト レベルでロールを割り当てると、BigQuery ジョブの実行権限、またはプロジェクトに含まれる BigQuery リソースすべてに対するアクセス権限が付与されます。
データセット レベルで適用されるロール
データセット レベルでロールを割り当てると、プロジェクトのリソースへの完全アクセス権を付与しなくても、特定のデータセットへのアクセス権を付与できます。IAM ポリシー階層では、BigQuery データセットはプロジェクトの子リソースにあたります。データセット レベルでロールを割り当てる方法について詳しくは、データセットへのアクセスの制御をご覧ください。
データセット内の個々のリソースに適用されるロール
データセットのリソースへの完全アクセス権を付与しなくても、データセット内の特定の種類のリソースにロールを個別に割り当てることができます。
以下の種類の個別のリソースにロールを適用できます。
- テーブル
- ビュー
以下の種類の個別のリソースにロールを適用することはできません。
- ルーティン
- モデル
テーブルレベルまたはビューレベルでロールを割り当てる方法の詳細は、テーブルまたはビューへのアクセスの制御をご覧ください。
BigQuery の IAM 事前定義ロール
次の表に、BigQuery の IAM 事前定義ロールと、各ロールに割り当てられた権限の一覧を示します。各権限は、それぞれ特定のリソースタイプに適用されます。
Role | Permissions |
---|---|
BigQuery Admin( Provides permissions to manage all resources within the project. Can manage all data within the project, and can cancel jobs from other users running within the project. Lowest-level resources where you can grant this role:
|
bigquery.bireservations.*
bigquery.capacityCommitments.*
bigquery.config.*
bigquery.connections.*
bigquery.dataPolicies.create bigquery.dataPolicies.delete bigquery.dataPolicies.get bigquery. bigquery.dataPolicies.list bigquery. bigquery.dataPolicies.update bigquery.datasets.*
bigquery.jobs.*
bigquery.models.*
bigquery.readsessions.*
bigquery.
bigquery.reservations.*
bigquery.routines.*
bigquery. bigquery. bigquery. bigquery. bigquery. bigquery. bigquery. bigquery.savedqueries.*
bigquery.tables.*
bigquery.transfers.*
bigquerymigration. resourcemanager.projects.get resourcemanager.projects.list |
BigQuery Connection Admin(
|
bigquery.connections.*
|
BigQuery Connection User(
|
bigquery.connections.get bigquery. bigquery.connections.list bigquery.connections.use |
BigQuery Data Editor( When applied to a table or view, this role provides permissions to:
This role cannot be applied to individual models or routines. When applied to a dataset, this role provides permissions to:
When applied at the project or organization level, this role can also create new datasets. Lowest-level resources where you can grant this role:
|
bigquery.config.get bigquery.datasets.create bigquery.datasets.get bigquery.datasets.getIamPolicy bigquery.datasets.updateTag bigquery.models.*
bigquery.routines.*
bigquery.tables.create bigquery.tables.createIndex bigquery.tables.createSnapshot bigquery.tables.delete bigquery.tables.deleteIndex bigquery.tables.export bigquery.tables.get bigquery.tables.getData bigquery.tables.getIamPolicy bigquery.tables.list bigquery.tables.replicateData bigquery. bigquery.tables.update bigquery.tables.updateData bigquery.tables.updateTag resourcemanager.projects.get resourcemanager.projects.list |
BigQuery Data Owner( When applied to a table or view, this role provides permissions to:
This role cannot be applied to individual models or routines. When applied to a dataset, this role provides permissions to:
When applied at the project or organization level, this role can also create new datasets. Lowest-level resources where you can grant this role:
|
bigquery.config.get bigquery.dataPolicies.create bigquery.dataPolicies.delete bigquery.dataPolicies.get bigquery. bigquery.dataPolicies.list bigquery. bigquery.dataPolicies.update bigquery.datasets.*
bigquery.models.*
bigquery.routines.*
bigquery. bigquery. bigquery. bigquery. bigquery. bigquery. bigquery.tables.*
resourcemanager.projects.get resourcemanager.projects.list |
BigQuery Data Viewer( When applied to a table or view, this role provides permissions to:
This role cannot be applied to individual models or routines. When applied to a dataset, this role provides permissions to:
When applied at the project or organization level, this role can also enumerate all datasets in the project. Additional roles, however, are necessary to allow the running of jobs. Lowest-level resources where you can grant this role:
|
bigquery.datasets.get bigquery.datasets.getIamPolicy bigquery.models.export bigquery.models.getData bigquery.models.getMetadata bigquery.models.list bigquery.routines.get bigquery.routines.list bigquery.tables.createSnapshot bigquery.tables.export bigquery.tables.get bigquery.tables.getData bigquery.tables.getIamPolicy bigquery.tables.list bigquery.tables.replicateData resourcemanager.projects.get resourcemanager.projects.list |
BigQuery Filtered Data Viewer( Access to view filtered table data defined by a row access policy |
bigquery. |
BigQuery Job User( Provides permissions to run jobs, including queries, within the project. Lowest-level resources where you can grant this role:
|
bigquery.config.get bigquery.jobs.create resourcemanager.projects.get resourcemanager.projects.list |
BigQuery Metadata Viewer( When applied to a table or view, this role provides permissions to:
This role cannot be applied to individual models or routines. When applied to a dataset, this role provides permissions to:
When applied at the project or organization level, this role provides permissions to:
Additional roles are necessary to allow the running of jobs. Lowest-level resources where you can grant this role:
|
bigquery.datasets.get bigquery.datasets.getIamPolicy bigquery.models.getMetadata bigquery.models.list bigquery.routines.get bigquery.routines.list bigquery.tables.get bigquery.tables.getIamPolicy bigquery.tables.list resourcemanager.projects.get resourcemanager.projects.list |
BigQuery Read Session User( Provides the ability to create and use read sessions. Lowest-level resources where you can grant this role:
|
bigquery.readsessions.*
resourcemanager.projects.get resourcemanager.projects.list |
BigQuery Resource Admin( Administer all BigQuery resources. |
bigquery.bireservations.*
bigquery.capacityCommitments.*
bigquery.jobs.get bigquery.jobs.list bigquery.jobs.listAll bigquery.
bigquery.
bigquery.reservations.*
recommender.
recommender.
resourcemanager.projects.get resourcemanager.projects.list |
BigQuery Resource Editor( Manage all BigQuery resources, but cannot make purchasing decisions. |
bigquery.bireservations.get bigquery. bigquery. bigquery.jobs.get bigquery.jobs.list bigquery.jobs.listAll bigquery.
bigquery.
bigquery.reservations.*
resourcemanager.projects.get resourcemanager.projects.list |
BigQuery Resource Viewer( View all BigQuery resources but cannot make changes or purchasing decisions. |
bigquery.bireservations.get bigquery. bigquery. bigquery.jobs.get bigquery.jobs.list bigquery.jobs.listAll bigquery. bigquery. bigquery. bigquery.reservations.get bigquery.reservations.list resourcemanager.projects.get resourcemanager.projects.list |
BigQuery Studio Admin Beta( Roll up Role of BigQuery Admin, Runtime Admin and Dataform Admin |
aiplatform. aiplatform. aiplatform. aiplatform. aiplatform. aiplatform. aiplatform. aiplatform.notebookRuntimes.*
aiplatform.operations.list bigquery.bireservations.*
bigquery.capacityCommitments.*
bigquery.config.*
bigquery.connections.*
bigquery.dataPolicies.create bigquery.dataPolicies.delete bigquery.dataPolicies.get bigquery. bigquery.dataPolicies.list bigquery. bigquery.dataPolicies.update bigquery.datasets.*
bigquery.jobs.*
bigquery.models.*
bigquery.readsessions.*
bigquery.
bigquery.reservations.*
bigquery.routines.*
bigquery. bigquery. bigquery. bigquery. bigquery. bigquery. bigquery. bigquery.savedqueries.*
bigquery.tables.*
bigquery.transfers.*
bigquerymigration. dataform.*
resourcemanager.projects.get resourcemanager.projects.list |
BigQuery Studio User Beta( Roll up role of BigQuery Job User, Runtime User and Dataform Code Creator |
aiplatform. aiplatform. aiplatform. aiplatform. aiplatform. aiplatform. aiplatform. aiplatform.operations.list bigquery.config.get bigquery.jobs.create bigquery.readsessions.*
dataform.locations.*
dataform.repositories.create dataform.repositories.list resourcemanager.projects.get resourcemanager.projects.list |
BigQuery User( When applied to a dataset, this role provides the ability to read the dataset's metadata and list tables in the dataset. When applied to a project, this role also provides the ability to run jobs, including queries,
within the project. A principal with this role can enumerate their own jobs, cancel their own jobs, and
enumerate datasets within a project. Additionally, allows the creation of new datasets within the
project; the creator is granted the BigQuery Data Owner role ( Lowest-level resources where you can grant this role:
|
bigquery.bireservations.get bigquery. bigquery. bigquery.config.get bigquery.datasets.create bigquery.datasets.get bigquery.datasets.getIamPolicy bigquery.jobs.create bigquery.jobs.list bigquery.models.list bigquery.readsessions.*
bigquery. bigquery. bigquery.reservations.get bigquery.reservations.list bigquery.routines.list bigquery.savedqueries.get bigquery.savedqueries.list bigquery.tables.list bigquery.transfers.get bigquerymigration. resourcemanager.projects.get resourcemanager.projects.list |
Masked Reader( Masked read access to sub-resources tagged by the policy tag associated with a data policy, for example, BigQuery columns |
bigquery. |
BigQuery のカスタムロール
BigQuery のカスタムの IAM ロールを作成するには、IAM のカスタムロールのドキュメントで説明されている手順を行います。
BigQuery の基本ロール
BigQuery の基本ロールについては、BigQuery の基本ロールと権限をご覧ください。
BigQuery の権限
次の表に、BigQuery で使用可能な権限を示します。これらは事前定義ロールに含まれており、カスタムロールの定義で使用できます。
権限 | 説明 |
---|---|
bigquery.bireservations.get |
BI Engine の予約を読み取ります。 |
bigquery.bireservations.update |
BI Engine の予約を更新します。 |
bigquery.capacityCommitments.create |
プロジェクトに容量コミットメントを作成します。 |
bigquery.capacityCommitments.delete |
容量コミットメントを削除します。 |
bigquery.capacityCommitments.get |
容量コミットメントに関する詳細を取得します。 |
bigquery.capacityCommitments.list |
プロジェクト内の容量コミットメントすべてを一覧表示します。 |
bigquery.capacityCommitments.update |
プロジェクト内の容量コミットメントすべてを更新します。 |
bigquery.config.update |
構成を作成します。 |
bigquery.config.get |
構成の詳細を取得します。 |
bigquery.connections.create |
プロジェクト内で新しい接続を作成します。 |
bigquery.connections.delete |
接続を削除します。 |
bigquery.connections.get |
接続のメタデータを取得します。認証情報は除外されます。 |
bigquery.connections.list |
プロジェクト内の接続を一覧表示します。 |
bigquery.connections.update |
接続とその認証情報を更新します。 |
bigquery.connections.updateTag |
接続のタグを更新します。 |
bigquery.connections.use |
接続構成を使用して、リモート データソースに接続します。 |
bigquery.connections.delegate |
承認済みの外部テーブルとリモート関数を作成するために接続を委任します。 |
bigquery.dataPolicies.create |
新しいデータポリシーを作成します。 |
bigquery.dataPolicies.delete |
データポリシーを削除します。 |
bigquery.dataPolicies.get |
データポリシーに関するメタデータを取得します。 |
bigquery.dataPolicies.getIamPolicy |
データポリシーの IAM 権限を読み取ります。 |
bigquery.dataPolicies.list |
プロジェクト内のデータポリシーを一覧表示します。 |
bigquery.dataPolicies.maskedGet |
データポリシーに関連付けられたポリシータグを持つ列のマスクされたデータを表示します。 |
bigquery.dataPolicies.setIamPolicy |
データポリシーの IAM 権限を設定します。 |
bigquery.dataPolicies.update |
データポリシーのメタデータを更新します。 |
bigquery.datasets.create |
新しい空白のデータセットを作成します。 |
bigquery.datasets.createTagBinding |
データセットにタグ バインディングを作成します。 |
bigquery.datasets.delete |
データセットを削除します。 |
bigquery.datasets.deleteTagBinding |
データセットのタグ バインディングを削除します。 |
bigquery.datasets.get |
データセットに関するメタデータを取得します。 |
bigquery.datasets.getIamPolicy |
Google Cloud コンソールでデータセットの IAM 権限を取得するオプションをユーザーに提供するために必要です。フェール オープン。権限を取得する操作を実際に実行できるかどうかは、bigquery.datasets.get 権限によって制限されます。 |
bigquery.datasets.link |
リンクされたデータセットを作成します。 |
bigquery.datasets.listTagBindings |
データセットのタグ バインディングを一覧表示します。 |
bigquery.datasets.setIamPolicy |
Google Cloud コンソールでデータセットの IAM 権限を設定するオプションをユーザーに提供するために必要です。フェール オープン。権限を設定する操作を実際に実行できるかどうかは、bigquery.datasets.update 権限によって制限されます。 |
bigquery.datasets.update |
データセットのメタデータを更新します。 |
bigquery.datasets.updateTag (ベータ版) |
データセットのタグを更新します。 |
bigquery.jobs.create |
プロジェクト内でジョブ(クエリを含む)を実行します。 |
bigquery.jobs.get |
ジョブのデータとメタデータを取得します1。 |
bigquery.jobs.list |
すべてのジョブを一覧表示し、任意のユーザーが送信した任意のジョブのメタデータを取得します。他のユーザーが送信したジョブについては、詳細とメタデータが削除されます。 |
bigquery.jobs.listAll |
すべてのジョブを一覧表示し、任意のユーザーが送信した任意のジョブのメタデータを取得します。 |
bigquery.jobs.listExecutionMetadata (ベータ版) |
ユーザーが送信したジョブに関するすべてのジョブ実行メタデータを一覧表示します(機密情報を除く)。これは組織レベルでのみ適用でき、管理 UI で使用されます。 |
bigquery.jobs.delete |
ジョブのメタデータを削除します。 |
bigquery.jobs.update |
ジョブをキャンセルします1。 |
bigquery.models.create |
新しいモデルを作成します。 |
bigquery.models.delete |
モデルを削除します。 |
bigquery.models.getData |
モデルデータを取得します。モデル メタデータを取得するには、bigquery.models.getMetadata が必要です。 |
bigquery.models.getMetadata |
モデル メタデータを取得します。モデルデータを取得するには、bigquery.models.getData が必要です。 |
bigquery.models.list |
モデルとモデルのメタデータを一覧表示します。 |
bigquery.models.updateData |
モデルデータを更新します。モデル メタデータを更新するには、bigquery.models.updateMetadata が必要です。 |
bigquery.models.updateMetadata |
モデル メタデータを更新します。モデルデータを更新するには、bigquery.models.updateData が必要です。 |
bigquery.models.export |
モデルをエクスポートします。 |
bigquery.readsessions.create |
BigQuery Storage Read API を使用して新しい読み取りセッションを作成します。 |
bigquery.readsessions.getData |
Storage Read API を使用して読み取りセッションからデータを読み取ります。 |
bigquery.readsessions.update |
Storage Read API を使用して読み取りセッションを更新します。 |
bigquery.reservations.create |
プロジェクトに予約を作成します。 |
bigquery.reservations.delete |
予約を削除します。 |
bigquery.reservations.get |
予約の詳細を取得します。 |
bigquery.reservations.list |
プロジェクト内の全予約を一覧表示します。 |
bigquery.reservations.update |
予約のプロパティを更新します。 |
bigquery.reservationAssignments.create |
予約割り当てを作成します。所有者プロジェクトと割り当て先リソースには、この権限が必要です。 |
bigquery.reservationAssignments.delete |
予約割り当てを削除します。この権限は、オーナー プロジェクトと割り当て先のリソースに対して必要です。 |
bigquery.reservationAssignments.list |
プロジェクト内の予約割り当てすべてを一覧表示します。 |
bigquery.reservationAssignments.search |
特定のプロジェクト、フォルダ、または組織の予約割り当てを検索します。 |
bigquery.rowAccessPolicies.create |
テーブルに新しい行レベルのアクセス ポリシーを作成します。 |
bigquery.rowAccessPolicies.delete |
テーブルから行レベルのアクセス ポリシーを削除します。 |
bigquery.rowAccessPolicies.getFilteredData |
テーブルから、行レベルアクセス ポリシーの権限付与者リストにあるプリンシパルにのみ表示するデータを取得します。この権限は、行レベルのアクセス ポリシーにのみ付与することをおすすめします。 |
bigquery.rowAccessPolicies.list |
テーブルのすべての行レベルのアクセス ポリシーを表示します。 |
bigquery.rowAccessPolicies.overrideTimeTravelRestrictions |
行レベルのアクセス ポリシーがある、または以前に存在していたテーブルの過去のデータにアクセスします。 |
bigquery.rowAccessPolicies.getIamPolicy |
行アクセス ポリシーの IAM 権限を取得します。 |
bigquery.rowAccessPolicies.setIamPolicy |
行アクセス ポリシーの IAM 権限を設定します。 |
bigquery.rowAccessPolicies.update |
行レベルのアクセス ポリシーを再作成します。 |
bigquery.routines.create |
新しいルーティン(関数とストアド プロシージャ)を作成します。 |
bigquery.routines.delete |
ルーティンを削除します。 |
bigquery.routines.get |
ルーティンの定義とメタデータを取得します。 |
bigquery.routines.list |
ルーティンおよびルーティンのメタデータを一覧表示します。 |
bigquery.routines.update |
ルーティンの定義とメタデータを更新します。 |
bigquery.routines.updateTag |
ルーティンのタグを更新します。 |
bigquery.savedqueries.create |
保存したクエリを作成します。 |
bigquery.savedqueries.delete |
保存したクエリを削除します。 |
bigquery.savedqueries.get |
保存したクエリのメタデータを取得します。 |
bigquery.savedqueries.list |
保存したクエリの一覧を表示します。 |
bigquery.savedqueries.update |
保存したクエリを更新します。 |
bigquery.tables.create |
新しいテーブルを作成します。 |
bigquery.tables.createIndex |
テーブルの検索インデックスを作成します。 |
bigquery.tables.createSnapshot
|
新しいテーブル スナップショットを作成します。 |
bigquery.tables.delete |
テーブルを削除します。 |
bigquery.tables.deleteIndex |
テーブルの検索インデックスを削除します。 |
bigquery.tables.deleteSnapshot
|
テーブル スナップショットを削除します。 |
bigquery.tables.export |
BigQuery からテーブルのデータをエクスポートします。 |
bigquery.tables.get |
テーブルのメタデータを取得します。 テーブルのデータを取得するには、 bigquery.tables.getData が必要です。 |
bigquery.tables.getData |
テーブルのデータを取得します。この権限は、テーブルのデータを検索するために必要です。 テーブルのメタデータを取得するには、 bigquery.tables.get が必要です。 |
bigquery.tables.getIamPolicy |
テーブルの IAM ポリシーを読み取ります。 |
bigquery.tables.list |
テーブルとテーブルのメタデータを一覧表示します。 |
bigquery.tables.replicateData |
テーブルデータを複製します。この権限は、レプリカのマテリアライズド ビューを作成するために必要です。 |
bigquery.tables.restoreSnapshot
|
テーブル スナップショットを復元します。 |
bigquery.tables.setCategory |
テーブル スキーマにポリシータグを設定します。 |
bigquery.tables.setIamPolicy |
テーブルの IAM ポリシーを変更します。 |
bigquery.tables.update |
テーブルのメタデータを更新します。 |
bigquery.tables.updateData |
テーブルのデータを更新します。 |
bigquery.tables.updateTag (ベータ版) |
テーブルのタグを更新します。 |
bigquery.transfers.get |
転送のメタデータを取得します。 |
bigquery.transfers.update |
転送を作成、更新、削除します。 |
1 ジョブを作成すると、作成者に、そのジョブの bigquery.jobs.get
権限および bigquery.jobs.update
権限に相当する権限が自動的に付与されます。
BigQuery ML タスクの権限
次の表に、BigQuery ML の一般的なタスクに必要な権限を示します。
権限 | 説明 |
---|---|
bigquery.jobs.create bigquery.models.create bigquery.models.getData bigquery.models.updateData |
CREATE MODEL ステートメントを使用して新しいモデルを作成する |
bigquery.jobs.create bigquery.models.create bigquery.models.getData bigquery.models.updateData bigquery.models.updateMetadata |
CREATE OR REPLACE MODEL ステートメントを使用して既存のモデルを置き換える |
bigquery.models.delete |
models.delete API を使用してモデルを削除する |
bigquery.jobs.create bigquery.models.delete |
DROP MODEL ステートメントを使用してモデルを削除する |
bigquery.models.getMetadata |
models.get API を使用してモデル メタデータを取得する |
bigquery.models.list |
models.list API を使用してモデルとそのメタデータを一覧表示する |
bigquery.models.updateMetadata |
models.delete API を使用してモデル メタデータを更新する。モデルの有効期限にゼロ以外の値を設定または更新する場合、bigquery.models.delete 権限も必要です。 |
bigquery.jobs.create bigquery.models.getData
|
ML.EVALUATE 、ML.PREDICT 、ML.TRAINING_INFO 、ML.WEIGHTS などの関数を使用して、評価、予測、モデル、特徴の検査を行います。 |
bigquery.jobs.create bigquery.models.export
|
モデルをエクスポートする |
次のステップ
- データセット レベルでロールを割り当てる方法については、データセットへのアクセスの制御をご覧ください。
- テーブルまたはビューレベルでロールを割り当てる方法については、テーブルとビューへのアクセスの制御をご覧ください。