権限のテスト

Google Cloud Platform の多くのリソースでは testIamPermissions() メソッドが公開されています。このメソッドを使用して、現在認証されている呼び出し元に、そのリソースに対する特定の Cloud IAM 権限が付与されているかどうかを確認できます。testIamPermissions() メソッドに入力パラメータとしてリソース ID と特定の権限を指定すると、呼び出し元に許可されている権限が返されます。

たとえば、現在認証されているユーザーにプロジェクトを削除する権限があるかどうかを確認するには、プロジェクト ID(foo-project など)と resourcemanager.projects.delete 権限を入力パラメータとして指定して projects.testIamPermissions() メソッドを呼び出します。呼び出し元に resourcemanager.projects.delete 権限が付与されている場合は、レスポンス本文にその権限が表示されます。呼び出し元にこの権限がない場合、レスポンス本文に権限は表示されません。

testIamPermissions() メソッドを使用すると、サードパーティのグラフィック ユーザー インターフェース(GUI)で、認証されたユーザーが持つ表示権限に応じて GCP リソースが表示されます。たとえば、GCP Console ではその内部で testIamPermissions() メソッドを使用して、認証されたユーザーに表示するリソースと機能が決定されます。通常、付与されている権限はそれぞれのユーザーで異なるため、GCP Console では表示されるアイテムと隠されるアイテムがユーザーごとに異なります。

権限のテスト方法

呼び出し元にプロジェクトを取得する権限があり、一覧表示する権限はない場合、Resource Manager プロジェクトの権限をテストするには次のように行います。

API

詳細については、projects.testIamPermissions() メソッドをご覧ください。

リクエスト:

POST https://cloudresourcemanager.googleapis.com/v1/projects/[PROJECT_ID]:testIamPermissions

{
    "permissions":  [
        "resourcemanager.projects.get",
        "resourcemanager.projects.delete"
    ]
}

[PROJECT_ID] に GCP プロジェクト ID を代入してください。

レスポンス:

{
    "permissions": [
        "resourcemanager.projects.get"
    ]
}

Java

import com.google.api.services.cloudresourcemanager.model.TestIamPermissionsRequest;
import java.util.List;

...

TestIamPermissionsRequest testIamPermissionsRequest =
    new TestIamPermissionsRequest().setPermissions(
        Arrays.asList("resourcemanager.projects.get", "resourcemanager.projects.delete"));

TestIamPermissionsResponse testIamPermissionsResponse =
    client.projects().testIamPermissions(
        projectId, testIamPermissionsRequest).execute();
List<String> testResults = testIamPermissionsResponse.getPermissions();
...

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud IAM のドキュメント