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

このページでは、BigQuery の Cloud Identity and Access Management の役割と権限について説明します。

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

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

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

概要

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

このページでは、BigQuery の Cloud IAM の役割について説明します。この役割により、BigQuery のリソースへのアクセス権を ID に与えることができます。

Cloud IAM の役割のタイプ

Cloud Identity and Access Management の役割には、次の 3 つのタイプがあります。

  • 基本の役割: Cloud Identity and Access Management の導入前から存在しているオーナー、編集者、閲覧者の役割が含まれます。
  • 事前定義された役割: 特定のサービスへのアクセスを細かく制御します。また、Google Cloud により管理されます。事前定義された役割は、一般的なユースケースとアクセス制御パターンをサポートすることを目的としています。
  • カスタムの役割: ユーザー指定の権限リストに従って、アクセスを細かく制御します。

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

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

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

カスタムの役割を作成する方法については、Cloud Identity and Access Management のドキュメントのカスタムの役割の作成と管理をご覧ください。

BigQuery の権限と事前定義された Cloud IAM の役割

BigQuery リソースへのアクセス権を付与するには、ユーザー、グループ、またはサービス アカウントに、役割を少なくとも 1 つ割り当てます。組織レベルおよびプロジェクト レベルで役割を割り当てると、BigQuery ジョブの実行権限、またはプロジェクトに含まれる BigQuery リソースすべてに対する管理権限が付与されます。

データセット レベルで役割を割り当てることにより、データセットへのアクセス権だけを付与することもできます。Cloud IAM ポリシー階層では、BigQuery データセットはプロジェクトの子リソースにあたります。テーブルとビューがデータセットの子リソースで、親データセットから権限を継承します。

データセット レベルで役割を割り当てる方法の詳細については、データセットへのアクセスの制御をご覧ください。

BigQuery の権限

次の表に、BigQuery で使用可能な権限を記載します。

権限 説明
bigquery.capacityCommitments.create(ベータ版) プロジェクトに容量コミットメントを作成します。
bigquery.capacityCommitments.delete(ベータ版) 容量コミットメントを削除します。
bigquery.capacityCommitments.get(ベータ版) 容量コミットメントに関する詳細を取得します。
bigquery.capacityCommitments.list(ベータ版) プロジェクト内の容量コミットメントすべてを一覧表示します。
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 Cloud IAM ポリシーを読み出します。
bigquery.datasets.setIamPolicy Cloud IAM ポリシーを変更します。
bigquery.datasets.update データセットのメタデータを更新します。
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.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.list が必要です。

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.list テーブルとテーブルのメタデータを一覧表示します。
bigquery.tables.update

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

bigquery.tables.updateData

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

bigquery.transfers.get 転送のメタデータを取得します。
bigquery.transfers.update 転送を作成、更新、削除します。

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

BigQuery の事前定義された Cloud IAM の役割

次の表に、BigQuery の事前定義された Cloud 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 データ編集者

データセットに適用した場合、dataEditor には次の権限が与えられます。

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

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

  • 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.list
  • bigquery.tables.update
  • bigquery.tables.updateData
  • bigquery.tables.updateTag
  • resourcemanager.projects.get
  • resourcemanager.projects.list
データセット
roles/bigquery.dataOwner BigQuery データオーナー

データセットに適用した場合、dataOwner には次の権限が与えられます。

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

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

  • bigquery.datasets.*
  • bigquery.models.*
  • bigquery.routines.*
  • bigquery.tables.*
  • resourcemanager.projects.get
  • resourcemanager.projects.list
データセット
roles/bigquery.dataViewer BigQuery データ閲覧者

データセットに適用した場合、dataViewer には次の権限が与えられます。

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

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

  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
  • 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.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
データセット
roles/bigquery.jobUser BigQuery ジョブユーザー プロジェクト内でジョブ(クエリを含む)を実行する権限を付与します。 この役割は、すべてのジョブの存在を確認し、自身のジョブを列挙し、自身のジョブを取り消すことができます。
  • bigquery.jobs.create
  • resourcemanager.projects.get
  • resourcemanager.projects.list
プロジェクト
roles/bigquery.metadataViewer BigQuery メタデータ閲覧者

プロジェクト レベルまたは組織レベルで適用した場合、metadataViewer で次の権限が付与されます。

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

ジョブを実行する場合は追加の役割が必要です。

  • bigquery.datasets.get
  • bigquery.datasets.getIamPolicy
  • bigquery.models.getMetadata
  • bigquery.models.list
  • bigquery.routines.get
  • bigquery.routines.list
  • bigquery.tables.get
  • 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.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 の Cloud IAM の役割を独自に作成するには、Cloud IAM のカスタム役割のドキュメントで説明されている手順に従ってください。

次のステップ