許可ポリシーを分析する

このページでは、Policy Analyzer を使用して許可ポリシーで、どのプリンシパル(ユーザー、サービス アカウント、グループ、ドメイン)がどの Google Cloud リソースに対してどのようなアクセス権を持つかを調べる方法について説明します。

このページの例は、Policy Analysis クエリを実行して、結果を直ちに表示する方法を示しています。結果をさらに分析するためにエクスポートする場合は、AnalyzeIamPolicyLongrunning を使用して、BigQuery または Cloud Storage にクエリ結果を書き込むことができます。

始める前に

必要なロールと権限

許可ポリシーを分析するには、次のロールと権限が必要です。

必要な IAM のロール

許可ポリシーの分析に必要な権限を取得するには、クエリの対象となるプロジェクト、フォルダ、または組織に対する次の IAM ロールを付与するよう管理者に依頼してください。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。

これらの事前定義ロールには、許可ポリシーの分析に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

許可ポリシーを分析するには、次の権限が必要です。

  • cloudasset.assets.analyzeIamPolicy
  • cloudasset.assets.searchAllResources
  • cloudasset.assets.searchAllIamPolicies
  • IAM のカスタムロールでポリシーを分析するには: iam.roles.get
  • Google Cloud CLI を使用してポリシーを分析するには: serviceusage.services.use

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

必要な Google Workspace の権限

プリンシパルが Google Workspace グループのメンバーになった結果、特定のロールまたは権限を持つかどうかを確認するために、クエリ結果でグループを展開する場合は、groups.read Google Workspace の権限が必要です。 この権限は、グループ読み取り管理者のロールだけでなく、グループ管理者や特権管理者のロールなどのより強力なロールに含まれています。これらのロールを付与する方法については、特定の管理者ロールを割り当てるをご覧ください。

リソースにアクセスできるプリンシパルを決定する

Policy Analyzer を使用して、どのプリンシパルが、プロジェクト、フォルダ、組織内の固有のリソースに対する特定のロールまたは権限を有しているか確認できます。この情報を取得するには、アクセスを分析したいリソースおよび確認する 1 つ以上のロールまたは権限を含むクエリを作成します。

Console

  1. Google Cloud コンソールで、[Policy Analyzer] ページに移動します。

    [Policy Analyzer] ページに移動

  2. [ポリシーの分析] セクションで、[カスタムクエリ] と表示されたペインを見つけて [カスタムクエリを作成] をクリックします。

  3. [クエリスコープを選択] フィールドで、クエリを調査するプロジェクト、フォルダ、組織を選択します。Policy Analyzer は、プロジェクト、フォルダ、組織へのアクセスと、そのプロジェクト、フォルダ、組織内のリソースを分析します。

  4. 確認するリソースと、確認するロールまたは権限を選択します。

    1. [パラメータ 1] フィールドで、プルダウン メニューから [リソース] を選択します。
    2. [リソース] フィールドに、アクセスを分析するリソースの完全なリソース名を入力します。完全なリソース名がわからない場合は、リソースの表示名の入力を開始し、表示されるリソースのリストから該当するリソースを選択します。
    3. [セレクタを追加] をクリックします。
    4. [パラメータ 2] フィールドで、[ロール] か [権限] を選択します。
    5. [ロールを選択] フィールドか [権限を選択] フィールドで、確認するロールまたは権限を選択します。
    6. 省略可: 追加のロールと権限を確認するには、確認するすべてのロールと権限が表示されるまで、[ロール] と [権限] セレクタの追加を継続します。
  5. 省略可: [続行] をクリックして、このクエリで有効にする詳細オプションを選択します。

  6. [カスタムクエリ] ペインで、[分析] > [クエリを実行] をクリックします。レポートページには、入力したクエリ パラメータと、指定されたリソースに対する指定されたロールまたは権限を有するすべてのプリンシパルの結果テーブルが表示されます。

    Google Cloud コンソールのポリシー分析クエリは、最大 1 分間実行されます。1 分後、Google Cloud コンソールでクエリが停止し、使用可能なすべての結果が表示されます。その時間内にクエリが完了しなかった場合は、結果が不完全であることを示すバナーが Google Cloud コンソールに表示されます。これらのクエリの全ての結果を取得するには、結果を BigQuery にエクスポートします。

gcloud

後述のコマンドデータを使用する前に、次のように置き換えます。

  • RESOURCE_TYPE: 検索の対象範囲に設定するリソースのタイプ。このリソースとその子孫に添付された IAM 許可ポリシーのみが分析されます。値 projectfolder、または organization を使用します。
  • RESOURCE_ID: 検索の対象範囲の Google Cloud プロジェクト、フォルダ、または組織の ID。このリソースとその子孫に添付された IAM 許可ポリシーのみが分析されます。プロジェクト ID は英数字からなる文字列です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。
  • FULL_RESOURCE_NAME: アクセスを分析する対象リソースの完全なリソース名。リソース名の形式の一覧については、リソース名の形式をご覧ください。
  • PERMISSIONS: 確認する権限のカンマ区切りのリスト(例: compute.instances.get,compute.instances.start)。複数の権限を一覧表示すると、Policy Analyzer は一覧表示された中から任意の権限を確認します。

gcloud asset analyze-iam-policy コマンドを実行します。

Linux、macOS、Cloud Shell

gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID \
    --full-resource-name=FULL_RESOURCE_NAME \
    --permissions='PERMISSIONS'

Windows(PowerShell)

gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID `
    --full-resource-name=FULL_RESOURCE_NAME `
    --permissions='PERMISSIONS'

Windows(cmd.exe)

gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID ^
    --full-resource-name=FULL_RESOURCE_NAME ^
    --permissions='PERMISSIONS'

分析結果を含む YAML レスポンスが返されます。各分析結果には、クエリに関連する一連のアクセス、ID、リソースと、関連する IAM ロール バインディングが列挙されます。ロール バインディングが条件付きの場合、分析結果には条件評価の結果も含まれます。条件を評価できなかった場合、結果は CONDITIONAL になります。

指定したリソースに対する指定した権限のいずれかを付与されているプリンシパルは、レスポンスの identities フィールドにリストされます。次の例は、identities フィールドがハイライト表示された単一の分析結果を示しています。

