ほとんどの Google Cloud リソースは testIamPermissions()
メソッドを公開しています。このメソッドを使用すると、現在認証されている呼び出し元に対して、リソースに対する特定の IAM 権限が付与されているかどうかをプログラムによって確認できます。testIamPermissions()
メソッドに入力パラメータとしてリソース ID と特定の権限を指定すると、呼び出し元に許可されている権限が返されます。
testIamPermissions()
メソッドを使用して、ウェブ アプリケーションの管理ツールにアクセスできるかどうかを判断します。たとえば、このメソッドを使用して、ユーザーの権限に基づいて、Google Cloud リソースに関する詳細情報を表示するかどうかを決定できます。
たとえば、現在認証されているユーザーにプロジェクトを削除する権限があるかどうかを確認するには、プロジェクト ID(foo-project
など)と resourcemanager.projects.delete
権限を入力パラメータとして指定して projects.testIamPermissions()
メソッドを呼び出します。呼び出し元に resourcemanager.projects.delete
権限が付与されている場合は、レスポンス本文にその権限が表示されます。呼び出し元にこの権限がない場合、レスポンス本文に権限は表示されません。
testIamPermissions()
メソッドを使用すると、サードパーティのグラフィック ユーザー インターフェース(GUI)で、認証されたユーザーが持つ表示権限に応じて Google Cloud リソースが表示されます。たとえば、Google Cloud コンソールでは内部的に testIamPermissions()
メソッドを使用して、認証後に表示するリソースと機能を特定します。通常、付与されている権限はそれぞれのユーザーで異なるため、Google Cloud コンソールでは表示されるアイテムと隠されるアイテムがユーザーごとに異なります。
始める前に
Resource Manager API を有効にします。
認証を設定する。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
C++
このページの C++ サンプルをローカル開発環境から使用するには、gcloud CLI をインストールして初期化し、自身のユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定してください。
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
詳細については、Google Cloud の認証に関するドキュメントのローカル開発環境の認証の設定をご覧ください。
C#
このページの .NET サンプルをローカル開発環境から使用するには、gcloud CLI をインストールして初期化し、自身のユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定してください。
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
詳細については、Google Cloud の認証に関するドキュメントのローカル開発環境の認証の設定をご覧ください。
Java
このページの Java サンプルをローカル開発環境から使用するには、gcloud CLI をインストールして初期化し、自身のユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定してください。
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
詳細については、Google Cloud の認証に関するドキュメントのローカル開発環境の認証の設定をご覧ください。
Python
このページの Python サンプルをローカル開発環境から使用するには、gcloud CLI をインストールして初期化し、自身のユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定してください。
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
詳細については、Google Cloud の認証に関するドキュメントのローカル開発環境の認証の設定をご覧ください。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
必要なロール
権限のテストに IAM ロールは必要ありません。
権限のテスト方法
次の例は、Google Cloud プロジェクトの resourcemanager.projects.get
権限と resourcemanager.projects.delete
権限をテストする方法を示しています。他の Google Cloud リソースの権限をテストする場合は、各リソースが公開している testIamPermissions()
メソッドを呼び出します。たとえば、Cloud Storage バケットの IAM 権限をテストできます。
C++
IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM C++ API のリファレンス ドキュメントをご覧ください。
IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。
C#
Resource Manager に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。
Resource Manager 用のクライアント ライブラリをインストールして使用する方法については、Resource Manager クライアント ライブラリをご覧ください。
IAM は、認証情報の生成に使用されるサービス アカウントの権限をテストします。
Java
Resource Manager に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。
Resource Manager 用のクライアント ライブラリをインストールして使用する方法については、Resource Manager クライアント ライブラリをご覧ください。
IAM は、認証情報の生成に使用されるサービス アカウントの権限をテストします。
Python
Resource Manager に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。
Resource Manager 用のクライアント ライブラリをインストールして使用する方法については、Resource Manager クライアント ライブラリをご覧ください。
IAM は、認証情報の生成に使用されるサービス アカウントの権限をテストします。
REST
この例では、プロジェクトに関する情報を取得できる IAM のロールがユーザーに付与されていますが、プロジェクトを削除する権限は付与されていません。
Resource Manager API の projects.testIamPermissions
メソッドは、権限のリストを受け入れ、プリンシパルがどの権限を持っているかをテストします。
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID
: Google Cloud プロジェクト ID。プロジェクト ID は英数字からなる文字列です(例:my-project
)。
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" ] }
次のステップ
プリンシパルへのアクセス権の付与、変更、取り消しを行う方法を確認する。