本主题介绍如何查看有效的 Identity and Access Management (IAM) 政策。
在 IAM 中,“有效政策”描述了如何为资源沿用资源层次结构中的所有父级和祖先政策。
范围和权限
请求有效的 IAM 政策时,您必须指定 范围。它可以是组织、文件夹或项目。系统会返回在该范围内或该范围下设置的所有 IAM 政策。请求的范围 必须与为 Cloud Asset API 启用的项目相同。 此外,启用的项目和请求范围需要的 权限。
支持的政策类型
有效的 IAM 政策仅支持 IAM 允许政策。不支持以下形式的访问权限控制:
准备工作
在开始之前,请完成以下步骤。
为您的项目启用 Cloud Asset Inventory API。
此项目不必与范围相同 部分。详细了解 在启用服务时设置项目。
安装 Google Cloud SDK。
可选:如需直接调用 Cloud Asset Inventory API,请确认您有权使用
curl
命令。设置权限。
获取有效的 IAM 政策
gcloud
要获取资源的有效 IAM 政策,您可以调用
BatchGetEffectiveIamPolicies
使用 gcloud asset get-effective-iam-policy
命令。您必须运行 Google Cloud CLI 版本 399.0.0
或更新版本。
gcloud asset get-effective-iam-policy \
--scope=SCOPE \
--names=ASSET_NAME_1,ASSET_NAME_2,...
请提供以下值:
SCOPE
:范围可以是项目、文件夹或组织。允许使用的值包括:
projects/PROJECT_ID
projects/PROJECT_NUMBER
如何查找 Google Cloud 项目编号
控制台
如需查找 Google Cloud 项目编号,请完成以下步骤:
-
前往 Google Cloud 控制台中的信息中心页面。
- 点击菜单栏中的切换器框。
- 从请选择框中选择您的组织,然后搜索项目名称。
- 点击项目名称以切换到相应项目。项目编号显示在项目信息卡片中。
gcloud CLI
您可以使用以下命令检索 Google Cloud 项目编号:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
folders/FOLDER_ID
如何查找 Google Cloud 文件夹 ID
控制台
如需查找 Google Cloud 文件夹 ID,请完成以下步骤:
-
转到 Google Cloud 控制台。
- 点击菜单栏中的切换器框。
- 点击选择范围框,然后选择您的组织。
- 搜索您的文件夹名称。文件夹 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,请完成以下步骤:
-
转到 Google Cloud 控制台。
- 点击菜单栏中的切换器框。
- 点击请选择:复选框,然后选择您的组织。
- 点击全部标签页。组织 ID 显示在组织名称旁边。
gcloud CLI
您可以使用以下命令检索 Google Cloud 组织 ID:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
ASSET_NAME
:以英文逗号分隔的资产列表 全名来检索 有效的 IAM 政策。一个批次中最多可以检索 20 项资产的政策。
以下代码示例是示例 gcloud
CLI 命令:
对于
123456
的组织 ID:gcloud asset get-effective-iam-policy \ --scope=organizations/123456 \ --names=//cloudresourcemanager.googleapis.com/organizations/123456
如果文件夹 ID 为
1234567
,则:gcloud asset get-effective-iam-policy \ --scope=folders/1234567 \ --names=//cloudresourcemanager.googleapis.com/folders/1234567
对于名为
my-project
的项目中的两个 Cloud SQL 实例资源:gcloud asset get-effective-iam-policy \ --scope=projects/my-project \ --names=//cloudsql.googleapis.com/projects/my-project/instances/instance1,//cloudsql.googleapis.com/projects/my-project/instances/instance2
REST
要使用
Cloud Asset Inventory API,请使用以下 curl
命令:
curl -X POST \
-H "X-HTTP-Method-Override: GET" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"names": [
"ASSET_NAME_1",
"ASSET_NAME_2",
"..."
]
}' \
https://cloudasset.googleapis.com/v1/SCOPE/effectiveIamPolicies:batchGet
请提供以下值:
ASSET_NAME
:要检索有效 IAM 政策的资源全名的逗号分隔列表。一个批次中最多可以检索 20 项资产的政策。
SCOPE
:范围可以是项目、文件夹或组织。允许使用的值包括:
projects/PROJECT_ID
projects/PROJECT_NUMBER
如何查找 Google Cloud 项目编号
控制台
如需查找 Google Cloud 项目编号,请完成以下步骤:
-
前往 Google Cloud 控制台中的信息中心页面。
- 点击菜单栏中的切换器框。
- 从请选择框中选择您的组织,然后搜索项目名称。
- 点击项目名称以切换到相应项目。项目编号显示在项目信息卡片中。
gcloud CLI
您可以使用以下命令检索 Google Cloud 项目编号:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
folders/FOLDER_ID
如何查找 Google Cloud 文件夹 ID
控制台
如需查找 Google Cloud 文件夹 ID,请完成以下步骤:
-
转到 Google Cloud 控制台。
- 点击菜单栏中的切换器框。
- 点击选择范围框,然后选择您的组织。
- 搜索您的文件夹名称。文件夹 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,请完成以下步骤:
-
转到 Google Cloud 控制台。
- 点击菜单栏中的切换器框。
- 点击请选择:复选框,然后选择您的组织。
- 点击全部标签页。组织 ID 显示在组织名称旁边。
gcloud CLI
您可以使用以下命令检索 Google Cloud 组织 ID:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-