搜索 IAM 允许政策示例

本页面包含适用于各种 IAM 允许政策的示例查询 。本页面上的一些示例使用 grep 等命令 和 sed,可在 Cloud Shell 和类似 Unix 的操作中使用 系统。

列出 IAM 允许政策并设置输出格式

gcloud

gcloud asset search-all-iam-policies \
    --scope=SCOPE \
    --flatten="policy.bindings[].members[]" \
    --format="table(resource, policy.bindings.role, policy.bindings.members)"

请提供以下值:

  • SCOPE:范围可以是项目、文件夹或 组织。

    允许使用的值包括:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      如何查找 Google Cloud 项目编号

      控制台

      如需查找 Google Cloud 项目编号,请完成以下步骤:

      1. 前往 Google Cloud 控制台中的信息中心页面。

        转到信息中心

      2. 点击菜单栏中的切换器框。
      3. 请选择框中选择您的组织,然后搜索项目名称。
      4. 点击项目名称以切换到相应项目。项目编号显示在项目信息卡片中。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 项目编号:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      如何查找 Google Cloud 文件夹 ID

      控制台

      如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击选择范围框,然后选择您的组织。
      4. 搜索您的文件夹名称。文件夹 ID 显示在文件夹名称旁边。

      gcloud CLI

      您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      其中,TOP_LEVEL_FOLDER_NAME 可以是字符串完全匹配或部分匹配。移除 --format 选项,以查看有关找到的文件夹的更多信息。

      如需获取另一个文件夹中的文件夹的 ID,请列出子文件夹:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      如何查找 Google Cloud 组织 ID

      控制台

      如需查找 Google Cloud 组织 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 点击全部标签页。组织 ID 会显示在组织名称旁边。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 组织 ID:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

其他标志:

  • 您可以添加 --query 以获得更具体的资源搜索结果。

  • 您可以添加 --asset-types 以获取更具体的资源类型。

  • 如果您不想设置结果的格式,可以移除 --flatten--format

  • 您可以使用 csv(而非 table)以 CSV 格式输出结果。

  • 您可以添加 --limit 以仅获取部分搜索结果。不包含 Cloud Asset Inventory 会自动将所有搜索 结果。

REST

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "pageSize": PAGE_SIZE
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:searchAllIamPolicies

请提供以下值:

  • PAGE_SIZE:可选。结果数量 每页返回率最大值是 2000。如果该值设置为 0 或 负值,则会选择适当的默认值。系统会返回 nextPageToken 以检索后续结果。

  • SCOPE:范围可以是项目、文件夹或 组织。

    允许使用的值包括:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      如何查找 Google Cloud 项目编号

      控制台

      如需查找 Google Cloud 项目编号,请完成以下步骤:

      1. 前往 Google Cloud 控制台中的信息中心页面。

        转到信息中心

      2. 点击菜单栏中的切换器框。
      3. 请选择框中选择您的组织,然后搜索项目名称。
      4. 点击项目名称以切换到相应项目。项目编号显示在项目信息卡片中。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 项目编号:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      如何查找 Google Cloud 文件夹 ID

      控制台

      如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击选择范围框,然后选择您的组织。
      4. 搜索您的文件夹名称。文件夹 ID 显示在文件夹名称旁边。

      gcloud CLI

      您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      其中,TOP_LEVEL_FOLDER_NAME 可以是字符串完全匹配或部分匹配。移除 --format 选项,以查看有关找到的文件夹的更多信息。

      如需获取另一个文件夹中的文件夹的 ID,请列出子文件夹:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      如何查找 Google Cloud 组织 ID

      控制台

      如需查找 Google Cloud 组织 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 点击全部标签页。组织 ID 会显示在组织名称旁边。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 组织 ID:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

其他参数:

  • 您可以向正文添加 query 键,以获取更具体的资源搜索 结果。

  • 您可以在正文中添加 assetTypes 键,以获取更具体的 资源。

使用“example”列出具有 IAM 允许政策的资源在政策名称中

gcloud

gcloud asset search-all-iam-policies \
    --scope=SCOPE \
    --query="resource:example"

