BigQuery API V2(Java)を使用して、
BigQueryテーブルにアクセス制御ポリシーを設定する方法についてご紹介します。
アクセス制御ポリシーを取得するには、
適切なIAM権限が付与されている必要があります。
権限付与に関しては
⧉[BigQuery API(V2)] JavaでBigQueryを使う(2.権限付与)
を参照ください。
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 |
おしまい。。