...
---
ACLs:
- accesses:
  - permission: compute.instances.get
  - permission: compute.instances.start
  identities:
  - name: user:my-user@example.com
  resources:
  - fullResourceName: //cloudresourcemanager.googleapis.com/projects/my-project
policy:
  attachedResource: //cloudresourcemanager.googleapis.com/projects/my-project
  binding:
    members:
    - user: my-user@example.com
    role: roles/compute.admin
---
...

クエリが完了する前にリクエストがタイムアウトすると、DEADLINE_EXCEEDED エラーが発生します。これらのクエリの全ての結果を取得するには、長時間実行バージョンの analyze-iam-policy を使用して結果を BigQuery または Cloud Storage に書き込みます。手順については、ポリシー分析を BigQuery に書き込むまたはポリシー分析を Cloud Storage に書き込むをご覧ください。

REST

リソースに対して特定の権限を持つプリンシパルを特定するには、Cloud Asset Inventory API の analyzeIamPolicy メソッドを使用します。

リクエストのデータを使用する前に、次のように置き換えます。

  • RESOURCE_TYPE: 検索の対象範囲に設定するリソースのタイプ。このリソースとその子孫に添付された IAM 許可ポリシーのみが分析されます。値 projectsfolders、または organizations を使用します。
  • RESOURCE_ID: 検索の対象範囲の Google Cloud プロジェクト、フォルダ、または組織の ID。このリソースとその子孫に添付された IAM 許可ポリシーのみが分析されます。プロジェクト ID は英数字からなる文字列です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。
  • FULL_RESOURCE_NAME: アクセスを分析する対象リソースの完全なリソース名。リソース名の形式の一覧については、リソース名の形式をご覧ください。
  • PERMISSION_1PERMISSION_2、... PERMISSION_N: 確認する権限(例: compute.instances.get)。複数の権限を一覧表示すると、Policy Analyzer は一覧表示された中から任意の権限を確認します。

HTTP メソッドと URL:

POST https://cloudasset.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID:analyzeIamPolicy

リクエストの本文(JSON):

{
  "analysisQuery": {
    "resourceSelector": {
      "fullResourceName": "FULL_RESOURCE_NAME"
    },
    "accessSelector": {
      "permissions": [
        "PERMISSION_1",
        "PERMISSION_2",
        "PERMISSION_N"
      ]
    }
  }
}

リクエストを送信するには、次のいずれかのオプションを展開します。

分析結果を含む JSON レスポンスが返されます。各分析結果では、関連する IAM ロール バインディングについて記述され、対象のバインディング内のリソース、アクセス、プリンシパルが一覧表示されています。ロール バインディングが条件付きの場合、分析結果には条件評価の結果も含まれます。条件を評価できなかった場合、結果は CONDITIONAL としてリストされます。

指定したリソースに対する指定した権限のいずれかを付与されているプリンシパルは、レスポンスの identities フィールドにリストされます。次の例は、identities フィールドがハイライト表示された単一の分析結果を示しています。

...
{
  "attachedResourceFullName": "//cloudresourcemanager.googleapis.com/projects/my-project",
  "iamBinding": {
    "role": "roles/compute.admin",
    "members": [
      "user:my-user@example.com"
    ]
  },
  "accessControlLists": [
    {
      "resources": [
        {
          "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project"
        }
      ],
      "accesses": [
        {
          "permission": "compute.instances.get"
        },
        {
          "permission": "compute.instances.start"
        }
      ]
    }
  ],
  "identityList": {
    "identities": [
      {
        "name": "user:my-user@example.com"
      }
    ]
  },
  "fullyExplored": true
},
...

クエリが完了する前にリクエストがタイムアウトすると、DEADLINE_EXCEEDED エラーが発生します。これらのクエリの全ての結果を取得するには、長時間実行バージョンの analyzeIamPolicy を使用して結果を BigQuery または Cloud Storage に書き込みます。手順については、ポリシー分析を BigQuery に書き込むまたはポリシー分析を Cloud Storage に書き込むをご覧ください。

特定のロールまたは権限を持つプリンシパルを決定する

Policy Analyzer を使用して、組織内のどの Google Cloud リソースに対する特定のロールまたは権限を持つプリンシパルを確認できます。この情報を取得するには、確認する 1 つ以上のロールまたは権限を含むものの、リソースを指定していないクエリを作成します。

Console

  1. Google Cloud コンソールで、[Policy Analyzer] ページに移動します。

    [Policy Analyzer] ページに移動

  2. [ポリシーの分析] セクションで、[カスタムクエリ] と表示されたペインを見つけて [カスタムクエリを作成] をクリックします。

  3. [クエリスコープを選択] フィールドで、クエリを調査するプロジェクト、フォルダ、組織を選択します。Policy Analyzer は、プロジェクト、フォルダ、組織へのアクセスと、そのプロジェクト、フォルダ、組織内のリソースを分析します。

  4. [パラメータ 1] フィールドで、[ロール] か [権限] を選択します。

  5. [ロールを選択] フィールドか [権限を選択] フィールドで、確認するロールか権限を選択します。

  6. 省略可: 追加のロールと権限を確認するには、次の操作を行います。

    1. [セレクタを追加] をクリックします。
    2. [パラメータ 2] フィールドで、[ロール] か [権限] を選択します。
    3. [ロールを選択] フィールドか [権限を選択] フィールドで、確認するロールまたは権限を選択します。
    4. 確認するロールと権限がすべて表示されるまで、[ロール] と [権限] セレクタの追加を継続します。
  7. 省略可: [続行] をクリックして、このクエリで有効にする詳細オプションを選択します。

  8. [カスタムクエリ] ペインで、[分析] > [クエリを実行] をクリックします。レポートページには、入力したクエリ パラメータと、対象範囲内のリソースに対して指定されたロールまたは権限を有するすべてのプリンシパルの結果テーブルが表示されます。

    Google Cloud コンソールのポリシー分析クエリは、最大 1 分間実行されます。1 分後、Google Cloud コンソールでクエリが停止し、使用可能なすべての結果が表示されます。その時間内にクエリが完了しなかった場合は、結果が不完全であることを示すバナーが Google Cloud コンソールに表示されます。これらのクエリの全ての結果を取得するには、結果を BigQuery にエクスポートします。