请提供以下值:

  • SCOPE:范围可以是项目、文件夹或 组织。

    允许使用的值包括:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      如何查找 Google Cloud 项目编号

      控制台

      如需查找 Google Cloud 项目编号,请完成以下步骤:

      1. 前往 Google Cloud 控制台中的信息中心页面。

        转到信息中心

      2. 点击菜单栏中的切换器框。
      3. 请选择框中选择您的组织,然后搜索项目名称。
      4. 点击项目名称以切换到相应项目。项目编号显示在项目信息卡片中。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 项目编号:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      如何查找 Google Cloud 文件夹 ID

      控制台

      如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击选择范围框,然后选择您的组织。
      4. 搜索您的文件夹名称。文件夹 ID 显示在文件夹名称旁边。

      gcloud CLI

      您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      其中,TOP_LEVEL_FOLDER_NAME 可以是字符串完全匹配或部分匹配。移除 --format 选项,以查看有关找到的文件夹的更多信息。

      如需获取另一个文件夹中的文件夹的 ID,请列出子文件夹:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      如何查找 Google Cloud 组织 ID

      控制台

      如需查找 Google Cloud 组织 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 点击全部标签页。组织 ID 会显示在组织名称旁边。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 组织 ID:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

REST

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "query": "resource:example"
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:searchAllIamPolicies

请提供以下值:

  • SCOPE:范围可以是项目、文件夹或 组织。

    允许使用的值包括:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      如何查找 Google Cloud 项目编号

      控制台

      如需查找 Google Cloud 项目编号,请完成以下步骤:

      1. 前往 Google Cloud 控制台中的信息中心页面。

        转到信息中心

      2. 点击菜单栏中的切换器框。
      3. 请选择框中选择您的组织,然后搜索项目名称。
      4. 点击项目名称以切换到相应项目。项目编号显示在项目信息卡片中。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 项目编号:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      如何查找 Google Cloud 文件夹 ID

      控制台

      如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击选择范围框,然后选择您的组织。
      4. 搜索您的文件夹名称。文件夹 ID 显示在文件夹名称旁边。

      gcloud CLI

      您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      其中,TOP_LEVEL_FOLDER_NAME 可以是字符串完全匹配或部分匹配。移除 --format 选项,以查看有关找到的文件夹的更多信息。

      如需获取另一个文件夹中的文件夹的 ID,请列出子文件夹:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      如何查找 Google Cloud 组织 ID

      控制台

      如需查找 Google Cloud 组织 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 点击全部标签页。组织 ID 会显示在组织名称旁边。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 组织 ID:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

列出组织中在项目、文件夹或组织资源上设置的 IAM 允许政策

gcloud

gcloud asset search-all-iam-policies \
    --scope=organizations/ORGANIZATION_ID \
    --asset-types=cloudresourcemanager.*

请提供以下值:

  • ORGANIZATION_ID:组织的 ID 列出其许可政策

    如何查找 Google Cloud 组织 ID

    控制台

    如需查找 Google Cloud 组织 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 点击全部标签页。组织 ID 会显示在组织名称旁边。

    gcloud CLI

    您可以使用以下命令检索 Google Cloud 组织 ID:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

您可以将 --asset-types 标志更改为 cloudresourcemanager.googleapis.com/Project 以仅搜索项目资源的范围,或将其更改为 cloudresourcemanager.googleapis.com/Folder 以搜索文件夹资源的范围。

REST

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "assetTypes": "cloudresourcemanager.*"
         }' \
     https://cloudasset.googleapis.com/v1/organizations/ORGANIZATION_ID:searchAllIamPolicies

请提供以下值:

  • ORGANIZATION_ID:组织的 ID 列出其许可政策

    如何查找 Google Cloud 组织 ID

    控制台

    如需查找 Google Cloud 组织 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 点击全部标签页。组织 ID 会显示在组织名称旁边。

    gcloud CLI

    您可以使用以下命令检索 Google Cloud 组织 ID:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

您可以将 assetTypes 值更改为 cloudresourcemanager.googleapis.com/Project,将搜索范围限定为 项目资源,或者 cloudresourcemanager.googleapis.com/Folder 文件夹中的资源。

列出项目、文件夹或组织的查看者

此调用会返回 IAM 允许政策中的查看者 直接在项目上设置,但不会扩展到搜索允许政策 继承自项目的父级资源。

