Cloud Storage API V2(Java)を使用して、
Cloud StorageのバケットのIAMポリシーを取得する方法
についてご紹介します。
IAM
Identity and Access Managementの略で
リソースへのアクセス制御を管理する機能のことです。
リソースに対し、どのユーザーがどうアクセスするか等の
ルールのことをIAMポリシーと呼びます。
APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う
を参照ください。
| No | 目次 | ||
|---|---|---|---|
| 1 | IAMポリシーを取得 | ||
| 1 | スコープ | ||
| 2 | 実行 | ||
| 3 | レスポンスの内容 |
1. IAMポリシーを取得
指定したバケットのIAMポリシーを取得します。
1.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
StorageScopes.CLOUD_PLATFORM
StorageScopes.DEVSTORAGE_FULL_CONTROL
⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う(2.2 Storageインスタンスを取得)
でスコープを指定してください。
1.2. 実行
public static void main(String[] args) throws Exception{
Storage storage = getStorage();
Storage.Buckets buckets = storage.buckets();
Storage.Buckets.GetIamPolicy iamPolicy = buckets.getIamPolicy("バケットID");
Policy res = iamPolicy.execute();
System.out.println(res);
}
1.2.1. HTTPリクエスト
GET: https://storage.googleapis.com/storage/v1/b/{バケットID}/iam
が実行されます。
1.2.2. クエリパラメータ
Storage.Buckets.GetIamPolicyのsetメソッドにより、クエリパラメータを追加できます。
| メソッド | 引数 | 説明 |
|---|---|---|
| setOptionsRequestedPolicyVersion | Integer | 取得するIAMポリシーのバージョン |
1.3. レスポンスの内容
Policy
| メソッド | 戻り値 | 説明 |
|---|---|---|
| getVersion | Integer | IAMポリシーのバージョン |
| getKind | String | リソースの種類 固定文字列:"storage#policy" |
| getResourceId | String | このポリシーが属するリソースID |
| getBindings | List<Policy.Bindings> | 一連のアクセス許可を伴うロールと、そのロールを持つプリンシパルとの関連付け |
| getEtag | String | ポリシーのHTTPエンティティタグ |
Policy.Bindings
| メソッド | 戻り値 | 説明 |
|---|---|---|
| getRole | String | Storageロール |
| getMembers | List<String> |
基本ロールとプロジェクトIDを組み合わせた文字列 次の文字列を配列で返す "projectOwner:{プロジェクトID}" "projectEditor:{プロジェクトID}" "projectViewer:{プロジェクトID}" |
| getCondition | Expr | このバインディングに関連付けられた条件オブジェクト |
Expr
| メソッド | 戻り値 | 説明 |
|---|---|---|
| getTitle | String | 条件のタイトル |
| getDescription | String | 条件の説明 |
| getExpression | String | Common Expression Language (CEL) のサブセットを使用した属性ベースの論理式 |
基本ロール
| ロール | 概要 |
|---|---|
| Viewer | 既存のリソースやデータの表示(ただし変更ではない)など、状態に影響を与えない読み取り専用の権限 |
| Editor | すべての閲覧者権限に加えて、既存のリソースの変更など、状態を変更するアクションに対する権限 |
| Owner | すべての編集者の権限に加えて、次のようなアクションの権限 |
Storageロール
| ロール | 定義値 | 概要 |
|---|---|---|
| Storage オブジェクト作成者 | roles/storage.objectCreator | ユーザーによるオブジェクトの作成を許可 |
| Storage オブジェクト閲覧者 | roles/storage.objectViewer | オブジェクトとそのメタデータ(ACL を除く)を閲覧するためのアクセス権 |
| Storage オブジェクト ユーザー | roles/storage.objectUser | オブジェクトとマネージド フォルダ、およびそれらのメタデータを作成、表示、一覧表示、更新、削除するためのアクセス権 |
| ストレージ オブジェクト管理者 | roles/storage.objectAdmin | オブジェクトの一覧表示、作成、表示、削除、オブジェクトの ACL の設定など、オブジェクトのすべてを管理できる権限 |
| ストレージ フォルダ管理者 | roles/storage.folderAdmin | オブジェクトとマネージド フォルダに対する完全な制御権限 |
| Storage HMAC キー管理者 | roles/storage.hmacKeyAdmin | プロジェクト内の HMAC キーのすべてを管理する権限 |
| Storage 管理者 | roles/storage.admin | オブジェクト ACL や IAM ポリシーの取得と設定など、バケット、マネージド フォルダ、オブジェクトに対する完全な制御権限 |
| Storage Insights 管理者 | roles/storageinsights.admin | Storage Insights のインベントリ レポートと構成に対する完全な制御権限 |
| Storage Insights 閲覧者 | roles/storageinsights.viewer | Storage Insights のインベントリ レポートと構成に対する読み取り専用アクセス権 |
| Storage Insights コレクタ サービス | roles/storage.insightsCollectorService | インベントリ レポートのオブジェクト メタデータに対する読み取りアクセス権 |
おしまい。。