リソースのユーザーに Identity and Access Management(IAM)のロールを付与する前に、特定のリソースに関して付与できるロールの種類について確認することをおすすめします。
始める前に
IAM API を有効にします。
認証を設定する。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
コンソール
Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。
gcloud
このページの gcloud CLI のサンプルは、次のいずれかの開発環境から使用できます。
C++
このページの C++ サンプルをローカル開発環境から使用するには、gcloud CLI をインストールして初期化し、自身のユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定してください。
- Google Cloud CLI をインストールします。
-
gcloud CLI を初期化するには:
gcloud init
-
Google アカウントのローカル認証情報を作成します。
gcloud auth application-default login
詳細については、Google Cloud の認証に関するドキュメントのローカル開発環境の認証の設定をご覧ください。
C#
このページの .NET サンプルをローカル開発環境から使用するには、gcloud CLI をインストールして初期化し、自身のユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定してください。
- Google Cloud CLI をインストールします。
-
gcloud CLI を初期化するには:
gcloud init
-
Google アカウントのローカル認証情報を作成します。
gcloud auth application-default login
詳細については、Google Cloud の認証に関するドキュメントのローカル開発環境の認証の設定をご覧ください。
Go
このページの Go サンプルをローカル開発環境から使用するには、gcloud CLI をインストールして初期化し、自身のユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定してください。
- Google Cloud CLI をインストールします。
-
gcloud CLI を初期化するには:
gcloud init
-
Google アカウントのローカル認証情報を作成します。
gcloud auth application-default login
詳細については、Google Cloud の認証に関するドキュメントのローカル開発環境の認証の設定をご覧ください。
Java
このページの Java サンプルをローカル開発環境から使用するには、gcloud CLI をインストールして初期化し、自身のユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定してください。
- Google Cloud CLI をインストールします。
-
gcloud CLI を初期化するには:
gcloud init
-
Google アカウントのローカル認証情報を作成します。
gcloud auth application-default login
詳細については、Google Cloud の認証に関するドキュメントのローカル開発環境の認証の設定をご覧ください。
Python
このページの Python サンプルをローカル開発環境から使用するには、gcloud CLI をインストールして初期化し、自身のユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定してください。
- Google Cloud CLI をインストールします。
-
gcloud CLI を初期化するには:
gcloud init
-
Google アカウントのローカル認証情報を作成します。
gcloud auth application-default login
詳細については、Google Cloud の認証に関するドキュメントのローカル開発環境の認証の設定をご覧ください。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
必要なロール
付与可能なロールを一覧表示するために必要な権限を取得するには、付与可能な権限を一覧表示するリソースに対するセキュリティ審査担当者(roles/iam.securityReviewer
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与の詳細については、アクセスの管理をご覧ください。
この事前定義ロールには、すべてのリソースタイプに対する getIamPolicy
権限が含まれています。付与可能なロールを一覧表示するには、付与可能なロールを一覧表示するリソースに対して getIamPolicy
権限が必要です。たとえば、プロジェクトに付与可能なロールを一覧表示するには、resourcemanager.projects.getIamPolicy
権限が必要です。
カスタムロールや他の事前定義ロールを使用して、この権限を取得することもできます。
付与できるロールについて
該当するリソースタイプに関する権限がロールに含まれている場合は、そのリソースまたはそのリソースの上位に関するロールを付与できます。たとえば、storage.admin
ロールでは storage.buckets.get
API と storage.objects.get
API に対する権限が付与されるため、このロールはストレージ バケットとストレージ オブジェクトのリソースタイプに関しても付与できます。
ロールは、そのロールに含まれる権限の定義対象となるリソースタイプの「上位」にも付与できます。つまり、下位レベルのリソースに対するロールは、Google Cloud のリソース階層でより上位のリソースに関しても付与できます。たとえば、storage.admin
ロールはストレージ バケットに対してだけでなく、プロジェクト レベルまたは組織レベルでも付与できます。
ロールによって付与される権限は、指定したレベルとそれよりも下位のリソースにのみ影響します。上位レベルのリソースやピアリソースには影響しません。また、リソースにロールを付与する場合は、ロールの名前、説明、ロールに含まれるその他の権限にかかわらず、対象のリソースに該当する権限だけが付与されます。たとえば、ロール resourcemanager.organizationAdmin
(権限 resourcemanager.projects.list
を付与する)をプロジェクト レベルでユーザーに割り当てた場合、そのプロジェクトに対応する権限だけが付与されます。組織内のすべてのプロジェクトの一覧表示または管理を行うことはできません。同様に、特定の Compute Engine インスタンスに関する compute.admin
ロールを割り当てた場合は、そのインスタンスに対応する権限だけが付与され、プロジェクト内の他のインスタンスに対する権限は付与されません。
付与可能なロールの一覧表示
付与可能なロールを一覧表示するには、Google Cloud コンソール、Google Cloud CLI、IAM API、または IAM クライアント ライブラリを使用します。
Google Cloud コンソールには、表示しているリソースに付与できるすべてのロールが常に表示されます。Google Cloud CLI、IAM API、クライアント ライブラリには、有効な API に付与できるロールのみが表示されます。
コンソール
プロジェクト、フォルダ、または組織に付与できるロールを表示するには、次の操作を行います。
Google Cloud コンソールの [IAM] ページに移動します。
ページの上部にある [プロジェクトを選択] をクリックします。
付与可能なロールを表示するプロジェクト、フォルダ、または組織を選択します。
[
アクセスを許可] をクリックします。[ロールを選択] をクリックします。このメニューには、このリソースに関して付与可能なすべてのロール(カスタムロールを含む)が表示されます。
他のリソースタイプの付与可能なロールを表示するには、次の操作を行います。
Google Cloud コンソールで、付与可能なロールを表示するリソースの一覧が表示されるページに移動します。
たとえば、Compute Engine インスタンスへのアクセスを管理するには、[VM インスタンス] ページに移動します。
付与可能なロールを表示するリソースの横にあるチェックボックスをオンにします。
情報パネルが表示されていることを確認します。表示されていない場合は、[情報パネルを表示] をクリックします。
[
プリンシパルを追加] をクリックします。[ロールを選択] をクリックします。このメニューには、このリソースに関して付与可能なすべてのロール(カスタムロールを含む)が表示されます。
gcloud
gcloud iam list-grantable-roles
コマンドを使用すると、特定のリソースに適用可能なロールのリストが返されます。
gcloud iam list-grantable-roles full-resource-name
目的のリソースに応じて、多数のロールが返される可能性があります。結果数を制限するには、フィルタ式を指定できます。
出力は、以下のようになります。
description: Full control of all Compute Engine resources.
name: roles/compute.admin
title: Compute Admin
---
description: Full control of Compute Engine instance resources.
name: roles/compute.instanceAdmin
title: Compute Instance Admin
# Additional results here...
C++
IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM C++ API のリファレンス ドキュメントをご覧ください。
IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。
C#
IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM C# API のリファレンス ドキュメントをご覧ください。
IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。
Go
IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM Go API のリファレンス ドキュメントをご覧ください。
IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。
Java
IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM Java API のリファレンス ドキュメントをご覧ください。
IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。
Python
IAM のクライアント ライブラリをインストールして使用する方法については、IAM クライアント ライブラリをご覧ください。詳細については、IAM Python API のリファレンス ドキュメントをご覧ください。
IAM で認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、始める前にをご覧ください。
REST
roles.queryGrantableRoles
メソッドは、あるリソースに対して付与可能なすべてのロールのリストを返します。
リクエストのデータを使用する前に、次のように置き換えます。
FULL_RESOURCE_NAME
: サービス名とリソースへのパスで構成される URI。例については、完全なリソース名をご覧ください。
HTTP メソッドと URL:
POST https://iam.googleapis.com/v1/roles:queryGrantableRoles
リクエストの本文(JSON):
{ "fullResourceName": "FULL_RESOURCE_NAME" }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "roles": [ { "name": "roles/compute.admin", "title": "Compute Admin", "description": "Full control of all Compute Engine resources." }, { "name": "roles/compute.instanceAdmin", "title": "Compute Instance Admin (beta)", "description": "Full control of Compute Engine instance resources." } ] }
上の例では、完全リソース名は DNS と互換性のある API サービス名とリソースパスで構成される、スキームのない URI です。
たとえば、プロジェクトに関して付与できるすべてのロールを返すには、次のように入力します。
//cloudresourcemanager.googleapis.com/projects/project-id
下位レベルのリソースについては、さらに詳細な完全修飾名を指定することになります。たとえば、Compute Engine インスタンスに関して付与できるすべてのロールを返すには、次のように入力します。
//compute.googleapis.com/projects/project-id/zones/zone-name/instances/instance-id
次のステップ
- 利用可能な IAM の役割を確認する。
- 最も適切な事前定義ロールを選択する方法を確認する。
- プリンシパルのアクセス権の付与、変更、取り消しを行う方法を確認する。
- リソースタイプのリソース名の例を確認する。