事前定義された役割と権限

このページでは、BigQuery の Identity and Access Management(IAM)のロールと権限について説明します。

このページで説明する役割と権限には、BigQuery の次のコンパニオン プロダクトに関連するものも含まれています。

  • BigQuery ML
  • BigQuery Data Transfer Service
  • BigQuery BI Engine

BigQuery ML におけるアクセス制御の詳細については、BigQuery ML ドキュメントのアクセス制御をご覧ください。

概要

ID で Google Cloud API を呼び出す場合、BigQuery ではその ID がリソースを使用するための適切な権限を持っている必要があります。権限を付与するには、ユーザー、グループ、またはサービス アカウントに役割を付与します。

このページでは、BigQuery リソースにアクセスするために ID に付与する BigQuery IAM のロールについて説明します。

IAM のロールのタイプ

IAM には、次の 3 種類のロールがあります。

  • 基本ロールには、オーナー、編集者、閲覧者のロールが含まれます。基本ロールは、IAM の導入前から存在しているアクセス制御を表します。

  • 事前定義された役割: 特定のサービスへのアクセスを細かく制御します。また、Google Cloud により管理されます。事前定義された役割は、一般的なユースケースとアクセス制御パターンをサポートすることを目的としています。

  • カスタムの役割: ユーザー指定の権限リストに従って、アクセスを細かく制御します。

基本の役割、事前定義された役割、カスタムの役割に 1 つ以上の権限が含まれているかどうかを確認するには、次のいずれかの方法を使用します。

ある特定のユーザーに事前定義された役割と基本の役割の両方を割り当てると、各役割の権限が合わせて付与されます。

IAM を使用してリソースにアクセスする方法の詳細については、IAM ドキュメントのリソースへのアクセス権の付与、変更、取り消しをご覧ください。

カスタムロールの作成方法については、IAM ドキュメントのカスタムロールの作成と管理をご覧ください。

BigQuery の権限と事前定義された IAM のロール

BigQuery リソースへのアクセス権を付与するには、ユーザー、グループ、またはサービス アカウントに、少なくとも 1 つ役割を割り当てます。 次の BigQuery リソースレベルでアクセス権を付与できます。

  • 組織レベルまたは Google Cloud プロジェクト レベル
  • データセット レベル
  • テーブルレベルまたはビューレベル

組織レベルまたは Cloud プロジェクト レベルで適用されるロール

組織レベルおよびプロジェクト レベルでロールを割り当てると、BigQuery ジョブの実行権限、またはプロジェクトに含まれる BigQuery リソースすべてに対するアクセス権限が付与されます。

データセット レベルで適用されるロール

データセット レベルでロールを割り当てると、プロジェクトのリソースへの完全アクセス権を付与しなくても、特定のデータセットへのアクセス権を付与できます。IAM ポリシー階層では、BigQuery データセットはプロジェクトの子リソースにあたります。データセット レベルでロールを割り当てる方法の詳細については、データセットへのアクセスの制御をご覧ください。

データセット内の個々のリソースに適用されるロール

データセットのリソースへの完全アクセス権を付与しなくても、データセット内の特定の種類のリソースにロールを個別に割り当てることができます。

以下の種類の個別のリソースにロールを適用できます。

  • テーブル(ベータ版)
  • ビュー(ベータ版)

以下の種類の個別のリソースにロールを適用することはできません。

  • routines
  • モデル