gcloud

gcloud asset search-all-iam-policies \
    --scope=SCOPE \
    --query="roles:roles/viewer" \
    --asset-types=cloudresourcemanager.* \
    --flatten="policy.bindings[].members[]" \
    --format="table(policy.bindings.members)"

请提供以下值:

  • SCOPE:范围可以是项目、文件夹或 组织。

    允许使用的值包括:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      如何查找 Google Cloud 项目编号

      控制台

      如需查找 Google Cloud 项目编号,请完成以下步骤:

      1. 前往 Google Cloud 控制台中的信息中心页面。

        转到信息中心

      2. 点击菜单栏中的切换器框。
      3. 请选择框中选择您的组织,然后搜索项目名称。
      4. 点击项目名称以切换到相应项目。项目编号显示在项目信息卡片中。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 项目编号:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      如何查找 Google Cloud 文件夹 ID

      控制台

      如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击选择范围框,然后选择您的组织。
      4. 搜索您的文件夹名称。文件夹 ID 显示在文件夹名称旁边。

      gcloud CLI

      您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      其中,TOP_LEVEL_FOLDER_NAME 可以是字符串完全匹配或部分匹配。移除 --format 选项,以查看有关找到的文件夹的更多信息。

      如需获取另一个文件夹中的文件夹的 ID,请列出子文件夹:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      如何查找 Google Cloud 组织 ID

      控制台

      如需查找 Google Cloud 组织 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 点击全部标签页。组织 ID 会显示在组织名称旁边。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 组织 ID:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

REST

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "assetTypes": "cloudresourcemanager.*",
          "pageSize": PAGE_SIZE,
          "query": "roles:roles/viewer"
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:searchAllIamPolicies

请提供以下值:

  • PAGE_SIZE:可选。结果数量 每页返回率最大值是 2000。如果该值设置为 0 或 负值,则会选择适当的默认值。系统会返回 nextPageToken 以检索后续结果。

  • SCOPE:范围可以是项目、文件夹或 组织。

    允许使用的值包括:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      如何查找 Google Cloud 项目编号

      控制台

      如需查找 Google Cloud 项目编号,请完成以下步骤:

      1. 前往 Google Cloud 控制台中的信息中心页面。

        转到信息中心

      2. 点击菜单栏中的切换器框。
      3. 请选择框中选择您的组织,然后搜索项目名称。
      4. 点击项目名称以切换到相应项目。项目编号显示在项目信息卡片中。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 项目编号:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      如何查找 Google Cloud 文件夹 ID

      控制台

      如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击选择范围框,然后选择您的组织。
      4. 搜索您的文件夹名称。文件夹 ID 显示在文件夹名称旁边。

      gcloud CLI

      您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      其中,TOP_LEVEL_FOLDER_NAME 可以是字符串完全匹配或部分匹配。移除 --format 选项,以查看有关找到的文件夹的更多信息。

      如需获取另一个文件夹中的文件夹的 ID,请列出子文件夹:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      如何查找 Google Cloud 组织 ID

      控制台

      如需查找 Google Cloud 组织 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 点击全部标签页。组织 ID 会显示在组织名称旁边。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 组织 ID:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

列出用户具有 Owner 角色的项目

此调用会返回其直接 IAM 允许政策的项目 指定用户和所有者角色,但不扩展到搜索允许的范围 继承自项目的政策父级资源

gcloud

gcloud asset search-all-iam-policies \
    --scope=SCOPE \
    --query="policy:(roles/owner USER_EMAIL_ADDRESS)" \
    --asset-types=cloudresourcemanager.googleapis.com/Project \
    --format="table(resource)"

