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.ManagedFolders folder = storage.managedFolders();
List<String> permissions = new ArrayList<>();
permissions.add("IAM権限");
Storage.ManagedFolders.TestIamPermissions iam = folder.testIamPermissions("バケットID","管理フォルダ名",permissions);
TestIamPermissionsResponse res = iam.execute();
System.out.println(res);
}
1.2.1. HTTPリクエスト
GET: https://storage.googleapis.com/storage/v1/b/{バケットID}/managedFolders/{管理フォルダ名}/iam/testPermissions
が実行されます。
1.2.2. クエリパラメータ
Storage.ManagedFoldersの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 | インベントリ レポートを一覧表示 |
おしまい。。