テーブルレベルまたはビューレベルでロールを割り当てる方法の詳細は、テーブルまたはビューへのアクセスの制御をご覧ください。

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.connections.create プロジェクト内で新しい接続を作成します。
bigquery.connections.delete 接続を削除します。
bigquery.connections.get 接続のメタデータを取得します。認証情報は除外されます。
bigquery.connections.list プロジェクト内の接続を一覧表示します。
bigquery.connections.update 接続とその認証情報を更新します。
bigquery.connections.use 接続構成を使用して、リモート データソースに接続します。
bigquery.datasets.create 新しい空白のデータセットを作成します。
bigquery.datasets.delete データセットを削除します。
bigquery.datasets.get データセットに関するメタデータを取得します。
bigquery.datasets.getIamPolicy 将来の使用のために予約。
bigquery.datasets.setIamPolicy 将来の使用のために予約。
bigquery.datasets.update データセットのメタデータを更新します。
bigquery.datasets.updateTag(ベータ版) データセットのタグを更新します。
bigquery.jobs.create プロジェクト内でジョブ(クエリを含む)を実行します。
bigquery.jobs.get ジョブのデータとメタデータを取得します。
bigquery.jobs.list すべてのジョブを一覧表示し、あらゆるユーザーが送信したあらゆるジョブのメタデータを取得します。他のユーザーが送信したジョブについては、詳細とメタデータが削除されます。
bigquery.jobs.listAll すべてのジョブを一覧表示し、ユーザーが送信したジョブのメタデータを取得します。*
bigquery.jobs.update ジョブをキャンセルします。*
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.createbigquery.models.getData ML オペレーション ML.PREDICTML.WEIGHTSML.TRAINING_INFOML.FEATURE_INFO を行います。
bigquery.readsessions.create(ベータ版) BigQuery Storage API を介した新しい読み取りセッションを作成します。
bigquery.readsessions.getData(ベータ版) BigQuery Storage API を介して読み取りセッションからデータを読み出します。
bigquery.readsessions.update(ベータ版) BigQuery Storage API を介して読み取りセッションを更新します。
bigquery.reservations.create(ベータ版) プロジェクトに予約を作成します。
bigquery.reservations.delete(ベータ版) 予約の削除
bigquery.reservations.get(ベータ版) 予約の詳細を取得します。
bigquery.reservations.list(ベータ版) プロジェクト内の全予約を一覧表示します。
bigquery.reservations.update(ベータ版) 予約のプロパティを更新します。
bigquery.reservationAssignments.create(ベータ版)

予約割り当てを作成します。所有者プロジェクトと割り当て先リソースには、この権限が必要です。
予約割り当てを移動するには、新しい所有者プロジェクトと割り当て先リソースに bigquery.reservationAssignments.create が必要です。

bigquery.reservationAssignments.delete(ベータ版)

予約割り当てを削除します。この権限は、所有者プロジェクトと割り当て先リソースに必要です。
予約の割り当てを移動するには、古い所有者プロジェクトと割り当て先リソースに bigquery.reservationAssignments.delete が必要です。

bigquery.reservationAssignments.list(ベータ版) プロジェクト内の予約割り当てすべてを一覧表示します。
bigquery.reservationAssignments.search(ベータ版) 特定のプロジェクト、フォルダ、または組織の予約割り当てを検索します。
bigquery.routines.create(ベータ版) 新しいルーティン(関数とストアド プロシージャ)を作成します。
bigquery.routines.delete(ベータ版) ルーティンを削除します。
bigquery.routines.get(ベータ版) ルーティンの定義とメタデータを取得します。
bigquery.routines.list(ベータ版) ルーティンおよびルーティンのメタデータを一覧表示します。
bigquery.routines.update(ベータ版)

ルーティンの定義とメタデータを更新します。

bigquery.savedqueries.create 保存したクエリを作成します。
bigquery.savedqueries.delete 保存したクエリを削除します。
bigquery.savedqueries.get 保存したクエリのメタデータを取得します。
bigquery.savedqueries.list 保存したクエリの一覧を表示します。
bigquery.savedqueries.update 保存したクエリを更新します。
bigquery.tables.create 新しいテーブルを作成します。
bigquery.tables.delete テーブルを削除します。
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.setCategory テーブル スキーマにポリシータグを設定します。
bigquery.tables.setIamPolicy テーブルの IAM ポリシーを変更します。
bigquery.tables.update

