LoginSignup
0
0

[Cloud Storage API(V2)] Javaでバケットのアクセス権限をテストする

Posted at

Cloud Storage API V2(Java)を使用して、
Cloud Storageのバケットのアクセス権限をテストする方法
についてご紹介します。

APIを利用する環境の準備から始める場合や、コードを実行する際は、
⧉[Cloud Storage API(V2)] JavaでCloud Storageを使う
を参照ください。

No 目次
1 アクセス権限をテスト
1 スコープ
2 実行
3 レスポンスの内容

1. アクセス権限をテスト

指定したバケットのアクセス権限をテストします。

指定したIAMアクセス権限がない場合は、例外が発生します。

1.1. スコープ

このAPIを実行するには、以下のいずれかのスコープを指定してください。

StorageScopes.CLOUD_PLATFORM
StorageScopes.CLOUD_PLATFORM_READ_ONLY
StorageScopes.DEVSTORAGE_FULL_CONTROL
StorageScopes.DEVSTORAGE_READ_ONLY
StorageScopes.DEVSTORAGE_READ_WRITE

⧉[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();
    
    List<String> permissions = new ArrayList<>();
    permissions.add("IAM権限");
    Storage.Buckets.TestIamPermissions iam = buckets.testIamPermissions("バケットID",permissions);
    
    TestIamPermissionsResponse res = iam.execute();
    System.out.println(res);
}

1.2.1. HTTPリクエスト

GET: https://storage.googleapis.com/storage/v1/b/{バケットID}/iam/testPermissions
が実行されます。

1.2.2. クエリパラメータ

Storage.BucketsのtestIamPermissions()に渡します。

メソッド 引数 説明
permissions List<String> 【必須】テストするアクセス許可

1.3. レスポンスの内容

TestIamPermissionsResponse

メソッド 戻り値 説明
getKind String リソースの種類
固定文字列:"storage#testIamPermissionsResponse"
getPermissions List<String> 呼び出し元が保持するアクセス許可

1.4. IAM権限

1.4.1 バケットの権限
権限名 説明
storage.buckets.create プロジェクト内に新しいバケットを作成
storage.buckets.createTagBinding バケットに新しいタグ バインディングを作成
storage.buckets.delete バケットを削除
storage.buckets.deleteTagBinding バケットでタグ バインディングを削除
storage.buckets.enableObjectRetention バケットでオブジェクト保持構成を有効にする
storage.buckets.get バケットのメタデータ(IAM ポリシーを除く)を読み取る。バケットの Pub/Sub 通知構成の一覧表示または読み取る
storage.buckets.getIamPolicy バケットの IAM ポリシーを読み取る
storage.buckets.getObjectInsights インベントリ レポートのオブジェクトのメタデータを読み取る
storage.buckets.list プロジェクト内のバケットを一覧表示する。一覧表示するときに、バケットのメタデータも読み取る(IAM を除く)
storage.buckets.listEffectiveTags バケットに関連付けられているタグをすべて一覧表示
storage.buckets.listTagBindings バケットに直接適用されたタグを一覧表示
storage.buckets.setIamPolicy バケットの IAM ポリシーを更新
storage.buckets.update バケットのメタデータ(IAM ポリシーを除く)を更新
1.4.2. マネージド フォルダの権限
権限名 説明
storage.managedFolders.create マネージド フォルダを作成
storage.managedFolders.delete マネージド フォルダを削除
storage.managedFolders.get マネージド フォルダを読み取る
storage.managedFolders.getIamPolicy マネージド フォルダの IAM ポリシーを読み取る
storage.managedFolders.list バケットまたはフォルダ内のマネージド フォルダを一覧表示
storage.managedFolders.setIamPolicy マネージド フォルダの IAM ポリシーを更新
1.4.3. オブジェクトの権限
権限名 説明
storage.objects.create 新しいオブジェクトをバケットに追加
storage.objects.delete オブジェクトを削除
storage.objects.get オブジェクトのデータとメタデータを読み取る(ACL を除く)
storage.objects.getIamPolicy IAM ポリシーとして返されるオブジェクトの ACL を読み取る
storage.objects.list バケット内のオブジェクトを一覧表示する。一覧表示するときに、オブジェクトのメタデータも読み取る(ACL を除く)
storage.objects.overrideUnlockedRetention オブジェクト保持構成を操作するときに、x-goog-bypass-governance-retention ヘッダーまたは overrideUnlockedRetention クエリ パラメータを使用
storage.objects.setIamPolicy オブジェクトの ACL を更新
storage.objects.setRetention オブジェクトの保持を追加または更新
storage.objects.update オブジェクトのメタデータを更新する(ACL を除く)。更新時にオブジェクトのメタデータも読み取る(ACL を除く)
1.4.4. HMAC キーの権限
権限名 説明
storage.hmacKeys.create プロジェクト内のサービス アカウントの新しい HMAC キーを作成
storage.hmacKeys.delete 既存の HMAC キーを削除
storage.hmacKeys.get HMAC キーのメタデータを読み取る
storage.hmacKeys.list プロジェクト内の HMAC キーのメタデータを一覧表示
storage.hmacKeys.update HMAC キーのステータスを更新
1.4.5. マルチパート アップロードの権限
権限名 説明
storage.multipartUploads.create 複数のパートでオブジェクトをアップロード
storage.multipartUploads.abort マルチパート アップロード セッションを中止にする
storage.multipartUploads.listParts マルチパート アップロード セッションで、アップロードされたオブジェクト パーツを一覧表示
storage.multipartUploads.list バケット内のマルチパート アップロード セッションを一覧表示
1.4.6. Storage Insights インベントリ レポートの権限
権限名 説明
storageinsights.reportConfigs.create インベントリ レポートの構成を作成
storageinsights.reportConfigs.delete インベントリ レポートの構成を削除
storageinsights.reportConfigs.get インベントリ レポートの構成を取得
storageinsights.reportConfigs.list インベントリ レポートの構成を一覧表示
storageinsights.reportConfigs.update インベントリ レポートの構成を変更
storageinsights.reportDetails.get インベントリ レポートを取得
storageinsights.reportDetails.list インベントリ レポートを一覧表示


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