ほとんどの Google Cloud リソースは testIamPermissions()
メソッドを公開しています。このメソッドを使用すると、現在認証されている呼び出し元に対して、リソースに対する特定の IAM 権限が付与されているかどうかをプログラムによって確認できます。testIamPermissions()
メソッドに入力パラメータとしてリソース ID と特定の権限を指定すると、呼び出し元に許可されている権限が返されます。
testIamPermissions()
メソッドを使用して、ウェブ アプリケーションの管理ツールにアクセスできるかどうかを判断します。たとえば、このメソッドを使用して、ユーザーの権限に基づいて、Google Cloud リソースに関する詳細情報を表示するかどうかを決定できます。
たとえば、現在認証されているユーザーにプロジェクトを削除する権限があるかどうかを確認するには、プロジェクト ID(foo-project
など)と resourcemanager.projects.delete
権限を入力パラメータとして指定して projects.testIamPermissions()
メソッドを呼び出します。呼び出し元に resourcemanager.projects.delete
権限が付与されている場合は、レスポンス本文にその権限が表示されます。呼び出し元にこの権限がない場合、レスポンス本文に権限は表示されません。
testIamPermissions()
メソッドを使用すると、サードパーティのグラフィック ユーザー インターフェース(GUI)で、認証されたユーザーが持つ表示権限に応じて Google Cloud リソースが表示されます。たとえば、Cloud Console では内部的に testIamPermissions()
メソッドを使用して、認証後に表示するリソースと機能を特定します。通常、付与されている権限はそれぞれのユーザーで異なるため、Cloud Console では表示されるアイテムと隠されるアイテムがユーザーごとに異なります。
権限のテスト方法
次の例は、Google Cloud プロジェクトの resourcemanager.projects.get
権限と resourcemanager.projects.delete
権限をテストする方法を示しています。他の Google Cloud リソースの権限をテストする場合は、各リソースが公開している testIamPermissions()
メソッドを呼び出します。たとえば、Cloud Storage バケットの IAM 権限をテストできます。
REST
この例では、プロジェクトに関する情報を取得できる IAM のロールがユーザーに付与されていますが、プロジェクトを削除する権限は付与されていません。
Resource Manager API の projects.testIamPermissions
メソッドは、権限のリストを受け入れ、メンバーがどの権限を持っているかをテストします。
後述のリクエストのデータを使用する前に、次のように置き換えます。
project-id
: Google Cloud プロジェクト ID
HTTP メソッドと URL:
POST https://cloudresourcemanager.googleapis.com/v1/projects/project-id:testIamPermissions
JSON 本文のリクエスト:
{ "permissions": [ "resourcemanager.projects.get", "resourcemanager.projects.delete" ] }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "permissions": [ "resourcemanager.projects.get" ] }
C#
このサンプルを試す前に、IAM クイックスタート: クライアント ライブラリの使用の C# の設定手順を実施してください。詳細については、IAM C# API のリファレンス ドキュメントをご覧ください。
IAM は、認証情報の生成に使用されるサービス アカウントの権限をテストします。Java
このサンプルを試す前に、IAM クイックスタート: クライアント ライブラリの使用の Java の設定手順を実施してください。詳細については、IAM Java API のリファレンス ドキュメントをご覧ください。
IAM は、認証情報の生成に使用されるサービス アカウントの権限をテストします。Python
このサンプルを試す前に、IAM クイックスタート: クライアント ライブラリの使用の Python の手順に従って設定を行ってください。詳細については、IAM Python API のリファレンス ドキュメントをご覧ください。
IAM は、認証情報の生成に使用されるサービス アカウントの権限をテストします。次のステップ
プロジェクト メンバーに対してアクセス権を付与、変更、取り消す方法について学習する。