アクセス制御

BigQuery は ACL を使用してプロジェクトデータセットの権限を管理します。ACL は、テーブルでは直接はサポートされていません。テーブルの ACL は、そのテーブルを含むデータセットから継承されます。

プロジェクトの役割は、ジョブの実行やプロジェクトの管理を行えるかどうかに影響します。一方、データセットの役割は、プロジェクト内のデータに対するアクセスや変更をどのように行えるかに影響します。

目次

プロジェクトの役割

デフォルトでは、プロジェクトへのアクセス権限を付与すると、その中のデータセットにもアクセス権が付与されます。デフォルトのアクセス権限はデータセット単位でオーバーライドできます。プロジェクトの Is Owner 役割を持つユーザーは、あらゆるプロジェクトの役割を取り消したり変更したりできます。

サポートされるエンティティ タイプ

プロジェクトの役割は、メールアドレスを指定することによって、個々のユーザー、グループ、サービス アカウントごとに付与または取り消しが行われます。

サポートされるプロジェクトの役割

BigQuery でサポートされるプロジェクトの役割は次のとおりです。

プロジェクトの役割 可能な操作
Can View
  • プロジェクトでジョブを開始できます。ジョブの種類によっては、データセットの役割が追加で必要になります。
  • プロジェクトで開始したすべてのジョブのリスト表示と取得を行えます。
  • デフォルトで、プロジェクト内のすべての新しいデータセットに対する READER 役割が付与されます。
Can Edit
  • Can View で可能な操作に加えて、次の操作が可能です。
    • プロジェクトで新しいデータセットを作成できます。
    • デフォルトで、プロジェクト内のすべての新しいデータセットに対する WRITER 役割が付与されます。
Is Owner
  • Can Edit で可能な操作に加えて、次の操作が可能です。
    • プロジェクトのすべてのデータセットをリスト表示する
    • プロジェクトの任意のデータセットを削除する
    • プロジェクトで実行されるすべてのジョブ(他のプロジェクト ユーザーによって実行されるジョブを含みます)のリスト表示と取得を行えます。

デフォルトのアクセス権限

Google Cloud Platform Console で新しいプロジェクトを作成すると、次の役割が自動的に付与されます。

プロジェクトの役割 エンティティ
Is Owner プロジェクトを作成したユーザー

アクセス権限の付与と取り消し

プロジェクトの役割の付与または取り消しは Google Cloud Platform Console から行います。新しいプロジェクトの役割を付与したりプロジェクトの役割を取り消したりするには、プロジェクトに対する Is Owner アクセス権限が必要です。

プロジェクトの役割に対するアクセス権限の付与または取り消しを行う方法について詳しくは、プロジェクト メンバーの管理についての記事をご覧ください。

データセットの役割

サポートされるエンティティ タイプ

データセットの役割を付与できるエンティティ タイプは次のとおりです。

エンティティ タイプ API
単一のユーザー(メールアドレスによって識別) access.userByEmail
Google グループ(メールアドレスによって識別) access.groupByEmail
事前に定義されたユーザーのグループ(すべてのユーザー、データセットを含むプロジェクトに対して同じプロジェクトの役割を持つユーザーのグループなど) access.specialGroup

サポートされるデータセットの役割

BigQuery でサポートされるデータセットの役割は次のとおりです。

データセットの役割 可能な操作
READER
  • データセットのテーブルの読み取り、クエリ、コピー、エクスポートを行えます。
    • データセットで get を呼び出すことができます。
    • データセットのテーブルで getlist を呼び出すことができます。
    • データセットのテーブルのテーブルデータで list を呼び出すことができます。
WRITER
  • READER で可能な操作に加えて、次の操作が可能です。
    • データセットのデータを編集または追加できます。
      • insertinsertAllupdatedelete を呼び出すことができます。
      • データセット内のテーブルを、ジョブの読み込み、コピー、クエリの実行先テーブルとして使用できます。
OWNER
  • WRITER で可能な操作に加えて、次の操作が可能です。
    • データセットで update を呼び出すことができます。
    • データセットで delete を呼び出すことができます。

注: データセットには OWNER 役割を持つエンティティが少なくとも 1 つ必要です。OWNER 役割を持つユーザーは自分の OWNER 役割を削除できません。

デフォルトのアクセス権限

新しいデータセットを作成すると、BigQuery によってデフォルトのデータセット アクセス権限が次のエンティティに追加されます。データセットの作成時に役割を指定すると、デフォルトの値がオーバーライドされます。

エンティティ プロジェクトの役割
プロジェクトに対する Can View アクセス権限を持つすべてのユーザー READER
プロジェクトに対する Can Edit アクセス権限を持つすべてのユーザー WRITER
プロジェクトに対する Is Owner アクセス権限を持つすべてのユーザー OWNER

アクセス権限の付与と取り消し

データセットの役割の付与または取り消しを行うには、次のいずれかの方法を使用します。

  • BigQuery API で update を使用する
  • ブラウザツールでデータセット名の横にあるプルダウン メニューをクリックし、[Share dataset] をクリックする

トップへ戻る

その他のサービス

BigQuery を操作するときは、プロジェクトの役割やデータセットの役割の他に、アクセス権限が追加で必要になる場合があります。たとえば、Google Cloud Storage から BigQuery にデータを読み込むときは、データがあるバケットに対する特定のレベルのアクセス権限が必要です。

このような必須の役割に関する情報は、BigQuery ドキュメントの特定のトピック(データの読み込みデータのエクスポートなど)の上部に示してあります。

トップへ戻る

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...