LoginSignup
0
0

[BigQuery API(V2)] JavaでBigQueryテーブルにアクセス制御ポリシーを設定する

Posted at

BigQuery API V2(Java)を使用して、
BigQueryテーブルにアクセス制御ポリシーを設定する方法についてご紹介します。

アクセス制御ポリシーを取得するには、
適切なIAM権限が付与されている必要があります。

権限付与に関しては
⧉[BigQuery API(V2)] JavaでBigQueryを使う(2.権限付与)
を参照ください。

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

No 目次
1 アクセス制御ポリシーを設定
1 スコープ
2 実行
3 レスポンスの内容

1. アクセス制御ポリシーを設定

指定したテーブルにアクセス制御ポリシーを設定します。

1.1. スコープ

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

BigqueryScopes.BIGQUERY
BigqueryScopes.CLOUD_PLATFORM

⧉[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");
    
    SetIamPolicyRequest content = new SetIamPolicyRequest();
    //ポリシーの生成
    
    Bigquery.Tables.SetIamPolicy policy = tables.setIamPolicy(resource,content);
    
    Policy res = policy.execute();
    System.out.println(res);
}

1.2.1. HTTPリクエスト

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

1.2.2. クエリパラメータ

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

1.2.3. リクエストボディ

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

メソッド 引数 説明
setPolicy Policy ポリシー
setUpdateMask String 変更するフィール(カンマ区切り)

Policy(Set)

メソッド 引数 説明
setVersion Integer ポリシーのバージョン
setBindings List<Binding> プリンシパルとの関連情報
setAuditConfigs List<AuditConfig> クラウド監査ログ構成
setEtag String ハッシュ値

Binding(Set)

メソッド 引数 説明
setRole String 割り当てられるロール
setMembers List<String> リソースへのアクセスをリクエストするプリンシパル
setCondition Expr 関連付けられている条件

Expr(Set)

メソッド 引数 説明
setExpression String 共通式言語構文での式のテキスト表現
setTitle String 式のタイトル
setDescription String 式の説明
setLocation String ロケーション

AuditConfig(Set)

メソッド 引数 説明
setService String 監査ログを有効にするサービス
setAuditLogConfigs List<AuditLogConfig> 各タイプの権限のログを記録するための設定

AuditLogConfig(Set)

メソッド 引数 説明
setLogType LogType(enum) この構成で有効になるログのタイプ
setExemptedMembers List<String> このタイプのアクセス許可のログを記録しないID

LogType

定義値 内容
LOG_TYPE_UNSPECIFIED デフォルト
ADMIN_READ 管理人が読込
DATA_WRITE データの書込
DATA_READ データの読込

1.3. レスポンスの内容

Policy

メソッド 戻り値 説明
getVersion Integer ポリシーのバージョン
getBindings List<Binding> プリンシパルとの関連情報
getAuditConfigs List<AuditConfig> クラウド監査ログ構成
getEtag String ハッシュ値

Binding

メソッド 戻り値 説明
getRole String 割り当てられるロール
getMembers List<String> リソースへのアクセスをリクエストするプリンシパル
getCondition Expr 関連付けられている条件

Expr

メソッド 戻り値 説明
getExpression String 共通式言語構文での式のテキスト表現
getTitle String 式のタイトル
getDescription String 式の説明
getLocation String ロケーション

AuditConfig

メソッド 戻り値 説明
getService String 監査ログを有効にするサービス
getAuditLogConfigs List<AuditLogConfig> 各タイプの権限のログを記録するための設定

AuditLogConfig

メソッド 戻り値 説明
getLogType LogType(enum) この構成で有効になるログのタイプ
getExemptedMembers List<String> このタイプのアクセス許可のログを記録しないID


おしまい。。
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