请提供以下值:

  • SCOPE:范围可以是项目、文件夹或 组织。

    允许使用的值包括:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      如何查找 Google Cloud 项目编号

      控制台

      如需查找 Google Cloud 项目编号,请完成以下步骤:

      1. 前往 Google Cloud 控制台中的信息中心页面。

        转到信息中心

      2. 点击菜单栏中的切换器框。
      3. 请选择框中选择您的组织,然后搜索项目名称。
      4. 点击项目名称以切换到相应项目。项目编号显示在项目信息卡片中。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 项目编号:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      如何查找 Google Cloud 文件夹 ID

      控制台

      如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击选择范围框,然后选择您的组织。
      4. 搜索您的文件夹名称。文件夹 ID 显示在文件夹名称旁边。

      gcloud CLI

      您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      其中,TOP_LEVEL_FOLDER_NAME 可以是字符串完全匹配或部分匹配。移除 --format 选项,以查看有关找到的文件夹的更多信息。

      如需获取另一个文件夹中的文件夹的 ID,请列出子文件夹:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      如何查找 Google Cloud 组织 ID

      控制台

      如需查找 Google Cloud 组织 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 点击全部标签页。组织 ID 会显示在组织名称旁边。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 组织 ID:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

  • USER_EMAIL_ADDRESS: 您需要的 Google Cloud 账号。

REST

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "assetTypes": "cloudresourcemanager.googleapis.com/Project",
          "pageSize": PAGE_SIZE,
          "query": "policy:(roles/owner USER_EMAIL_ADDRESS)"
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:searchAllIamPolicies

请提供以下值:

  • PAGE_SIZE:可选。结果数量 每页返回率最大值是 2000。如果该值设置为 0 或 负值,则会选择适当的默认值。系统会返回 nextPageToken 以检索后续结果。

  • USER_EMAIL_ADDRESS:您要查找的 Google Cloud 账号的电子邮件地址。

  • SCOPE:范围可以是项目、文件夹或组织。

    允许使用的值包括:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      如何查找 Google Cloud 项目编号

      控制台

      如需查找 Google Cloud 项目编号,请完成以下步骤:

      1. 前往 Google Cloud 控制台中的信息中心页面。

        转到信息中心

      2. 点击菜单栏中的切换器框。
      3. 请选择框中选择您的组织,然后搜索项目名称。
      4. 点击项目名称以切换到相应项目。项目编号显示在项目信息卡片中。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 项目编号:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      如何查找 Google Cloud 文件夹 ID

      控制台

      如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击选择范围框,然后选择您的组织。
      4. 搜索您的文件夹名称。文件夹 ID 显示在文件夹名称旁边。

      gcloud CLI

      您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      其中,TOP_LEVEL_FOLDER_NAME 可以是字符串完全匹配或部分匹配。移除 --format 选项,以查看有关找到的文件夹的更多信息。

      如需获取另一个文件夹中的文件夹的 ID,请列出子文件夹:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      如何查找 Google Cloud 组织 ID

      控制台

      如需查找 Google Cloud 组织 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 点击全部标签页。组织 ID 会显示在组织名称旁边。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 组织 ID:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

列出用户在项目中具有的角色

此调用会返回直接在项目上设置的 IAM 许可政策中的角色,但不会扩展到搜索继承自项目的父级资源的许可政策。

gcloud

gcloud asset search-all-iam-policies \
    --scope=projects/PROJECT_ID \
    --query="policy:USER_EMAIL_ADDRESS" \
    --asset-types=cloudresourcemanager.googleapis.com/Project \
    --flatten="policy.bindings[]" \
    --format="table(policy.bindings.role)"

请提供以下值:

  • PROJECT_ID:用户拥有的项目的 ID 访问权限。

  • USER_EMAIL_ADDRESS:您要查询角色的用户的电子邮件地址。

REST

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "assetTypes": "cloudresourcemanager.googleapis.com/Project",
          "pageSize": PAGE_SIZE,
          "query": "policy:USER_EMAIL_ADDRESS"
         }' \
     https://cloudasset.googleapis.com/v1/projects/PROJECT_ID:searchAllIamPolicies

请提供以下值:

  • PAGE_SIZE:可选。结果数量 每页返回率最大值是 2000。如果该值设为 0 或负值,系统会选择相应的默认值。nextPageToken是 以检索后续结果。

  • USER_EMAIL_ADDRESS:您要查询角色的用户的电子邮件地址。

  • PROJECT_ID:用户拥有的项目的 ID 访问权限。

列出用户对项目拥有的权限

此调用会返回从 IAM 获取的用户权限 直接在项目上设置的允许政策,但不会扩展到搜索 允许从项目的父级资源继承的政策。

gcloud