gcloud

後述のコマンドデータを使用する前に、次のように置き換えます。

  • RESOURCE_TYPE: 検索の対象範囲に設定するリソースのタイプ。このリソースとその子孫に添付された IAM 許可ポリシーのみが分析されます。値 projectfolder、または organization を使用します。
  • RESOURCE_ID: 検索の対象範囲の Google Cloud プロジェクト、フォルダ、または組織の ID。このリソースとその子孫に添付された IAM 許可ポリシーのみが分析されます。プロジェクト ID は英数字からなる文字列です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。
  • ROLES: 確認するロールのカンマ区切りのリスト(例: roles/compute.admin,roles/compute.imageUser)。複数のロールを一覧表示すると、Policy Analyzer は一覧表示された中から任意のロールを確認します。
  • PERMISSIONS: 確認する権限のカンマ区切りのリスト(例: compute.instances.get,compute.instances.start)。複数の権限を一覧表示すると、Policy Analyzer は一覧表示された中から任意の権限を確認します。

gcloud asset analyze-iam-policy コマンドを実行します。

Linux、macOS、Cloud Shell

gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID \
    --roles='ROLES' \
    --permissions='PERMISSIONS'

Windows(PowerShell)

gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID `
    --roles='ROLES' `
    --permissions='PERMISSIONS'

Windows(cmd.exe)

gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID ^
    --roles='ROLES' ^
    --permissions='PERMISSIONS'

分析結果を含む JSON レスポンスが返されます。各分析結果では、関連する IAM ロール バインディングについて記述され、対象のバインディング内のリソース、アクセス、プリンシパルが一覧表示されています。ロール バインディングが条件付きの場合、分析結果には条件評価の結果も含まれます。条件を評価できなかった場合、結果は CONDITIONAL としてリストされます。

指定したロールまたは権限のいずれかを付与されているプリンシパルは、レスポンスの identities フィールドにリストされます。次の例は、identities フィールドがハイライト表示された単一の分析結果を示しています。

...
---
ACLs:
- accesses:
  - permission: compute.instances.get
  - permission: compute.instances.start
  - role: roles/compute.admin
  identities:
  - name: user:my-user@example.com
  resources:
  - fullResourceName: //cloudresourcemanager.googleapis.com/projects/my-project
policy:
  attachedResource: //cloudresourcemanager.googleapis.com/projects/my-project
  binding:
    members:
    - user: my-user@example.com
    role: roles/compute.admin
---
...

クエリが完了する前にリクエストがタイムアウトすると、DEADLINE_EXCEEDED エラーが発生します。これらのクエリの全ての結果を取得するには、長時間実行バージョンの analyze-iam-policy を使用して結果を BigQuery または Cloud Storage に書き込みます。手順については、ポリシー分析を BigQuery に書き込むまたはポリシー分析を Cloud Storage に書き込むをご覧ください。

REST

特定のロールまたは権限を持つプリンシパルを確認するには、Cloud Asset Inventory API の analyzeIamPolicy メソッドを使用します。

リクエストのデータを使用する前に、次のように置き換えます。

  • RESOURCE_TYPE: 検索の対象範囲に設定するリソースのタイプ。このリソースとその子孫に添付された IAM 許可ポリシーのみが分析されます。値 projectsfolders、または organizations を使用します。
  • RESOURCE_ID: 検索の対象範囲の Google Cloud プロジェクト、フォルダ、または組織の ID。このリソースとその子孫に添付された IAM 許可ポリシーのみが分析されます。プロジェクト ID は英数字からなる文字列です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。
  • ROLE_1ROLE_2、... ROLE_N: 確認するロール(例: roles/compute.admin)。複数のロールを一覧表示すると、Policy Analyzer は一覧表示された中から任意のロールを確認します。
  • PERMISSION_1PERMISSION_2、... PERMISSION_N: 確認する権限(例: compute.instances.get)。複数の権限を一覧表示すると、Policy Analyzer は一覧表示された中から任意の権限を確認します。

HTTP メソッドと URL:

POST https://cloudasset.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID:analyzeIamPolicy

リクエストの本文(JSON):

{
  "analysisQuery": {
    "accessSelector": {
      "roles": [
        "ROLE_1",
        "ROLE_2",
        "ROLE_N"
      ],
      "permissions": [
        "PERMISSION_1",
        "PERMISSION_2",
        "PERMISSION_N"
      ]
    }
  }
}

リクエストを送信するには、次のいずれかのオプションを展開します。

分析結果を含む JSON レスポンスが返されます。各分析結果では、関連する IAM ロール バインディングについて記述され、対象のバインディング内のリソース、アクセス、プリンシパルが一覧表示されています。ロール バインディングが条件付きの場合、分析結果には条件評価の結果も含まれます。条件を評価できなかった場合、結果は CONDITIONAL としてリストされます。

指定したロールまたは権限のいずれかを付与されているプリンシパルは、レスポンスの identities フィールドにリストされます。次の例は、identities フィールドがハイライト表示された単一の分析結果を示しています。

...
{
  "attachedResourceFullName": "//cloudresourcemanager.googleapis.com/projects/my-project",
  "iamBinding": {
    "role": "roles/compute.admin",
    "members": [
      "user:my-user@example.com"
    ]
  },
  "accessControlLists": [
    {
      "resources": [
        {
          "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project"
        }
      ],
      "accesses": [
        {
          "permission": "compute.instances.get"
        },
        {
          "role": "roles/compute.admin"
        }
      ]
    }
  ],
  "identityList": {
    "identities": [
      {
        "name": "user:my-user@example.com"
      }
    ]
  },
  "fullyExplored": true
},
...

クエリが完了する前にリクエストがタイムアウトすると、DEADLINE_EXCEEDED エラーが発生します。これらのクエリの全ての結果を取得するには、長時間実行バージョンの analyzeIamPolicy を使用して結果を BigQuery または Cloud Storage に書き込みます。手順については、ポリシー分析を BigQuery に書き込むまたはポリシー分析を Cloud Storage に書き込むをご覧ください。