テーブルのメタデータを更新します。
テーブルのデータを更新するには、bigquery.tables.updateData が必要です。

bigquery.tables.updateData

テーブルのデータを更新します。
テーブルのメタデータを更新するには、bigquery.tables.update が必要です。

bigquery.tables.updateTag(ベータ版) テーブルのタグを更新します。
bigquery.transfers.get 転送のメタデータを取得します。
bigquery.transfers.update 転送を作成、更新、削除します。

* ジョブを作成すると、ジョブの作成者に、そのジョブの bigquery.jobs.get 権限および bigquery.jobs.update 権限に相当する権限が自動的に付与されます。

BigQuery の事前定義された IAM のロール

次の表に、BigQuery の事前定義された IAM のロールと、各ロールに割り当てられた全権限の一覧を示します。各権限は、それぞれ特定のリソースタイプに適用されます。

ロール 役職 説明 権限 最下位のリソース
roles/bigquery.admin BigQuery 管理者 プロジェクト内のすべてのリソースを管理する権限を提供します。プロジェクト内のすべてのデータを管理でき、プロジェクト内で実行されている他のユーザーのジョブもキャンセルできます。
  • bigquery.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
プロジェクト
roles/bigquery.connectionAdmin BigQuery Connection 管理者 ベータ版
  • bigquery.connections.*
roles/bigquery.connectionUser BigQuery Connection ユーザー ベータ版
  • bigquery.connections.get
  • bigquery.connections.getIamPolicy
  • bigquery.connections.list
  • bigquery.connections.use
roles/bigquery.dataEditor BigQuery データ編集者

このロールをテーブルまたはビューに適用すると、次の権限が付与されます。

  • テーブルまたはビューのデータとメタデータを読み取り、更新する。
  • テーブルまたはビューを削除する。

このロールは、個々のモデルやルーティンに適用できません。

このロールをデータセットに適用すると、次の権限が付与されます。

  • データセットのメタデータを読み取り、データセット内のテーブルを一覧表示する。
  • データセットのテーブルを作成、更新、取得、削除する。

プロジェクトまたは組織レベルで適用した場合、このロールは新しいデータセットを作成することもできます。

  • bigquery.datasets.create
  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
  • bigquery.datasets.updateTag
  • bigquery.models.*
  • bigquery.routines.*
  • bigquery.tables.create
  • bigquery.tables.delete
  • bigquery.tables.export
  • bigquery.tables.get
  • bigquery.tables.getData
  • bigquery.tables.getIamPolicy
  • bigquery.tables.list
  • bigquery.tables.update
  • bigquery.tables.updateData
  • bigquery.tables.updateTag
  • resourcemanager.projects.get
  • resourcemanager.projects.list
テーブルまたはビュー
roles/bigquery.dataOwner BigQuery データオーナー

このロールをテーブルまたはビューに適用すると、次の権限が付与されます。

  • テーブルまたはビューのデータとメタデータを読み取り、更新する。
  • テーブルまたはビューを共有する。
  • テーブルまたはビューを削除する。

このロールは、個々のモデルやルーティンに適用できません。

このロールをデータセットに適用すると、次の権限が付与されます。

  • データセットを読み取り、更新、削除する。
  • データセットのテーブルを作成、更新、取得、削除する。

プロジェクトまたは組織レベルで適用した場合、このロールは新しいデータセットを作成することもできます。

  • bigquery.datasets.*
  • bigquery.models.*
  • bigquery.routines.*
  • bigquery.tables.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
テーブルまたはビュー
roles/bigquery.dataViewer BigQuery データ閲覧者

このロールをテーブルまたはビューに適用すると、次の権限が付与されます。

  • テーブルまたはビューからデータとメタデータを読み取る。

このロールは、個々のモデルやルーティンに適用できません。