gcloud asset search-all-iam-policies \
    --scope=projects/PROJECT_ID \
    --query="policy:USER_EMAIL_ADDRESS policy.role.permissions:\"\"" \
    --asset-types=cloudresourcemanager.* \
    --format="default(explanation.matchedPermissions)"

请提供以下值:

  • PROJECT_ID:用户拥有的项目的 ID 访问权限。

  • USER_EMAIL_ADDRESS:您要查询其权限的用户的电子邮件地址。

REST

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "assetTypes": "cloudresourcemanager.*",
          "pageSize": PAGE_SIZE,
          "query": "policy:USER_EMAIL_ADDRESS  policy.role.permissions:\"\""
         }' \
     https://cloudasset.googleapis.com/v1/projects/PROJECT_ID:searchAllIamPolicies

请提供以下值:

  • PAGE_SIZE:可选。结果数量 每页返回率最大值是 2000。如果该值设置为 0 或 负值,则会选择适当的默认值。系统会返回 nextPageToken 以检索后续结果。

  • USER_EMAIL_ADDRESS:用户的电子邮件地址 您查询其权限的系统

  • PROJECT_ID:用户有权访问的项目的 ID。

列出可以访问 Cloud Storage 存储桶的用户

gcloud

gcloud asset search-all-iam-policies \
    --scope=projects/PROJECT_ID \
    --query="policy.role.permissions:storage.buckets" \
    --asset-types=cloudresourcemanager.* \
    --flatten="policy.bindings[].members[]" \
    --format="table(policy.bindings.members)"

请提供以下值:

  • PROJECT_ID:用户有权访问的项目的 ID。

REST

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "assetTypes": "cloudresourcemanager.*",
          "pageSize": PAGE_SIZE,
          "query": "policy.role.permissions:storage.buckets"
         }' \
     https://cloudasset.googleapis.com/v1/projects/PROJECT_ID:searchAllIamPolicies

请提供以下值:

  • PAGE_SIZE:可选。结果数量 每页返回率最大值是 2000。如果该值设为 0 或负值,系统会选择相应的默认值。系统会返回 nextPageToken 以检索后续结果。

  • PROJECT_ID:用户有权访问的项目的 ID。

列出具有 Owner 角色的服务账号,以检测有风险的允许政策设置

gcloud

gcloud asset search-all-iam-policies \
    --scope=organizations/ORGANIZATION_ID \
    --query="policy:(roles/owner serviceAccount)" \
    --flatten="policy.bindings[].members[]" \
    --format="table(resource.segment(3):label=RESOURCE_TYPE, resource.basename():label=RESOURCE, policy.bindings.members)" |
    grep serviceAccount

请提供以下值:

  • ORGANIZATION_ID:组织的 ID 列出其许可政策

    如何查找 Google Cloud 组织 ID

    控制台

    如需查找 Google Cloud 组织 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 点击全部标签页。组织 ID 会显示在组织名称旁边。

    gcloud CLI

    您可以使用以下命令检索 Google Cloud 组织 ID:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

REST

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -s \
     -d '{
          "pageSize": PAGE_SIZE,
          "query": "policy:(roles/owner serviceAccount)"
         }' \
     https://cloudasset.googleapis.com/v1/organizations/ORGANIZATION_ID:searchAllIamPolicies |
     sed 's/^\s*//' | grep serviceAccount

请提供以下值:

  • PAGE_SIZE:可选。每页返回的结果数。最大值是 2000。如果该值设为 0 或负值,系统会选择相应的默认值。nextPageToken是 以检索后续结果。

  • ORGANIZATION_ID:您要为其列出允许政策的组织的 ID。

    如何查找 Google Cloud 组织 ID

    控制台

    如需查找 Google Cloud 组织 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 点击全部标签页。组织 ID 会显示在组织名称旁边。

    gcloud CLI

    您可以使用以下命令检索 Google Cloud 组织 ID:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

列出 Gmail 用户可以访问的资源

gcloud

gcloud asset search-all-iam-policies \
    --scope=organizations/ORGANIZATION_ID \
    --query="policy:gmail.com" \
    --flatten="policy.bindings[].members[]" \
    --format="csv(resource, policy.bindings.role, policy.bindings.members)" |
    grep @gmail.com

