リソースに関して付与可能な役割の表示

リソースのユーザーに IAM の役割を付与する前に、特定のリソースに関して付与できる役割の種類について確認することをおすすめします。

付与できる役割について

該当するリソースタイプに関する権限が役割に含まれている場合は、そのリソースまたはそのリソースの上位に関する役割を付与できます。たとえば、役割 storage.admin では storage.buckets.get API と storage.objects.get API に対する権限が付与されるため、この役割はストレージ バケットとストレージ オブジェクトのリソースタイプに関しても付与できます。

役割は、その役割に含まれる権限の定義対象となるリソースタイプの「上位」にも付与できます。つまり、下位レベルのリソースに対する役割は、GCP のリソース階層でより上位のリソースに関しても付与できます。たとえば、役割 storage.admin はストレージ バケットに対してだけでなく、プロジェクト レベルまたは組織レベルでも付与できます。

役割によって付与される権限は、指定したレベルとそれよりも下位のリソースにのみ影響します。上位レベルのリソースやピアリソースには影響しません。また、リソースに役割を付与する場合は、役割の名前、説明、役割に含まれるその他の権限にかかわらず、対象のリソースに該当する権限だけが付与されます。たとえば、役割 resourcemanager.organizationAdmin(権限 resourcemanager.projects.list を付与する)をプロジェクト レベルでユーザーに割り当てた場合、そのプロジェクトに対応する権限だけが付与されます。組織内のすべてのプロジェクトを一覧表示したり管理したりすることはできません。同様に、特定の Compute Engine インスタンスに関する役割 compute.admin を割り当てた場合は、そのインスタンスに対応する権限だけが付与され、プロジェクト内の他のインスタンスに対する権限は付与されません。

付与できる役割の一覧表示

gcloud

特定のリソースに適用できるすべての役割のリストを返すには、gcloud iam list-grantable-roles コマンドを使用します。

gcloud iam list-grantable-roles RESOURCE

RESOURCE の部分は、目的のリソースの完全修飾名に置き換えます。たとえば、プロジェクトに関して付与できるすべての役割を返すには、次のように入力します。

//cloudresourcemanager.googleapis.com/projects/PROJECT-ID

下位レベルのリソースについては、さらに詳細な完全修飾名を指定することになります。たとえば、Compute Engine インスタンスに関して付与できるすべての役割を返すには、次のように入力します。

//compute.googleapis.com/projects/PROJECT-ID/zones/ZONE-NAME/instances/INSTANCE-ID

目的のリソースに応じて、大量の役割が返される可能性があります。結果数を制限するには、フィルタ式を指定できます。

出力は、以下のようになります。

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...

Console

  1. GCP Console で [IAM] ページを開きます。

    [IAM] ページを開く

  2. ページの上部にある [プロジェクトを選択] プルダウンをクリックします。
  3. 役割を表示するプロジェクトまたは組織を選択します。
  4. [追加] をクリックします。
  5. [メンバー] にメンバーのメールアドレスを入力します。

[役割] プルダウンには、そのリソースのメンバーに付与できるすべての役割(カスタムの役割を含む)が表示されます。

API

QueryGrantableRoles は、あるリソースに関して付与できるすべての役割のリストを返します。

リクエスト URL

POST https://iam.googleapis.com/v1/roles:queryGrantableRoles

リクエスト本文

{
    "fullResourceName": RESOURCE
}

RESOURCE の部分は、目的のリソースの完全修飾名に置き換えます。たとえば、プロジェクトに関して付与できるすべての役割を返すには、次のように入力します。

//cloudresourcemanager.googleapis.com/projects/PROJECT-ID

下位レベルのリソースについては、さらに詳細な完全修飾名を指定することになります。たとえば、Compute Engine インスタンスに関して付与できるすべての役割を返すには、次のように入力します。

//compute.googleapis.com/projects/PROJECT-ID/zones/ZONE-NAME/instances/INSTANCE-ID

出力例

{
    "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."
        }
        // Additional results here...
    ]
}

次のステップ

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

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

Cloud Identity and Access Management のドキュメント