プリンシパルがリソースに対して持つアクセス権を決定する

Policy Analyzer を使用して、プリンシパルが組織内のリソースに対して持つロールまたは権限を確認できます。この情報を取得するには、分析するアクセスがあるプリンシパルとアクセスを分析するリソースを含むクエリを作成します。

Console

  1. Google Cloud コンソールで、[Policy Analyzer] ページに移動します。

    [Policy Analyzer] ページに移動

  2. [ポリシーの分析] セクションで、[カスタムクエリ] と表示されたペインを見つけて [カスタムクエリを作成] をクリックします。

  3. [クエリスコープを選択] フィールドで、クエリを調査するプロジェクト、フォルダ、組織を選択します。Policy Analyzer は、プロジェクト、フォルダ、組織へのアクセスと、そのプロジェクト、フォルダ、組織内のリソースを分析します。

  4. 確認するリソースとプリンシパルを選択します。

    1. [パラメータ 1] フィールドで、プルダウン メニューから [リソース] を選択します。
    2. [リソース] フィールドに、アクセスを分析するリソースの完全なリソース名を入力します。完全なリソース名がわからない場合は、リソースの表示名の入力を開始し、表示されるリソースのリストから該当するリソースを選択します。
    3. [セレクタを追加] をクリックします。
    4. [パラメータ 2] フィールドで、プルダウン メニューから [プリンシパル] を選択します。
    5. [プリンシパル] フィールドに、ユーザー名か、サービス アカウント名か、グループ名の入力を開始します。次に、表示されたプリンシパルのリストから、分析するアクセスがあるユーザー、サービス アカウント、またはグループを選択します。
  5. 省略可: [続行] をクリックして、このクエリで有効にする詳細オプションを選択します。

  6. [カスタムクエリ] ペインで、[分析] > [クエリを実行] をクリックします。レポートページには、入力したクエリ パラメータと、指定したプリンシパルが指定したリソースに対して有するすべてのロールの結果テーブルが表示されます。

    Google Cloud コンソールのポリシー分析クエリは、最大 1 分間実行されます。1 分後、Google Cloud コンソールでクエリが停止し、使用可能なすべての結果が表示されます。その時間内にクエリが完了しなかった場合は、結果が不完全であることを示すバナーが Google Cloud コンソールに表示されます。これらのクエリの全ての結果を取得するには、結果を BigQuery にエクスポートします。

gcloud

後述のコマンドデータを使用する前に、次のように置き換えます。

  • RESOURCE_TYPE: 検索の対象範囲に設定するリソースのタイプ。このリソースとその子孫に添付された IAM 許可ポリシーのみが分析されます。値 projectfolder、または organization を使用します。
  • RESOURCE_ID: 検索の対象範囲の Google Cloud プロジェクト、フォルダ、または組織の ID。このリソースとその子孫に添付された IAM 許可ポリシーのみが分析されます。プロジェクト ID は英数字からなる文字列です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。
  • FULL_RESOURCE_NAME: アクセスを分析する対象リソースの完全なリソース名。リソース名の形式の一覧については、リソース名の形式をご覧ください。
  • PRINCIPAL: アクセスを分析する PRINCIPAL_TYPE:ID 形式のプリンシパル(例: user:my-user@example.com)。プリンシパル タイプの全一覧については、プリンシパル識別子をご覧ください。

gcloud asset analyze-iam-policy コマンドを実行します。

Linux、macOS、Cloud Shell

gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID \
    --full-resource-name=FULL_RESOURCE_NAME \
    --identity=PRINCIPAL

Windows(PowerShell)

gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID `
    --full-resource-name=FULL_RESOURCE_NAME `
    --identity=PRINCIPAL

Windows(cmd.exe)

gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID ^
    --full-resource-name=FULL_RESOURCE_NAME ^
    --identity=PRINCIPAL

分析結果を含む YAML レスポンスが返されます。各分析結果には、クエリに関連する一連のアクセス、ID、リソースと、関連する IAM ロール バインディングが列挙されます。ロール バインディングが条件付きの場合、分析結果には条件評価の結果も含まれます。条件を評価できなかった場合、結果は CONDITIONAL になります。

レスポンスの accesses フィールドに、指定したリソースに対するプリンシパルのロールがリストされます。次の例は、accesses フィールドがハイライト表示された単一の分析結果を示しています。

...
---
ACLs:
- accesses:
  - roles/iam.serviceAccountUser
  identities:
  - name: user:my-user@example.com
  resources:
  - fullResourceName: //cloudresourcemanager.googleapis.com/projects/my-project
policy:
  attachedResource: //cloudresourcemanager.googleapis.com/projects/my-project
  binding:
    members:
    - user: my-user@example.com
    role: roles/iam.serviceAccountUser
---
...

クエリが完了する前にリクエストがタイムアウトすると、DEADLINE_EXCEEDED エラーが発生します。これらのクエリの全ての結果を取得するには、長時間実行バージョンの analyze-iam-policy を使用して結果を BigQuery または Cloud Storage に書き込みます。手順については、ポリシー分析を BigQuery に書き込むまたはポリシー分析を Cloud Storage に書き込むをご覧ください。

REST

プリンシパルがリソースに対して持つアクセス権を決定するには、Cloud Asset Inventory API の analyzeIamPolicy メソッドを使用します。

リクエストのデータを使用する前に、次のように置き換えます。

  • RESOURCE_TYPE: 検索の対象範囲に設定するリソースのタイプ。このリソースとその子孫に添付された IAM 許可ポリシーのみが分析されます。値 projectsfolders、または organizations を使用します。
  • RESOURCE_ID: 検索の対象範囲の Google Cloud プロジェクト、フォルダ、または組織の ID。このリソースとその子孫に添付された IAM 許可ポリシーのみが分析されます。プロジェクト ID は英数字からなる文字列です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。
  • FULL_RESOURCE_NAME: アクセスを分析する対象リソースの完全なリソース名。リソース名の形式の一覧については、リソース名の形式をご覧ください。
  • PRINCIPAL: アクセスを分析する PRINCIPAL_TYPE:ID 形式のプリンシパル(例: user:my-user@example.com)。プリンシパル タイプの全一覧については、プリンシパル識別子をご覧ください。

