Cloud Asset Inventory 数据分析有助于检测资产中的潜在风险
配置,并帮助您改善安全状况。它是 Recommender 服务的一部分,并作为 google.cloudasset.asset.Insight
数据分析类型提供。
数据分析是指需要进一步分析才能确定的具体异常情况 适当的操作。系统每天都会根据数据快照生成这类报告 存储在 Cloud Asset Inventory 中。
Cloud Asset Inventory 提供的数据分析基于与贵组织资源关联的 IAM 政策。
准备工作
您必须先完成以下操作,然后才能开始使用素材资源数据分析 步骤。
请确保您的账号具有以下权限:
recommender.cloudAssetInsights.get
recommender.cloudAssetInsights.list
recommender.cloudAssetInsights.update
您可以单独授予这些权限,也可以授予以下角色之一。
Cloud Asset Insights Viewer (
roles/recommender.cloudAssetInsightsViewer
) 角色Cloud Asset Insights Admin (
roles/recommender.cloudAssetInsightsAdmin
) 角色
限制
这些数据分析不会将群组成员资格或服务账号视为 这些结果不应视为详尽的匹配列表, 漏洞
单个数据分析包括匹配 IAM 政策采样(最多 100 项不同的政策)。所有匹配的政策都可以通过 搜索有关资源的 IAM 允许政策。
请求资产数据分析
如需请求获取素材资源数据分析,最简单的方法是列出它们,如 后续步骤。对于其他类型的数据分析互动,请参阅使用 API - 数据分析。
gcloud
gcloud recommender insights list \ --SCOPE \ --location=global \ --insight-type=google.cloudasset.asset.Insight \ --filter="insightSubtype:SUBTYPE" \
请提供以下值:
-
SCOPE
:使用以下某个值:-
project=PROJECT_ID
,其中PROJECT_ID
为 您想要获取数据分析的项目的 ID。 -
folder=FOLDER_ID
,其中FOLDER_ID
是您要获取数据分析的文件夹的 ID。如何查找 Google Cloud 文件夹的 ID
Google Cloud 控制台
如需查找 Google Cloud 文件夹的 ID,请完成以下步骤:
-
转到 Google Cloud 控制台。
<ph type="x-smartling-placeholder"></ph> 前往 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。为此,请使用顶级文件夹的 ID 运行以下命令:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organization=ORGANIZATION_ID
,其中ORGANIZATION_ID
是您要获取数据分析的组织的 ID。如何查找 Google Cloud 组织的 ID
Google Cloud 控制台
如需查找 Google Cloud 组织的 ID,请完成以下步骤:
-
转到 Google Cloud 控制台。
<ph type="x-smartling-placeholder"></ph> 前往 Google Cloud 控制台
- 点击菜单栏中的切换器列表框。
- 从列表框中选择您的组织。
- 点击全部标签页。组织 ID 会显示在组织名称旁边。
gcloud CLI
您可以使用以下命令检索 Google Cloud 组织的 ID:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
BILLING_PROJECT_ID
:可选。默认 Cloud Asset Inventory 服务代理所在的项目 ID,该项目 ID 具有管理您的结算和配额的权限。 <ph type="x-smartling-placeholder"></ph> 详细了解如何设置结算项目。 -
SUBTYPE
:素材资源数据分析子类型。其中一个 以下值:-
EXTERNAL_MEMBER
:检测包含属于组织网域外部网域的用户或群组的 IAM 政策。 -
EXTERNAL_POLICY_EDITOR
:检测包含组织网域外部的用户或群组(拥有修改 IAM 政策的权限)的 IAM 政策。 -
EXTERNAL_CLOUD_STORAGE_OBJECT_VIEWER
:检测包含组织网域外部的用户或群组(拥有获取或列出存储对象的权限 [storage.objects.list
或storage.objects.get
权限])的 IAM 政策。 -
EXTERNAL_SERVICE_ACCOUNT_IMPERSONATOR
:检测 IAM 政策 包含您组织网域外已被授予的用户或群组 模拟服务账号的权限。 -
TERMINATED_MEMBER
:检测包含用户或 包含已停用、已删除或已完全清除账号的群组。 -
PUBLIC_IAM_POLICY
:检测包含所有用户或所有经过身份验证的用户的 IAM 政策。 -
OWNER_TERMINATED_PROJECT
:检测项目的 IAM 政策中不包含任何活跃用户或群组的项目。
-
如果未指定,系统将返回所有子类型。
如需了解更多详情,请参阅 gcloud CLI 参考 所有选项
示例
运行以下命令列出 my-project
项目的数据分析。
gcloud recommender insights list \ --project=my-project \ --location=global \ --insight-type=google.cloudasset.asset.Insight
示例响应
INSIGHT_ID: 00000000-0000-0000-0000-000000000000 CATEGORY: SECURITY INSIGHT_STATE: ACTIVE LAST_REFRESH_TIME: 2024-01-30T00:00:00Z SEVERITY: LOW INSIGHT_SUBTYPE: EXTERNAL_MEMBER DESCRIPTION: Domain example.com detected in 1 IAM policies
REST
HTTP 方法和网址:
GET https://recommender.googleapis.com/v1/SCOPE_PATH/locations/global/insightTypes/google.cloudasset.asset.Insight/insights
标头:
X-Goog-User-Project: BILLING_PROJECT_ID
请提供以下值:
-
SCOPE_PATH
:使用以下某个值:允许使用的值包括:
-
projects/PROJECT_ID
,其中PROJECT_ID
为 您想要获取数据分析的项目的 ID。 -
projects/PROJECT_NUMBER
,其中PROJECT_NUMBER
是您要获取数据分析的项目的编号。如何查找 Google Cloud 项目编号
Google Cloud 控制台
如需查找 Google Cloud 项目编号,请完成以下步骤:
gcloud CLI
您可以使用以下命令检索 Google Cloud 项目编号:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
folders/FOLDER_ID
,其中FOLDER_ID
是您要获取数据分析的文件夹的 ID。如何查找 Google Cloud 文件夹的 ID
Google Cloud 控制台
如需查找 Google Cloud 文件夹的 ID,请完成以下步骤:
-
转到 Google Cloud 控制台。
<ph type="x-smartling-placeholder"></ph> 前往 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。为此,请使用顶级文件夹的 ID 运行以下命令:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organizations/ORGANIZATION_ID
,其中ORGANIZATION_ID
是您想要获取数据分析的组织 ID。如何查找 Google Cloud 组织的 ID
Google Cloud 控制台
如需查找 Google Cloud 组织的 ID,请完成以下步骤:
-
转到 Google Cloud 控制台。
- 点击菜单栏中的切换器列表框。
- 从列表框中选择您的组织。
- 点击全部标签页。组织 ID 会显示在组织名称旁边。
gcloud CLI
您可以使用以下命令检索 Google Cloud 组织的 ID:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
BILLING_PROJECT_ID
:默认 Cloud Asset Inventory 服务代理所在的项目 ID,该项目 ID 具有管理您的结算和配额的权限。 详细了解如何设置结算项目。
命令示例
运行以下任一命令,列出 my-project
项目的数据分析。
curl(Linux、macOS 或 Cloud Shell)
curl -X GET \ -H "X-Goog-User-Project: BILLING_PROJECT_ID" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://recommender.googleapis.com/v1/projects/my-project/locations/global/insightTypes/google.cloudasset.asset.Insight/insights
PowerShell (Windows)
<ph type="x-smartling-placeholder">$cred = gcloud auth print-access-token $headers = @{ "X-Goog-User-Project" = "BILLING_PROJECT_ID"; "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://recommender.googleapis.com/v1/projects/my-project/locations/global/insightTypes/google.cloudasset.asset.Insight/insights" | Select-Object -Expand Content
示例响应
{ "name": "organizations/000000000000/locations/global/insightTypes/google.cloudasset.asset.Insight/insights/00000000-0000-0000-0000-000000000000", "description": "Domain example.com detected in 1 IAM policies", "content": { "domain": "example.com", "policyCount": 1, "policySearchQuery": "policy: example.com", "matchedPolicies" :[ { "resource" :"//cloudresourcemanager.googleapis.com/projects/000000000000", "project" :"projects/000000000000", "matchedBindings" :[ { "role" :"roles/viewer", "matchedMembers" :[ "user:example@example.com" ] } ] } ] }, "lastRefreshTime": "2024-01-30T00:00:00Z", "observationPeriod": "0s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "targetResources": [ "//cloudresourcemanager.googleapis.com/organizations/000000000000" ], "insightSubtype": "EXTERNAL_MEMBER", "etag": "\"00000000000\"", "initialRefreshTime": "2024-01-30T00:00:00Z" }
解读数据分析响应
除了标准数据分析属性之外,Asset Insights 还提供了多个专用子类型和字段。
数据分析子类型
素材资源数据分析子类型如下所示:
EXTERNAL_MEMBER
:检测包含属于组织网域外部网域的用户或群组的 IAM 政策。EXTERNAL_POLICY_EDITOR
:检测包含组织网域外部的用户或群组(拥有修改 IAM 政策的权限)的 IAM 政策。EXTERNAL_CLOUD_STORAGE_OBJECT_VIEWER
:检测包含组织网域外部的用户或群组(拥有获取或列出存储对象的权限(storage.objects.list
或storage.objects.get permission
))的 IAM 政策。EXTERNAL_SERVICE_ACCOUNT_IMPERSONATOR
:检测包含组织网域外部的用户或群组(拥有模拟服务账号的权限)的 IAM 政策。TERMINATED_MEMBER
:检测包含用户或群组(拥有已停用、已删除或已清除账号)的 IAM 政策。PUBLIC_IAM_POLICY
:检测包含所有用户或所有经过身份验证的用户的 IAM 政策。OWNER_TERMINATED_PROJECT
:检测不含任何活跃 build 的项目 用户或群组。
其他内容字段
除了响应中的标准字段之外,素材资源数据分析还提供
content
字段中的多个专业字段。
user
:在此数据分析的政策绑定中检测到的用户电子邮件地址。此字段包含在TERMINATED_MEMBER
子类型中。domain
:在此政策绑定的成员中检测到的网域 数据分析。此字段包含在EXTERNAL_MEMBER
、EXTERNAL_POLICY_EDITOR
、EXTERNAL_CLOUD_STORAGE_OBJECT_VIEWER
和EXTERNAL_SERVICE_ACCOUNT_IMPERSONATOR
子类型中。assetName
:在此数据分析中检测到访问权限的资产名称。 此字段包含在OWNER_TERMINATED_PROJECT
和PUBLIC_IAM_POLICY
子类型中。policyCount
:针对此数据分析中检测到匹配成员的不同 IAM 政策的总数。所有 Asset Insights 子类型都包括此字段。matchedPolicies
:符合 检测到的数据分析。匹配政策仅包含部分绑定和 绑定成员(与检测到的数据分析匹配的成员)。包含此字段的适用范围是 所有素材资源数据分析子类型。policySearchQuery
:可与 Cloud Asset Inventory 搭配使用的查询 IAM Policy Search API,用于实际检索相关政策 。