请提供以下值:

  • ORGANIZATION_ID:组织的 ID 列出其许可政策

    如何查找 Google Cloud 组织 ID

    控制台

    如需查找 Google Cloud 组织 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 点击全部标签页。组织 ID 会显示在组织名称旁边。

    gcloud CLI

    您可以使用以下命令检索 Google Cloud 组织 ID:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

REST

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -s \
     -d '{
          "pageSize": PAGE_SIZE,
          "query": "policy:gmail.com"
         }' \
     https://cloudasset.googleapis.com/v1/organizations/ORGANIZATION_ID:searchAllIamPolicies |
     sed 's/^\s*//' | grep @gmail.com

请提供以下值:

  • PAGE_SIZE:可选。每页返回的结果数。最大值是 2000。如果该值设为 0 或负值,系统会选择相应的默认值。nextPageToken是 以检索后续结果。

  • ORGANIZATION_ID:您要为其列出允许政策的组织的 ID。

    如何查找 Google Cloud 组织 ID

    控制台

    如需查找 Google Cloud 组织 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 点击全部标签页。组织 ID 会显示在组织名称旁边。

    gcloud CLI

    您可以使用以下命令检索 Google Cloud 组织 ID:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

列出具有向整个网域授予的角色的资源

gcloud

gcloud asset search-all-iam-policies \
    --scope=organizations/ORGANIZATION_ID \
    --query="policy:\"domain:DOMAIN_NAME\"" \
    --flatten="policy.bindings[]" \
    --format="table(resource, policy.bindings.role)"

请提供以下值:

  • ORGANIZATION_ID:组织的 ID 列出其许可政策

    如何查找 Google Cloud 组织 ID

    控制台

    如需查找 Google Cloud 组织 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 点击全部标签页。组织 ID 会显示在组织名称旁边。

    gcloud CLI

    您可以使用以下命令检索 Google Cloud 组织 ID:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

  • DOMAIN_NAME:与您的 组织。

REST

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -s \
     -d '{
          "pageSize": PAGE_SIZE,
          "query": "policy:\"domain:DOMAIN_NAME\""
         }' \
     https://cloudasset.googleapis.com/v1/organizations/ORGANIZATION_ID:searchAllIamPolicies

请提供以下值:

  • PAGE_SIZE:可选。结果数量 每页返回率最大值是 2000。如果该值设置为 0 或 负值,则会选择适当的默认值。系统会返回 nextPageToken 以检索后续结果。

  • DOMAIN_NAME:与您的组织关联的网域名称。

  • ORGANIZATION_ID:您要为其列出允许政策的组织的 ID。

    如何查找 Google Cloud 组织 ID

    控制台

    如需查找 Google Cloud 组织 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 点击全部标签页。组织 ID 会显示在组织名称旁边。

    gcloud CLI

    您可以使用以下命令检索 Google Cloud 组织 ID:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

列出具有向公众授予的角色的资源

gcloud

gcloud asset search-all-iam-policies \
    --scope=SCOPE \
    --query="memberTypes:(allUsers OR allAuthenticatedUsers)" \
    --format="table(resource)"

请提供以下值:

  • SCOPE:范围可以是项目、文件夹或 组织。

    允许使用的值包括:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      如何查找 Google Cloud 项目编号

      控制台

      如需查找 Google Cloud 项目编号,请完成以下步骤:

      1. 前往 Google Cloud 控制台中的信息中心页面。

        转到信息中心

      2. 点击菜单栏中的切换器框。
      3. 请选择框中选择您的组织,然后搜索项目名称。
      4. 点击项目名称以切换到相应项目。项目编号显示在项目信息卡片中。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 项目编号:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      如何查找 Google Cloud 文件夹 ID

      控制台

      如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击选择范围框,然后选择您的组织。
      4. 搜索您的文件夹名称。文件夹 ID 显示在文件夹名称旁边。

      gcloud CLI

      您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      其中,TOP_LEVEL_FOLDER_NAME 可以是字符串完全匹配或部分匹配。移除 --format 选项,以查看有关找到的文件夹的更多信息。

      如需获取另一个文件夹中的文件夹的 ID,请列出子文件夹:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      如何查找 Google Cloud 组织 ID

      控制台

      如需查找 Google Cloud 组织 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 点击全部标签页。组织 ID 会显示在组织名称旁边。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 组织 ID:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