HTTP メソッドと URL:

POST https://cloudasset.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID:analyzeIamPolicy

リクエストの本文(JSON):

{
  "analysisQuery": {
    "resourceSelector": {
      "fullResourceName": "FULL_RESOURCE_NAME"
    },
    "identitySelector": {
      "identity": "PRINCIPAL"
    }
  }
}

リクエストを送信するには、次のいずれかのオプションを展開します。

分析結果を含む JSON レスポンスが返されます。各分析結果では、関連する IAM ロール バインディングについて記述され、対象のバインディング内のリソース、アクセス、プリンシパルが一覧表示されています。ロール バインディングが条件付きの場合、分析結果には条件評価の結果も含まれます。条件を評価できなかった場合、結果は CONDITIONAL としてリストされます。

レスポンスの accesses フィールドに、指定したリソースに対するプリンシパルのロールがリストされます。次の例は、accesses フィールドがハイライト表示された単一の分析結果を示しています。

...
{
  "attachedResourceFullName": "//cloudresourcemanager.googleapis.com/projects/my-project",
  "iamBinding": {
    "role": "roles/iam.serviceAccountUser",
    "members": [
      "user:my-user@example.com"
    ]
  },
  "accessControlLists": [
    {
      "resources": [
        {
          "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project"
        }
      ],
      "accesses": [
        {
          "roles": "iam.serviceAccountUser"
        }
      ]
    }
  ],
  "identityList": {
    "identities": [
      {
        "name": "user:my-user@example.com"
      }
    ]
  },
  "fullyExplored": true
},
...

クエリが完了する前にリクエストがタイムアウトすると、DEADLINE_EXCEEDED エラーが発生します。これらのクエリの全ての結果を取得するには、長時間実行バージョンの analyzeIamPolicy を使用して結果を BigQuery または Cloud Storage に書き込みます。手順については、ポリシー分析を BigQuery に書き込むまたはポリシー分析を Cloud Storage に書き込むをご覧ください。

プリンシパルがアクセスできるリソースを決定する

Policy Analyzer を使用して、プリンシパルが組織内のどのリソースに対し特定のロールまたは権限を持つかを確認できます。この情報を取得するには、分析するアクセスがあるプリンシパルと、確認する 1 つ以上の権限またはロールを含むクエリを作成します。

Console

  1. Google Cloud コンソールで、[Policy Analyzer] ページに移動します。

    [Policy Analyzer] ページに移動

  2. [ポリシーの分析] セクションで、[カスタムクエリ] と表示されたペインを見つけて [カスタムクエリを作成] をクリックします。

  3. [クエリスコープを選択] フィールドで、クエリを調査するプロジェクト、フォルダ、組織を選択します。Policy Analyzer は、プロジェクト、フォルダ、組織へのアクセスと、そのプロジェクト、フォルダ、組織内のリソースを分析します。

  4. 確認するプリンシパルと、確認するロールまたは権限を選択します。

    1. [パラメータ 1] フィールドで、プルダウン メニューから [プリンシパル] を選択します。
    2. [プリンシパル] フィールドに、ユーザー名か、サービス アカウント名か、グループ名の入力を開始します。次に、表示されたプリンシパルのリストから、分析するアクセスがあるユーザー、サービス アカウント、またはグループを選択します。
    3. [セレクタを追加] をクリックします。
    4. [パラメータ 2] フィールドで、[ロール] か [権限] を選択します。
    5. [ロールを選択] フィールドか [権限を選択] フィールドで、確認するロールまたは権限を選択します。
    6. 省略可: 追加のロールと権限を確認するには、確認するすべてのロールと権限が表示されるまで、[ロール] と [権限] セレクタの追加を継続します。
  5. 省略可: [続行] をクリックして、このクエリで有効にする詳細オプションを選択します。

  6. [カスタムクエリ] ペインで、[分析] > [クエリを実行] をクリックします。レポートページには、入力したクエリ パラメータと、指定されたプリンシパルが指定されたロールまたは権限を有するすべてのリソースの結果テーブルが表示されます。

    Google Cloud コンソールのポリシー分析クエリは、最大 1 分間実行されます。1 分後、Google Cloud コンソールでクエリが停止し、使用可能なすべての結果が表示されます。その時間内にクエリが完了しなかった場合は、結果が不完全であることを示すバナーが Google Cloud コンソールに表示されます。これらのクエリの全ての結果を取得するには、結果を BigQuery にエクスポートします。

gcloud

後述のコマンドデータを使用する前に、次のように置き換えます。

  • RESOURCE_TYPE: 検索の対象範囲に設定するリソースのタイプ。このリソースとその子孫に添付された IAM 許可ポリシーのみが分析されます。値 projectfolder、または organization を使用します。
  • RESOURCE_ID: 検索の対象範囲の Google Cloud プロジェクト、フォルダ、または組織の ID。このリソースとその子孫に添付された IAM 許可ポリシーのみが分析されます。プロジェクト ID は英数字からなる文字列です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。
  • PRINCIPAL: アクセスを分析する PRINCIPAL_TYPE:ID 形式のプリンシパル(例: user:my-user@example.com)。プリンシパル タイプの全一覧については、プリンシパル識別子をご覧ください。
  • PERMISSIONS: 確認する権限のカンマ区切りのリスト(例: compute.instances.get,compute.instances.start)。複数の権限を一覧表示すると、Policy Analyzer は一覧表示された中から任意の権限を確認します。

gcloud asset analyze-iam-policy コマンドを実行します。

Linux、macOS、Cloud Shell

gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID \
    --identity=PRINCIPAL \
    --permissions='PERMISSIONS'

Windows(PowerShell)

gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID `
    --identity=PRINCIPAL `
    --permissions='PERMISSIONS'

Windows(cmd.exe)

gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID ^
    --identity=PRINCIPAL ^
    --permissions='PERMISSIONS'

分析結果を含む YAML レスポンスが返されます。各分析結果には、クエリに関連する一連のアクセス、ID、リソースと、関連する IAM ロール バインディングが列挙されます。ロール バインディングが条件付きの場合、分析結果には条件評価の結果も含まれます。条件を評価できなかった場合、結果は CONDITIONAL になります。

