LoginSignup
0
0

[BigQuery API(V2)] JavaでBigQueryテーブルのアクセス許可をテストする

Posted at

BigQuery API V2(Java)を使用して、
BigQueryテーブルのアクセス許可をテストする方法についてご紹介します。

APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[BigQuery API(V2)] JavaでBigQueryを使う
を参照ください。

No 目次
1 アクセス許可をテスト
1 スコープ
2 実行
3 レスポンスの内容
4 IAM権限
1 BigQueryの権限
2 BigQueryMLタスクの権限

1. アクセス許可をテスト

指定したテーブルのアクセス許可をテストします。

1.1. スコープ

このAPIを実行するには、以下のいずれかのスコープを指定してください。

BigqueryScopes.BIGQUERY
BigqueryScopes.CLOUD_PLATFORM
BigqueryScopes.CLOUD_PLATFORM_READ_ONLY
https://www.googleapis.com/auth/bigquery.readonly

⧉[BigQuery API(V2)] JavaでBigQueryを使う(3.2. BigQueryインスタンスを取得)
でスコープを指定してください。

1.2. 実行

public static void main(String[] args) throws Exception{
    Bigquery bigquery = getBigquery();
    Bigquery.Tables tables = bigquery.tables();
    
    String resource = String.format("projects/%s/datasets/%s/tables/%s",
                                    "プロジェクトID","データセットID","テーブルID");
    
    TestIamPermissionsRequest content = new TestIamPermissionsRequest();
    content.setPermissions(Arrays.asList("bigquery.tables.getIamPolicy"));
    
    Bigquery.Tables.TestIamPermissions permission = tables.testIamPermissions(resource,content);
    
    TestIamPermissionsResponse res = permission.execute();
    System.out.println(res);
}

1.2.1. HTTPリクエスト

POST: https://bigquery.googleapis.com/bigquery/v2/projects/{プロジェクトID}/datasets/{データセットID}/tables/{テーブルID}:testIamPermissions
が実行されます。

1.2.2. クエリパラメータ

クエリパラメータはありません。

1.2.3. リクエストボディ

TestIamPermissionsRequestメソッドにより、リクエストボディを追加できます。

メソッド 引数 説明
setPermissions List<String> チェックするためのIAM権限

1.3. レスポンスの内容

TestIamPermissionsResponse

メソッド 戻り値 説明
getPermissions List<String> 許可されたIAM権限

1.4. IAM権限

1.4.1. 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.link リンクされたデータセットを作成します
bigquery.datasets.listTagBindings データセットのリソースタグ バインディングを一覧表示します
bigquery.datasets.setIamPolicy Google Cloud コンソールでデータセットの IAM 権限を設定するオプションをユーザーに提供するために必要です
bigquery.datasets.update データセットのメタデータと権限を更新します
bigquery.datasets.updateTag データセットの Data Catalog タグを更新します
bigquery.jobs.create プロジェクト内でジョブ(クエリを含む)を実行します
bigquery.jobs.get ジョブのデータとメタデータを取得します
bigquery.jobs.list すべてのジョブを一覧表示し、任意のユーザーが送信した任意のジョブのメタデータを取得します
bigquery.jobs.listAll すべてのジョブを一覧表示し、任意のユーザーが送信した任意のジョブのメタデータを取得します
bigquery.jobs.listExecutionMetadata ユーザーが送信したジョブに関するすべてのジョブ実行メタデータを一覧表示します
bigquery.jobs.delete ジョブのメタデータを削除します
bigquery.jobs.update ジョブをキャンセルします
bigquery.models.create 新しいML モデルを作成します
bigquery.models.delete ML モデルを削除します
bigquery.models.getData ML モデルのデータを取得します
bigquery.models.getMetadata ML モデルのメタデータを取得します
bigquery.models.list ML モデルとモデルのメタデータを一覧表示します
bigquery.models.updateData ML モデルのデータを更新します
bigquery.models.updateMetadata ML モデルのメタデータを更新します
bigquery.models.export ML モデルをエクスポートします
bigquery.models.updateTag モデルの Data Catalog タグを更新します
bigquery.readsessions.create 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 ルーティンの Data Catalog タグを更新します
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.createTagBinding テーブルにリソースタグ バインディングを作成します
bigquery.tables.delete テーブルを削除します
bigquery.tables.deleteIndex テーブルの検索インデックスを削除します
bigquery.tables.deleteSnapshot テーブル スナップショットを削除します
bigquery.tables.deleteTagBinding テーブルのリソースタグ バインディングを削除します
bigquery.tables.export BigQuery からテーブルのデータをエクスポートします
bigquery.tables.get テーブルのメタデータを取得します
bigquery.tables.getData テーブルのデータを取得します
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 テーブルの Data Catalog タグを更新します
bigquery.transfers.get 転送のメタデータを取得します
bigquery.transfers.update 転送を作成、更新、削除します

1.4.2. BigQueryMLタスクの権限

権限 説明
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.jobs.create
bigquery.models.getData
ML.EVALUATE、ML.PREDICT、ML.TRAINING_INFO、ML.WEIGHTS などの関数を使用して、評価、予測、モデル、特徴の検査を行う
bigquery.jobs.create
bigquery.models.export
モデルをエクスポートする
bigquery.models.updateTag モデルの Data Catalog タグを更新する


おしまい。。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0