REST

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -s \
     -d '{
          "pageSize": PAGE_SIZE,
          "query": "memberTypes:(allUsers OR allAuthenticatedUsers)"
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:searchAllIamPolicies |
     sed 's/^\s*//' | grep \"resource\":

请提供以下值:

  • PAGE_SIZE:可选。结果数量 每页返回率最大值是 2000。如果该值设置为 0 或 负值,则会选择适当的默认值。系统会返回 nextPageToken 以检索后续结果。

  • SCOPE:范围可以是项目、文件夹或 组织。

    允许使用的值包括:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      如何查找 Google Cloud 项目编号

      控制台

      如需查找 Google Cloud 项目编号,请完成以下步骤:

      1. 前往 Google Cloud 控制台中的信息中心页面。

        转到信息中心

      2. 点击菜单栏中的切换器框。
      3. 请选择框中选择您的组织,然后搜索项目名称。
      4. 点击项目名称以切换到相应项目。项目编号显示在项目信息卡片中。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 项目编号:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      如何查找 Google Cloud 文件夹 ID

      控制台

      如需查找 Google Cloud 文件夹 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击选择范围框,然后选择您的组织。
      4. 搜索您的文件夹名称。文件夹 ID 显示在文件夹名称旁边。

      gcloud CLI

      您可以使用以下命令检索位于组织级别的 Google Cloud 文件夹 ID:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      其中,TOP_LEVEL_FOLDER_NAME 可以是字符串完全匹配或部分匹配。移除 --format 选项,以查看有关找到的文件夹的更多信息。

      如需获取另一个文件夹中的文件夹的 ID,请列出子文件夹:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      如何查找 Google Cloud 组织 ID

      控制台

      如需查找 Google Cloud 组织 ID,请完成以下步骤:

      1. 转到 Google Cloud 控制台。

        前往 Google Cloud 控制台

      2. 点击菜单栏中的切换器框。
      3. 点击请选择:复选框,然后选择您的组织。
      4. 点击全部标签页。组织 ID 会显示在组织名称旁边。

      gcloud CLI

      您可以使用以下命令检索 Google Cloud 组织 ID:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

列出可以更改项目、文件夹或组织上的 IAM 许可政策的用户/群组

gcloud

gcloud asset search-all-iam-policies \
    --scope=organizations/ORGANIZATION_ID \
    --query="policy.role.permissions:(resourcemanager.organizations.setIamPolicy OR resourcemanager.folders.setIamPolicy OR resourcemanager.projects.setIamPolicy)" \
    --format="json(resource, policy.bindings, explanation.matchedPermissions)"

请提供以下值:

  • ORGANIZATION_ID:组织的 ID 列出其许可政策

    如何查找 Google Cloud 组织 ID

    控制台

    如需查找 Google Cloud 组织 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 点击全部标签页。组织 ID 会显示在组织名称旁边。

    gcloud CLI

    您可以使用以下命令检索 Google Cloud 组织 ID:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

REST

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -s \
     -d '{
          "pageSize": PAGE_SIZE,
          "query": "policy.role.permissions:(resourcemanager.organizations.setIamPolicy OR resourcemanager.folders.setIamPolicy OR resourcemanager.projects.setIamPolicy)"
         }' \
     https://cloudasset.googleapis.com/v1/organizations/ORGANIZATION_ID:searchAllIamPolicies

请提供以下值:

  • PAGE_SIZE:可选。每页返回的结果数。最大值是 2000。如果该值设为 0 或负值,系统会选择相应的默认值。nextPageToken是 以检索后续结果。

  • ORGANIZATION_ID:您要为其列出允许政策的组织的 ID。

    如何查找 Google Cloud 组织 ID

    控制台

    如需查找 Google Cloud 组织 ID,请完成以下步骤:

    1. 转到 Google Cloud 控制台。

      前往 Google Cloud 控制台

    2. 点击菜单栏中的切换器框。
    3. 点击请选择:复选框,然后选择您的组织。
    4. 点击全部标签页。组织 ID 会显示在组织名称旁边。

    gcloud CLI

    您可以使用以下命令检索 Google Cloud 组织 ID:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"