指定したプリンシパルが指定した権限のいずれかを付与されている対象リソースは、レスポンスの resources フィールドにリストされます。次の例は、resources フィールドがハイライト表示された単一の分析結果を示しています。

...
---
ACLs:
- accesses:
  - permission: compute.instances.get
  - permission: compute.instances.start
  identities:
  - name: user:my-user@example.com
  resources:
  - fullResourceName: //compute.googleapis.com/projects/my-project/global/images/my-image
policy:
  attachedResource: //compute.googleapis.com/projects/my-project/global/images/my-image
  binding:
    members:
    - user: my-user@example.com
    role: roles/compute.admin
---
...

クエリが完了する前にリクエストがタイムアウトすると、DEADLINE_EXCEEDED エラーが発生します。これらのクエリの全ての結果を取得するには、長時間実行バージョンの analyze-iam-policy を使用して結果を BigQuery または Cloud Storage に書き込みます。手順については、ポリシー分析を BigQuery に書き込むまたはポリシー分析を Cloud Storage に書き込むをご覧ください。

REST

プリンシパルがアクセスできるリソースを特定するには、Cloud Asset Inventory API の analyzeIamPolicy メソッドを使用します。

リクエストのデータを使用する前に、次のように置き換えます。

  • RESOURCE_TYPE: 検索の対象範囲に設定するリソースのタイプ。このリソースとその子孫に添付された IAM 許可ポリシーのみが分析されます。値 projectsfolders、または organizations を使用します。
  • RESOURCE_ID: 検索の対象範囲の Google Cloud プロジェクト、フォルダ、または組織の ID。このリソースとその子孫に添付された IAM 許可ポリシーのみが分析されます。プロジェクト ID は英数字からなる文字列です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。
  • PRINCIPAL: アクセスを分析する PRINCIPAL_TYPE:ID 形式のプリンシパル(例: user:my-user@example.com)。プリンシパル タイプの全一覧については、プリンシパル識別子をご覧ください。
  • PERMISSION_1PERMISSION_2、... PERMISSION_N: 確認する権限(例: compute.instances.get)。複数の権限を一覧表示すると、Policy Analyzer は一覧表示された中から任意の権限を確認します。

HTTP メソッドと URL:

POST https://cloudasset.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID:analyzeIamPolicy

リクエストの本文(JSON):

{
  "analysisQuery": {
    "identitySelector": {
      "identity": "PRINCIPAL"
    },
    "accessSelector": {
      "permissions": [
        "PERMISSION_1",
        "PERMISSION_2",
        "PERMISSION_N"
      ]
    }
  }
}

リクエストを送信するには、次のいずれかのオプションを展開します。

分析結果を含む JSON レスポンスが返されます。各分析結果では、関連する IAM ロール バインディングについて記述され、対象のバインディング内のリソース、アクセス、プリンシパルが一覧表示されています。ロール バインディングが条件付きの場合、分析結果には条件評価の結果も含まれます。条件を評価できなかった場合、結果は CONDITIONAL としてリストされます。

指定したプリンシパルが指定した権限のいずれかを付与されている対象リソースは、レスポンスの resources フィールドにリストされます。次の例は、resources フィールドがハイライト表示された単一の分析結果を示しています。

...
{
  "attachedResourceFullName": "//compute.googleapis.com/projects/my-project/global/images/my-image",
  "iamBinding": {
    "role": "roles/compute.admin",
    "members": [
      "user:my-user@example.com"
    ]
  },
  "accessControlLists": [
    {
      "resources": [
        {
          "fullResourceName": "//compute.googleapis.com/projects/my-project/global/images/my-image"
        }
      ],
      "accesses": [
        {
          "permission": "compute.instances.get"
        },
        {
          "permission": "compute.instances.start"
        }
      ]
    }
  ],
  "identityList": {
    "identities": [
      {
        "name": "user:my-user@example.com"
      }
    ]
  },
  "fullyExplored": true
},
...

クエリが完了する前にリクエストがタイムアウトすると、DEADLINE_EXCEEDED エラーが発生します。これらのクエリの全ての結果を取得するには、長時間実行バージョンの analyzeIamPolicy を使用して結果を BigQuery または Cloud Storage に書き込みます。手順については、ポリシー分析を BigQuery に書き込むまたはポリシー分析を Cloud Storage に書き込むをご覧ください。

特定の時間におけるアクセス権を決定する

十分なコンテキストがある場合、Policy Analyzer は特定の時間にのみアクセス権を付与する IAM 条件付きロール バインディングを分析できます。これらの条件を日時条件と呼びます。 Policy Analyzer が日時条件を持つロール バインディングを正確に分析するには、リクエストでアクセス時間を定義する必要があります。

Policy Analyzer では、追加のユーザー入力なしでリソース条件を分析することもできます。Policy Analyzer と条件の仕組みの詳細については、条件付きアクセスをご覧ください。

gcloud

後述のコマンドデータを使用する前に、次のように置き換えます。

  • RESOURCE_TYPE: 検索の対象範囲に設定するリソースのタイプ。このリソースとその子孫に添付された IAM 許可ポリシーのみが分析されます。値 projectfolder、または organization を使用します。
  • RESOURCE_ID: 検索の対象範囲の Google Cloud プロジェクト、フォルダ、または組織の ID。このリソースとその子孫に添付された IAM 許可ポリシーのみが分析されます。プロジェクト ID は英数字からなる文字列です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。
  • PERMISSIONS: 省略可。確認する権限のカンマ区切りのリスト(例: compute.instances.get,compute.instances.start)。複数の権限を一覧表示すると、Policy Analyzer は一覧表示された中から任意の権限を確認します。
  • FULL_RESOURCE_NAME: 省略可。アクセスを分析する対象リソースの完全なリソース名。リソース名の形式の一覧については、リソース名の形式をご覧ください。
  • PERMISSIONS: 省略可。確認する権限のカンマ区切りのリスト(例: compute.instances.get,compute.instances.start)。複数の権限を一覧表示すると、Policy Analyzer は一覧表示された中から任意の権限を確認します。
  • ACCESS_TIME: 確認する時刻。この時刻は未来の時刻にする必要があります。RFC 3339 形式のタイムスタンプを使用します(例: 2099-02-01T00:00:00Z)。

