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 | インベントリ レポートのオブジェクト メタデータに対する読み取りアクセス権 |
おしまい。。