このロールをデータセットに適用すると、次の権限が付与されます。

  • データセットのメタデータを読み取り、データセット内のテーブルを一覧表示する。
  • データセットのテーブルからデータとメタデータを読み取る。

プロジェクトまたは組織レベルで適用した場合、このロールは、プロジェクト内のすべてのデータセットを列挙することもできます。ただし、ジョブを実行するためには別途他のロールが必要です。

  • 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.export
  • bigquery.tables.get
  • bigquery.tables.getData
  • bigquery.tables.getIamPolicy
  • bigquery.tables.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
テーブルまたはビュー
roles/bigquery.jobUser BigQuery ジョブユーザー プロジェクト内でジョブ(クエリを含む)を実行する権限を付与します。
  • bigquery.jobs.create
  • resourcemanager.projects.get
  • resourcemanager.projects.list
プロジェクト
roles/bigquery.metadataViewer BigQuery メタデータ閲覧者

このロールをテーブルまたはビューに適用すると、次の権限が付与されます。

  • テーブルまたはビューからメタデータを読み取る。

このロールは、個々のモデルやルーティンに適用できません。

このロールをデータセットに適用すると、次の権限が付与されます。

  • データセット内のテーブルとビューを一覧表示する。
  • データセットのテーブルとビューからメタデータを読み取る。

このロールをプロジェクト レベルまたは組織レベルで適用すると、次の権限が付与されます。

  • プロジェクト内のすべてのデータセットを一覧表示し、すべてのデータセットのメタデータを読み込む。
  • プロジェクト内のすべてのテーブルとビューを一覧表示し、すべてのテーブルとビューのメタデータを読み込みます。

ジョブを実行する場合は別途他のロールが必要です。

  • 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
テーブルまたはビュー
roles/bigquery.readSessionUser BigQuery 読み取りセッション ユーザー 読み取りセッションを作成および使用するためのアクセス権
  • bigquery.readsessions.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
roles/bigquery.resourceAdmin BigQuery リソース管理者 ベータ版 BigQuery のすべてのリソースを管理します。
  • bigquery.bireservations.*
  • bigquery.capacityCommitments.*
  • bigquery.jobs.get
  • bigquery.jobs.list
  • bigquery.jobs.listAll
  • bigquery.reservationAssignments.*
  • bigquery.reservations.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
roles/bigquery.user BigQuery ユーザー

このロールをデータセットに適用すると、データセットのメタデータを読み取り、データセット内のテーブルを一覧表示できます。

プロジェクトに適用すると、プロジェクト内でクエリなどのジョブを実行することもできるようになります。このロールを持つメンバーは、自分が所有するジョブの列挙、自分が所有するジョブのキャンセル、プロジェクト内のデータセットの列挙を行うことができます。また、プロジェクト内に新しいデータセットを作成することもできます。作成者には新しいデータセットに対する BigQuery データオーナーのロール(roles/bigquery.dataOwner)が付与されます。

  • bigquery.bireservations.get
  • bigquery.capacityCommitments.get
  • bigquery.capacityCommitments.list
  • bigquery.config.get
  • bigquery.datasets.create
  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
  • bigquery.jobs.create
  • bigquery.jobs.list
  • bigquery.models.list
  • bigquery.readsessions.*
  • bigquery.reservationAssignments.list
  • bigquery.reservationAssignments.search
  • bigquery.reservations.get
  • bigquery.reservations.list
  • bigquery.routines.list
  • bigquery.savedqueries.get
  • bigquery.savedqueries.list
  • bigquery.tables.list
  • bigquery.transfers.get
  • resourcemanager.projects.get
  • resourcemanager.projects.list
データセット

BigQuery の基本の役割

BigQuery の基本の役割については、BigQuery の基本の役割と権限をご覧ください。

BigQuery のカスタムの役割

BigQuery のカスタムの IAM ロールを作成するには、IAM のカスタムロールのドキュメントで説明されている手順を行います。

次のステップ