LoginSignup
0
0

[Cloud Storage API(V2)] JavaでバケットのIAMポリシーを取得する

Last updated at Posted at 2024-04-24

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


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