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
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");
GetIamPolicyRequest content = new GetIamPolicyRequest();
Bigquery.Tables.GetIamPolicy policy = tables.getIamPolicy(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}:getIamPolicy
が実行されます。
1.2.2. クエリパラメータ
クエリパラメータはありません。
1.2.3. リクエストボディ
GetIamPolicyRequestsetメソッドにより、リクエストボディを追加できます。
| メソッド | 引数 | 説明 |
|---|---|---|
| setOptions | GetPolicyOptions | オプション指定 |
GetPolicyOptions
| メソッド | 引数 | 説明 |
|---|---|---|
| setRequestedPolicyVersion | Integer | ポリシーのフォーマットに使用されるポリシーの最大バージョン |
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 |
LogType
| 定義値 | 内容 |
|---|---|
| LOG_TYPE_UNSPECIFIED | デフォルト |
| ADMIN_READ | 管理人が読込 |
| DATA_WRITE | データの書込 |
| DATA_READ | データの読込 |
おしまい。。