本页介绍了如何管理政策数据分析,即基于机器学习的有关权限使用情况的发现结果。政策数据分析有助于您确定哪些主账号拥有不需要的权限。
本页重点介绍了项目、文件夹和组织的政策数据分析。 Recommender 还会针对以下资源类型提供政策数据分析:
政策数据分析有时会与 相关联 角色建议。角色建议会建议您采取哪些措施来解决政策分析中指出的问题。
准备工作
-
Enable the Recommender API.
- 熟悉 IAM 角色建议。
- 请确保您拥有 组织级激活 Security Command Center 高级层级。如需了解详情,请参阅结算问题。
- 可选:了解 Recommender 数据分析。
所需的角色
如需获得管理政策数据分析所需的权限,请让管理员向您授予您要管理其数据分析的项目、文件夹或组织的以下 IAM 角色:
-
IAM Recommender Viewer (
roles/recommender.iamViewer
)(如需查看政策数据分析) -
IAM Recommender Admin (
roles/recommender.iamAdmin
)(如需修改政策数据分析)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色包含管理政策数据分析所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需管理政策数据分析,您需要拥有以下权限:
-
如需查看政策数据分析,请执行以下操作:
-
recommender.iamPolicyInsights.get
-
recommender.iamPolicyInsights.list
-
-
如需修改政策数据分析,请执行以下操作:
recommender.iamPolicyInsights.update
列出政策数据分析
如需列出您的 项目、 文件夹 或组织 请使用以下方法之一:控制台
-
在 Google Cloud 控制台中,前往 IAM 页面。
- 选择一个项目、文件夹或组织。
安全性数据分析列显示项目所有与安全性相关的数据分析,包括政策数据分析。 政策数据分析的格式为 EXCESS/TOTAL excess
permissions
,其中 EXCESS
是主账号不需要的角色中的权限数,TOTAL
是角色中的总权限数。
gcloud
使用 gcloud recommender
insights list
命令查看项目、文件夹或组织的所有政策数据分析。
在运行命令之前,请先替换以下值:
-
RESOURCE_TYPE
:要为其列出数据分析的资源类型。使用值project
,folder
, 或organization
。 -
RESOURCE_ID
: 项目、 文件夹 或组织的名称
gcloud recommender insights list --insight-type=google.iam.policy.Insight \ --RESOURCE_TYPE=RESOURCE_ID \ --location=global
输出会列出项目、文件夹或组织的所有政策数据分析。例如:
INSIGHT_ID CATEGORY INSIGHT_STATE LAST_REFRESH_TIME SEVERITY INSIGHT_SUBTYPE DESCRIPTION 00133c0b-5431-4b30-9172-7c903aa4af24 SECURITY ACTIVE 2022-05-24T07:00:00Z LOW PERMISSIONS_USAGE 9 of the permissions in this role binding were used in the past 90 days. 0161f2eb-acb7-4a5e-ad52-50284beaa312 SECURITY ACTIVE 2022-05-24T07:00:00Z LOW PERMISSIONS_USAGE 0 of the permissions in this role binding were used in the past 90 days. 01ea0d0d-e9a1-4073-9367-5a934a857fb4 SECURITY ACTIVE 2022-05-24T07:00:00Z LOW PERMISSIONS_USAGE 1 of the permissions in this role binding were used in the past 90 days. 039407bc-a25b-4aeb-b573-5c851f2e9833 SECURITY ACTIVE 2022-05-24T07:00:00Z HIGH PERMISSIONS_USAGE 52 of the permissions in this role binding were used in the past 90 days. 0541df88-8bc3-44b3-ad5d-9cb372630aeb SECURITY ACTIVE 2022-05-24T07:00:00Z HIGH PERMISSIONS_USAGE 31 of the permissions in this role binding were used in the past 90 days. 07841f74-02ce-4de8-bbe6-fc4eabb68568 SECURITY ACTIVE 2022-05-24T07:00:00Z HIGH PERMISSIONS_USAGE 0 of the permissions in this role binding were used in the past 90 days. 07713094-fdee-4475-9c43-cd53d52c9de1 SECURITY ACTIVE 2022-05-24T07:00:00Z LOW PERMISSIONS_USAGE 2 of the permissions in this role binding were used in the past 90 days. 0a438d19-9d63-4749-aadd-578aa4e77908 SECURITY ACTIVE 2022-05-24T07:00:00Z LOW PERMISSIONS_USAGE 0 of the permissions in this role binding were used in the past 90 days. f4292f55-105b-4744-9dc3-fcacf59685bb SECURITY ACTIVE 2022-05-24T07:00:00Z HIGH PERMISSIONS_USAGE 4 of the permissions in this role binding were used in the past 90 days.
REST
Recommender API 的 insights.list
方法可列出项目、文件夹或组织的所有政策数据分析。
在使用任何请求数据之前,请先进行以下替换:
-
RESOURCE_TYPE
:要为其列出数据分析的资源类型。使用值projects
、folders
或organizations
。 -
RESOURCE_ID
: 项目、 文件夹 或组织的名称 PROJECT_ID
:您的 Google Cloud 项目 ID。项目 ID 是字母数字字符串,例如my-project
。
HTTP 方法和网址:
GET https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/insightTypes/google.iam.policy.Insight/insights
如需发送您的请求,请展开以下选项之一:
该响应列出了您的 项目、 文件夹 或组织。例如:
{ "insights": [ { "name": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/07841f74-02ce-4de8-bbe6-fc4eabb68568", "description": "0 of the permissions in this role binding were used in the past 90 days.", "content": { "role": "roles/viewer", "member": "serviceAccount:my-service-account@my-project.iam.gserviceaccount.com", "condition": { "expression": "", "title": "", "description": "", "location": "" }, "exercisedPermissions": [], "inferredPermissions": [] }, "lastRefreshTime": "2022-05-24T07:00:00Z", "observationPeriod": "7776000s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "associatedRecommendations": [ { "recommendation": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/b1932220-867d-43d1-bd74-fb95876ab656" } ], "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/123456789012" ], "insightSubtype": "PERMISSIONS_USAGE", "etag": "\"b153ab487e4ae100\"", "severity": "HIGH" }, { "name": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/f4292f55-105b-4744-9dc3-fcacf59685bb", "description": "4 of the permissions in this role binding were used in the past 90 days.", "content": { "role": "roles/owner", "member": "serviceAccount:my-service-account2@my-project.iam.gserviceaccount.com", "condition": { "expression": "", "title": "", "description": "", "location": "" }, "exercisedPermissions": [ { "permission": "iam.roles.create" }, { "permission": "iam.roles.delete" }, { "permission": "iam.roles.list" }, { "permission": "iam.roles.update" } ], "inferredPermissions": [] }, "lastRefreshTime": "2022-05-24T07:00:00Z", "observationPeriod": "7776000s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "associatedRecommendations": [ { "recommendation": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/6ab16c1d-edce-45e5-8d82-570fdd49892a" } ], "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/123456789012" ], "insightSubtype": "PERMISSIONS_USAGE", "etag": "\"49bb705553338fc3\"", "severity": "HIGH" } ] }
如需详细了解数据分析组件,请参阅本页面中的查看政策数据分析。
获取单一政策数据分析
如需获取有关单一数据分析的更多信息(包括数据分析的说明、状态及其关联的任何建议),请使用以下方法之一:
控制台
-
在 Google Cloud 控制台中,前往 IAM 页面。
- 选择一个项目、文件夹或组织。
-
在安全性数据分析列中,点击政策数据分析。 政策数据分析的格式为
EXCESS/TOTAL excess permissions
,其中EXCESS
是主账号不需要的角色中的权限数,TOTAL
是角色中的总权限数。
Google Cloud 控制台将打开一个窗格,显示数据分析的详细信息。
gcloud
将 gcloud recommender
insights describe
命令与您的数据分析 ID 结合使用,以查看单一数据分析的相关信息。
-
INSIGHT_ID
:您要查看的数据分析的 ID。如需查找此 ID,请列出项目、文件夹或组织的数据分析。 -
RESOURCE_TYPE
:要为其管理数据分析的资源类型。使用值project
、folder
或organization
。 -
RESOURCE_ID
:要管理其数据分析的项目、文件夹或组织的 ID。
gcloud recommender insights describe INSIGHT_ID \ --insight-type=google.iam.policy.Insight \ --RESOURCE_TYPE=RESOURCE_ID \ --location=global
输出会显示详细数据分析。例如,以下数据分析表明,过去 90 天内 my-service-account@my-project.iam.gserviceaccount.com
未使用 Viewer 角色 (roles/viewer
) 的任何权限。
associatedRecommendations: - recommendation: projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/0573b702-96a5-4622-a916-c762e7b0731f category: SECURITY content: condition: description: '' expression: '' location: '' title: '' exercisedPermissions: [] inferredPermissions: [] member: serviceAccount:my-service-account@my-project.iam.gserviceaccount.com role: roles/viewer description: 0 of the permissions in this role binding were used in the past 90 days. etag: '"d3cdec23cc712bd0"' insightSubtype: PERMISSIONS_USAGE lastRefreshTime: '2020-07-11T07:00:00Z' name: projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/0d3ce433-f067-4e78-b6ae-03d7d1f6f040 observationPeriod: 7776000s severity: HIGH stateInfo: state: ACTIVE targetResources: - //cloudresourcemanager.googleapis.com/projects/123456789012
如需详细了解数据分析组件,请参阅本页面中的查看政策数据分析。
REST
Recommender API 的 insights.get
方法可获取单一数据分析。
在使用任何请求数据之前,请先进行以下替换:
-
RESOURCE_TYPE
:要为其管理数据分析的资源类型。使用值projects
,folders
, 或organizations
。 -
RESOURCE_ID
: 项目、 文件夹 您想要管理数据洞见的对象或组织 。 -
INSIGHT_ID
:您要查看的数据分析的 ID。如果您不知道数据分析的 ID,则可以通过在项目、文件夹或组织中列出数据分析来查找该数据分析。数据分析的 ID 是数据分析的name
字段中insights/
之后的所有内容。 PROJECT_ID
:您的 Google Cloud 项目 ID。项目 ID 是字母数字字符串,例如my-project
。
HTTP 方法和网址:
GET https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID
如需发送您的请求,请展开以下选项之一:
响应包含数据分析。例如,以下数据分析表明,过去 90 天内 my-service-account@my-project.iam.gserviceaccount.com
未使用 Viewer 角色 (roles/viewer
) 的任何权限。
{ "name": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/07841f74-02ce-4de8-bbe6-fc4eabb68568", "description": "0 of the permissions in this role binding were used in the past 90 days.", "content": { "role": "roles/viewer", "member": "serviceAccount:my-service-account@my-project.iam.gserviceaccount.com", "condition": { "expression": "", "title": "", "description": "", "location": "" }, "exercisedPermissions": [], "inferredPermissions": [] }, "lastRefreshTime": "2022-05-24T07:00:00Z", "observationPeriod": "7776000s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "associatedRecommendations": [ { "recommendation": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/b1932220-867d-43d1-bd74-fb95876ab656" } ], "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/123456789012" ], "insightSubtype": "PERMISSIONS_USAGE", "etag": "\"d3cdec23cc712bd0\"", "severity": "HIGH" }
如需详细了解数据分析组件,请参阅本页面中的查看政策数据分析。
查看政策数据分析
获得单个数据分析后,您可以查看其内容,以了解其突出显示的资源使用情况的模式。
控制台
在 Google Cloud 控制台中点击政策数据分析时,Google Cloud 控制台会打开一个窗格,其中显示该数据分析的详细信息。这些详细信息的显示取决于数据分析是否与建议相关联。
如果数据分析与建议相关联,则该窗格会显示建议的详细信息。
如果数据分析未与建议相关联,则该窗格会显示角色中所有权限的列表。主账号使用的权限会显示在列表顶部,后跟多余的权限。
gcloud
数据分析的内容由其子类型确定。政策数据分析 (google.iam.policy.Insight
) 数据分析
具有 PERMISSIONS_USAGE
子类型。
PERMISSIONS_USAGE
数据分析包含以下组成部分(不一定遵循以下顺序):
-
associatedRecommendations
:与数据分析相关联的任何建议的标识符。如果没有与数据分析相关联的建议,则此字段为空。 -
category
:IAM 数据分析的类别始终为SECURITY
。 -
content
:报告主账号使用特定角色的权限的情况。此字段包含以下组成部分:condition
:关联到向主账号授予该角色的绑定的任何条件。如果没有条件,则此字段将包含空条件。exercisedPermissions
:主账号在观察期间使用的角色权限。inferredPermissions
:Recommender 通过机器学习根据主账号实际使用的权限来确定的主账号可能需要的角色权限。member
:已分析其权限使用情况的主账号。role
:已分析其权限使用情况的角色。
-
description
:直观易懂的数据分析摘要。 -
etag
:数据分析的当前状态的唯一标识符。每次数据分析发生更改时,系统都会分配新的etag
值。要更改数据分析的状态,您必须提供现有数据分析的
etag
。使用etag
有助于确保仅在上次检索数据分析后没有任何更改的情况下执行所有操作。 -
insightSubtype
:数据分析子类型。 -
lastRefreshTime
:上次刷新数据分析的日期,它表示用于生成数据分析的数据的新鲜度。 -
name
:数据分析的名称,格式如下:RESOURCE_TYPE/RESOURCE_ID/locations/global/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID
占位符具有以下值:
-
RESOURCE_TYPE
:生成数据分析的资源类型。 -
RESOURCE_ID
: 项目、 文件夹 或组织。 INSIGHT_ID
:数据分析的唯一 ID。
-
-
observationPeriod
:生成数据分析的时间段。用于生成数据分析的源数据结束于lastRefreshTime
,在lastRefreshTime
减observationPeriod
开始。 -
stateInfo
:数据分析被提出后,会经历多次状态转换:-
ACTIVE
:数据分析已生成,但尚未执行任何操作,或执行的操作并未更新数据分析状态。当底层数据发生更改时,系统会更新活跃数据分析。 -
ACCEPTED
:已根据数据分析执行某种操作。如果关联的建议标记为CLAIMED
、SUCCEEDED
或FAILED
,或数据分析被直接接受,则表示数据分析已被接收。如果数据分析处于ACCEPTED
状态,则数据分析内容无法更改。标记为已接受的数据分析会保留 90 天。
-
-
targetResources
:完整资源名称 。例如//cloudresourcemanager.googleapis.com/projects/123456789012
。
REST
数据分析的内容由其子类型确定。政策数据分析 (google.iam.policy.Insight
) 数据分析的子类型为 PERMISSIONS_USAGE
。
PERMISSIONS_USAGE
数据分析包含以下组成部分(不一定遵循以下顺序):
-
associatedRecommendations
:与数据分析相关联的任何建议的标识符。如果没有与数据分析相关联的建议,则此字段为空。 -
category
:IAM 数据分析的类别始终为SECURITY
。 -
content
:报告主账号使用特定角色的权限的情况。此字段包含以下组成部分:condition
:关联到向主账号授予该角色的绑定的任何条件。如果没有条件,则此字段将包含空条件。exercisedPermissions
:主账号在观察期间使用的角色权限。inferredPermissions
:Recommender 通过机器学习根据主账号实际使用的权限来确定的主账号可能需要的角色权限。member
:已分析其权限使用情况的主账号。role
:已分析其权限使用情况的角色。
-
description
:直观易懂的数据分析摘要。 -
etag
:数据分析的当前状态的唯一标识符。每次数据分析发生更改时,系统都会分配新的etag
值。要更改数据分析的状态,您必须提供现有数据分析的
etag
。使用etag
有助于确保仅在上次检索数据分析后没有任何更改的情况下执行所有操作。 -
insightSubtype
:数据分析子类型。 -
lastRefreshTime
:上次刷新数据分析的日期,它表示用于生成数据分析的数据的新鲜度。 -
name
:数据分析的名称,格式如下:RESOURCE_TYPE/RESOURCE_ID/locations/global/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID
占位符具有以下值:
-
RESOURCE_TYPE
:生成数据分析的资源类型。 -
RESOURCE_ID
: 项目、 文件夹 或组织。 INSIGHT_ID
:数据分析的唯一 ID。
-
-
observationPeriod
:生成数据分析的时间段。用于生成数据分析的源数据结束于lastRefreshTime
,在lastRefreshTime
减observationPeriod
开始。 -
stateInfo
:数据分析被提出后,会经历多次状态转换:-
ACTIVE
:数据分析已生成,但尚未执行任何操作,或执行的操作并未更新数据分析状态。当底层数据发生更改时,系统会更新活跃数据分析。 -
ACCEPTED
:已根据数据分析执行某种操作。如果关联的建议标记为CLAIMED
、SUCCEEDED
或FAILED
,或数据分析被直接接受,则表示数据分析已被接收。如果数据分析处于ACCEPTED
状态,则数据分析内容无法更改。标记为已接受的数据分析会保留 90 天。
-
-
targetResources
:数据分析所针对的项目、文件夹或组织的完整资源名称。例如//cloudresourcemanager.googleapis.com/projects/123456789012
。
将政策数据分析标记为 ACCEPTED
如果您根据有效数据分析执行操作,则可以将该数据分析标记为 ACCEPTED
。ACCEPTED
状态会通知 Recommender API 您已根据此数据分析执行操作,这有助于优化您的建议。
标记为 ACCEPTED
后,已接受的数据分析将保留 90 天。
控制台
如果数据分析与建议相关联,则应用建议会将数据分析的状态更改为 ACCEPTED
。
如需在不应用建议的情况下将数据分析标记为 ACCEPTED
,请使用 gcloud CLI 或 REST API。
gcloud
使用
gcloud recommender insights mark-accepted
命令替换为要标记的数据分析 ID
ACCEPTED
作为数据分析。
-
INSIGHT_ID
:您要查看的数据分析的 ID。要查找 ID,请列出针对您的应用的 项目、 文件夹 或组织。 -
RESOURCE_TYPE
:要为其管理数据分析的资源类型。使用值project
、folder
或organization
。 -
RESOURCE_ID
: 项目、 文件夹 或组织。 -
ETAG
:数据分析版本的标识符。如需获取etag
,请执行以下操作:-
使用
gcloud recommender insights describe
命令获取数据分析。 -
在输出中查找并复制
etag
值,包括引号。例如"d3cdec23cc712bd0"
。
-
使用
gcloud recommender insights mark-accepted INSIGHT_ID \ --insight-type=google.iam.policy.Insight \ --RESOURCE_TYPE=RESOURCE_ID \ --location=global \ --etag=ETAG
输出显示数据分析,现在状态为 ACCEPTED
:
associatedRecommendations: - recommendation: projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/0573b702-96a5-4622-a916-c762e7b0731f category: SECURITY content: condition: description: '' expression: '' location: '' title: '' exercisedPermissions: [] inferredPermissions: [] member: serviceAccount:my-service-account@my-project.iam.gserviceaccount.com role: roles/viewer description: 0 of the permissions in this role binding were used in the past 90 days. etag: '"b153ab487e4ae100"' insightSubtype: PERMISSIONS_USAGE lastRefreshTime: '2020-07-11T07:00:00Z' name: projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/0d3ce433-f067-4e78-b6ae-03d7d1f6f040 observationPeriod: 7776000s severity: HIGH stateInfo: state: ACCEPTED targetResources: - //cloudresourcemanager.googleapis.com/projects/123456789012
如需详细了解数据分析的状态信息,请参阅本页面上的查看政策数据分析。
REST
Recommender API 的 insights.markAccepted
方法可将数据分析标记为 ACCEPTED
。
在使用任何请求数据之前,请先进行以下替换:
-
RESOURCE_TYPE
:要为其管理数据分析的资源类型。使用值projects
,folders
, 或organizations
。 -
RESOURCE_ID
: 项目、 文件夹 您想要管理数据洞见的对象或组织 。 -
INSIGHT_ID
:您要查看的数据分析的 ID。如果您不知道数据分析的 ID,则可以通过在项目、文件夹或组织中列出数据分析来查找该数据分析。数据分析的 ID 是数据分析的name
字段中insights/
之后的所有内容。 -
ETAG
:数据分析版本的标识符。如需获取etag
,请执行以下操作:- 使用
insights.get
方法获取数据分析。 - 查找并复制响应中的
etag
值。
- 使用
PROJECT_ID
:您的 Google Cloud 项目 ID。项目 ID 是字母数字字符串,例如my-project
。
HTTP 方法和网址:
POST https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID:markAccepted
请求 JSON 正文:
{ "etag": "ETAG" }
如需发送您的请求,请展开以下选项之一:
响应包含数据分析,其状态现在为 ACCEPTED
:
{ "name": "projects/1234567890/locations/global/insightTypes/google.iam.policy.Insight/insights/07841f74-02ce-4de8-bbe6-fc4eabb68568", "description": "0 of the permissions in this role binding were used in the past 90 days.", "content": { "role": "roles/viewer", "member": "serviceAccount:my-service-account@my-project.iam.gserviceaccount.com", "condition": { "expression": "", "title": "", "description": "", "location": "" }, "exercisedPermissions": [], "inferredPermissions": [] }, "lastRefreshTime": "2022-05-24T07:00:00Z", "observationPeriod": "7776000s", "stateInfo": { "state": "ACCEPTED" }, "category": "SECURITY", "associatedRecommendations": [ { "recommendation": "projects/1234567890/locations/global/recommenders/google.iam.policy.Recommender/recommendations/b1932220-867d-43d1-bd74-fb95876ab656" } ], "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/123456789012" ], "insightSubtype": "PERMISSIONS_USAGE", "etag": "\"b153ab487e4ae100\"", "severity": "HIGH" }
如需详细了解数据分析的状态信息,请参阅本页面上的查看政策数据分析。