gcloud asset analyze-iam-policy コマンドを実行します。

Linux、macOS、Cloud Shell

gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID \
    --identity=PRINCIPAL \
    --full-resource-name=FULL_RESOURCE_NAME \
    --permissions='PERMISSIONS' \
    --access-time=ACCESS_TIME

Windows(PowerShell)

gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID `
    --identity=PRINCIPAL `
    --full-resource-name=FULL_RESOURCE_NAME `
    --permissions='PERMISSIONS' `
    --access-time=ACCESS_TIME

Windows(cmd.exe)

gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID ^
    --identity=PRINCIPAL ^
    --full-resource-name=FULL_RESOURCE_NAME ^
    --permissions='PERMISSIONS' ^
    --access-time=ACCESS_TIME

分析結果を含む YAML レスポンスが返されます。各分析結果には、クエリに関連する一連のアクセス、ID、リソースと、関連する IAM ロール バインディングが列挙されます。ロール バインディングが条件付きの場合、分析結果には条件評価の結果も含まれます。条件を評価できなかった場合、結果は CONDITIONAL になります。

アクセス時間をリクエストに含めると、Policy Analyzer は日時の条件を評価できます。条件が false と評価された場合、対象のロールはレスポンスに含まれません。条件が true と評価された場合、条件の評価結果が TRUE としてリストされます。

...
---
ACLs:
- accesses:
  - permission: compute.instances.get
  - permission: compute.instances.start
  conditionEvaluationValue: 'TRUE'
  identities:
  - name: user:my-user@example.com
  resources:
  - fullResourceName: //cloudresourcemanager.googleapis.com/projects/my-project
policy:
  attachedResource: //cloudresourcemanager.googleapis.com/projects/my-project
  binding:
    condition:
      expression: request.time.getHours("America/Los_Angeles") >= 5
      title: No access before 5am PST
    members:
    - user: my-user@example.com
    role: roles/compute.admin
---
...

クエリが完了する前にリクエストがタイムアウトすると、DEADLINE_EXCEEDED エラーが発生します。これらのクエリの全ての結果を取得するには、長時間実行バージョンの analyze-iam-policy を使用して結果を BigQuery または Cloud Storage に書き込みます。手順については、ポリシー分析を BigQuery に書き込むまたはポリシー分析を Cloud Storage に書き込むをご覧ください。

REST

特定の時間にリソースに対して特定の権限を持つプリンシパルを特定するには、Cloud Asset Inventory API の analyzeIamPolicy メソッドを使用します。

リクエストのデータを使用する前に、次のように置き換えます。

  • RESOURCE_TYPE: 検索の対象範囲に設定するリソースのタイプ。このリソースとその子孫に添付された IAM 許可ポリシーのみが分析されます。値 projectsfolders、または organizations を使用します。
  • RESOURCE_ID: 検索の対象範囲の Google Cloud プロジェクト、フォルダ、または組織の ID。このリソースとその子孫に添付された IAM 許可ポリシーのみが分析されます。プロジェクト ID は英数字からなる文字列です(例: my-project)。フォルダ ID と組織 ID は数値です(例: 123456789012)。
  • PERMISSION_1PERMISSION_2PERMISSION_N: 省略可。確認する権限(例: compute.instances.get)。複数の権限を一覧表示すると、Policy Analyzer は一覧表示された中から任意の権限を確認します。
  • FULL_RESOURCE_NAME: 省略可。アクセスを分析する対象リソースの完全なリソース名。リソース名の形式の一覧については、リソース名の形式をご覧ください。
  • PERMISSION_1PERMISSION_2PERMISSION_N: 省略可。確認する権限(例: compute.instances.get)。複数の権限を一覧表示すると、Policy Analyzer は一覧表示された中から任意の権限を確認します。
  • ACCESS_TIME: 確認する時刻。この時刻は未来の時刻にする必要があります。RFC 3339 形式のタイムスタンプを使用します(例: 2099-02-01T00:00:00Z)。

HTTP メソッドと URL:

POST https://cloudasset.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID:analyzeIamPolicy

リクエストの本文(JSON):

{
  "analysisQuery": {
    "identitySelector": {
      "identity": "PRINCIPAL"
    },
    "resourceSelector": {
      "fullResourceName": "FULL_RESOURCE_NAME"
    },
    "accessSelector": {
      "permissions": [
        "PERMISSION_1",
        "PERMISSION_2",
        "PERMISSION_N"
      ]
    },
    "conditionContext": {
      "accessTime": "ACCESS_TIME"
    }
  }
}

リクエストを送信するには、次のいずれかのオプションを展開します。

分析結果を含む JSON レスポンスが返されます。各分析結果では、関連する IAM ロール バインディングについて記述され、対象のバインディング内のリソース、アクセス、プリンシパルが一覧表示されています。ロール バインディングが条件付きの場合、分析結果には条件評価の結果も含まれます。条件を評価できなかった場合、結果は CONDITIONAL としてリストされます。

アクセス時間をリクエストに含めると、Policy Analyzer は日時の条件を評価できます。条件が false と評価された場合、対象のロールはレスポンスに含まれません。条件が true と評価された場合、分析レスポンスの条件評価値は TRUE です。

...
{
  "attachedResourceFullName": "//cloudresourcemanager.googleapis.com/projects/my-project",
  "iamBinding": {
    "role": "roles/compute.admin",
    "members": [
      "user:my-user@example.com"
    ],
    "condition": {
      "expression": "request.time.getHours(\"America/Los_Angeles\") \u003e= 5",
      "title": "No access before 5am PST"
    }
  },
  "accessControlLists": [
    {
      "resources": [
        {
          "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project"
        }
      ],
      "accesses": [
        {
          "permission": "compute.instances.get"
        },
        {
          "permission": "compute.instances.start"
        }
      ],
      "conditionEvaluation": {
        "evaluationValue": "TRUE"
      }
    }
  ],
  "identityList": {
    "identities": [
      {
        "name": "user:my-user@example.com"
      }
    ]
  },
  "fullyExplored": true
},
...

クエリが完了する前にリクエストがタイムアウトすると、DEADLINE_EXCEEDED エラーが発生します。これらのクエリの全ての結果を取得するには、長時間実行バージョンの analyzeIamPolicy を使用して結果を BigQuery または Cloud Storage に書き込みます。手順については、ポリシー分析を BigQuery に書き込むまたはポリシー分析を Cloud Storage に書き込むをご覧ください。

オプションを有効にする

次のオプションを有効にすると、より詳細なクエリ結果を取得できます。

Console

オプション 説明
クエリに一致するリソース内のリソースを一覧表示します このオプションを有効にした場合、クエリ結果には、クエリ結果内の任意の親リソース(プロジェクト、フォルダ、組織)に対する最大 1,000 件の関連する子孫リソースが一覧表示されます。
グループ内の個々のユーザーの一覧を表示します

このオプションを有効にすると、クエリ結果のグループが個々のメンバーに展開されます。十分なグループ権限を付与されている場合は、ネストされたグループも展開されます。この展開の上限は、グループあたり 1,000 メンバーに制限されています。

このオプションは、クエリでプリンシパルを指定していない場合にのみ利用できます。

ロール内の権限の一覧を表示します

このオプションを有効にすると、クエリ結果には、ロール自体に加えて、各ロール内のすべての権限が一覧表示されます。

このオプションは、クエリで権限やロールを指定していない場合にのみ使用できます。

gcloud

このセクションでは、gcloud CLI を使用して許可ポリシーを分析するときに追加できるいくつかの一般的なフラグについて説明します。オプションの全一覧については、オプションのフラグをご覧ください。

フラグ 説明
--analyze-service-account-impersonation

このオプションを有効にすると、Policy Analyzer は追加の分析クエリを実行し、指定されたリソースへの指定されたアクセス権を付与されているサービス アカウントの権限を借用できるユーザーを特定します。Policy Analyzer では、クエリ結果に含まれるサービス アカウントごとに 1 つのクエリが実行されます。これらのクエリは、サービス アカウントに対する次のいずれかの権限を付与されているユーザーを分析します。

  • iam.serviceAccounts.actAs
  • iam.serviceAccounts.getAccessToken
  • iam.serviceAccounts.getOpenIdToken
  • iam.serviceAccounts.implicitDelegation
  • iam.serviceAccounts.signBlob
  • iam.serviceAccounts.signJwt

これは、多くのクエリが自動的に実行されるため、非常に高額な費用を要するオペレーションです。analyze-iam-policy を使用する代わりに、analyze-iam-policy-longrunning を使用して BigQuery にエクスポートするか、Cloud Storage にエクスポートすることを強くおすすめします。

--expand-groups

このオプションを有効にすると、クエリ結果のグループが個々のメンバーに展開されます。十分なグループ権限を付与されている場合は、ネストされたグループも展開されます。この展開の上限は、グループあたり 1,000 メンバーに制限されています。

このオプションは、クエリでプリンシパルを指定していない場合にのみ有効です。

--expand-resources このオプションを有効にした場合、クエリ結果には、クエリ結果内の任意の親リソース(プロジェクト、フォルダ、組織)に対する最大 1,000 件の関連する子孫リソースが一覧表示されます。
--expand-roles

このオプションを有効にすると、クエリ結果には、ロール自体に加えて、各ロール内のすべての権限が一覧表示されます。

このオプションは、クエリで権限やロールを指定していない場合にのみ使用できます。

--output-group-edges このオプションを有効にすると、グループ間でのメンバーシップの関係をクエリ結果として出力します。
--output-resource-edges このオプションを有効にすると、クエリの結果としてリソース間の関連する親子関係が出力されます。

REST

オプションを有効にするには、まず分析クエリに options フィールドを追加します。例:

{
  "analysisQuery": {
    "resourceSelector": {
      "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project"
    },
    "accessSelector": {
      "permissions": [
        "iam.roles.get",
        "iam.roles.list"
      ]
   },
   "options": {
     OPTIONS
   }
  }
}

OPTIONS は、有効にするオプションを "OPTION": true の形式で置き換えます。使用可能なオプションを次の表に示します。

オプション 説明
analyzeServiceAccountImpersonation

このオプションを有効にすると、Policy Analyzer は追加の分析クエリを実行し、指定されたリソースへの指定されたアクセス権を付与されているサービス アカウントの権限を借用できるユーザーを特定します。Policy Analyzer では、クエリ結果に含まれるサービス アカウントごとに 1 つのクエリが実行されます。これらのクエリは、サービス アカウントに対する次のいずれかの権限を付与されているユーザーを分析します。

  • iam.serviceAccounts.actAs
  • iam.serviceAccounts.getAccessToken
  • iam.serviceAccounts.getOpenIdToken
  • iam.serviceAccounts.implicitDelegation
  • iam.serviceAccounts.signBlob
  • iam.serviceAccounts.signJwt

これは、多くのクエリが自動的に実行されるため、非常に高額な費用を要するオペレーションです。AnalyzeIamPolicy を使用する代わりに、AnalyzeIamPolicyLongrunning を使用して BigQuery にエクスポートするか、Cloud Storage にエクスポートすることを強くおすすめします。

expandGroups

このオプションを有効にすると、クエリ結果のグループが個々のメンバーに展開されます。十分なグループ権限を付与されている場合は、ネストされたグループも展開されます。この展開の上限は、グループあたり 1,000 メンバーに制限されています。

このオプションは、クエリでプリンシパルを指定していない場合にのみ有効です。

expandResources このオプションを有効にした場合、クエリ結果には、クエリ結果内の任意の親リソース(プロジェクト、フォルダ、組織)に対する最大 1,000 件の関連する子孫リソースが一覧表示されます。
expandRoles

このオプションを有効にすると、クエリ結果には、ロール自体に加えて、各ロール内のすべての権限が一覧表示されます。

このオプションは、クエリで権限やロールを指定していない場合にのみ使用できます。

outputGroupEdges このオプションを有効にすると、グループ間でのメンバーシップの関係をクエリ結果として出力します。
outputResourceEdges このオプションを有効にすると、クエリの結果としてリソース間の関連する親子関係が出力されます。

次のステップ