本页介绍了如何查看、了解和应用针对项目、文件夹和组织的角色建议。角色建议可确保主账号仅拥有其实际需要的权限,从而帮助您强制执行最小权限原则。
准备工作
Enable the IAM and Recommender APIs.
了解角色建议。
查看角色建议的最佳做法。
可选:如果您想查看和管理非基本角色和自定义角色的角色建议,请确保您已在组织级或项目级激活 Security Command Center 的高级层级或 Enterprise 层级。如需了解详情,请参阅结算问题。
设置身份验证。
Select the tab for how you plan to use the samples on this page:
gcloud
-
Role Viewer (
roles/iam.roleViewer
) -
IAM Recommender Viewer (
roles/recommender.iamViewer
) -
如需在 Google Cloud 控制台中查看项目级建议:
Project IAM Admin (
roles/resourcemanager.projectIamAdmin
) -
如需在 Google Cloud 控制台中查看文件夹级建议:
Folder IAM Admin (
roles/resourcemanager.folderIamAdmin
) -
如需在 Google Cloud 控制台中查看组织级建议,您需要拥有组织管理员 (
roles/resourcemanager.organizationAdmin
) 角色。 组织管理员 (roles/resourcemanager.organizationAdmin
) -
iam.roles.get
-
iam.roles.list
-
recommender.iamPolicyRecommendations.get
-
recommender.iamPolicyRecommendations.list
-
recommender.iamPolicyInsights.get
-
recommender.iamPolicyInsights.list
-
recommender.iamPolicyLateralMovementInsights.get
-
recommender.iamPolicyLateralMovementInsights.list
-
如需在 Google Cloud 控制台中查看建议,请执行以下操作:
resourcemanager.RESOURCE.getIamPolicy
,其中RESOURCE
是您要查看其建议的资源类型(projects
、folders
或organizations
) -
Role Viewer (
roles/iam.roleViewer
) -
IAM Recommender Admin (
roles/recommender.iamAdmin
) -
Project IAM Admin (
roles/resourcemanager.projectIamAdmin
)(如需管理项目级建议) -
如需管理文件夹级建议:
Folder IAM Admin (
roles/resourcemanager.folderIamAdmin
) -
Organization Admin ()(如需管理组织级建议)
roles/resourcemanager.organizationAdmin
-
iam.roles.get
-
iam.roles.list
-
recommender.iamPolicyRecommendations.get
-
recommender.iamPolicyRecommendations.list
-
recommender.iamPolicyInsights.get
-
recommender.iamPolicyInsights.list
-
recommender.iamPolicyLateralMovementInsights.get
-
recommender.iamPolicyLateralMovementInsights.list
-
recommender.iamPolicyRecommendations.update
-
resourcemanager.RESOURCE.getIamPolicy
,其中RESOURCE
是您要管理其建议的资源类型(projects
、folders
或organizations
) -
resourcemanager.RESOURCE.setIamPolicy
,其中RESOURCE
是您要管理其建议的资源类型(projects
、folders
或organizations
) 在 Google Cloud 控制台中,前往 IAM 页面。
选择一个项目、文件夹或组织。
在有权访问项目的主账号列表中,找到安全数据分析列。
对于授予主账号的每个角色,此列显示所有与安全相关的数据分析。这些数据分析突出显示了主账号访问资源的模式。例如,某些数据分析突出显示多余的权限或主账号不需要的权限。其他数据分析突出显示具有横向移动功能的服务账号:
如果有建议可用于处理数据分析,Google Cloud 控制台会显示建议可用
图标。如果有待查看的建议,请点击有建议可用
图标,详细了解相关建议。如果建议替换角色,则角色建议始终会建议使用您可以应用的一组预定义角色。
在某些情况下,角色建议还会建议在项目级层创建新的自定义角色。如果有自定义角色建议可用, Google Cloud 控制台将默认显示该建议。如需切换到预定义角色建议,请点击查看建议的预定义角色。
请仔细查看建议,并务必了解它将如何改变主账号对 Google Cloud 资源的访问权限。除了针对服务代理的建议以外,建议绝不会再提高主账号的访问权限级别。如需了解详情,请参阅如何生成角色建议。
如需了解如何在控制台中查看建议,请参阅本页面上的查看建议。
可选:如果建议创建自定义角色,请根据需要更新标题、说明、ID、角色发布阶段。
如果您需要为自定义角色添加权限,请点击添加权限。
如果您需要从自定义角色中移除权限,请取消选中您要移除的每项权限对应的复选框。
针对建议采取措施。
如需应用建议,请点击应用或创建并应用。如果您在接下来的 90 天内改变主意,请使用建议历史记录还原您的选择。
要忽略建议,请点击忽略,然后确认您的选择。只要建议仍然有效,您就可以恢复已忽略的建议。
重复前面的步骤,直到您查看完所有建议。
RESOURCE_TYPE
:要为其列出建议的资源类型。使用值project
、folder
或organization
。RESOURCE_ID
:您要为其列出建议的 Google Cloud 项目、文件夹或组织的 ID。项目 ID 是字母数字字符串,例如my-project
。文件夹和组织 ID 是数字,例如123456789012
。使用
gcloud recommender recommendations mark-claimed
命令将建议的状态更改为CLAIMED,
,这样可以防止建议在您应用它时发生变化:gcloud recommender recommendations mark-claimed \ RECOMMENDATION_ID \ --location=global \ --recommender=google.iam.policy.Recommender \ --RESOURCE_TYPE=RESOURCE_ID \ --format=FORMAT \ --etag=ETAG \ --state-metadata=STATE_METADATA
替换以下值:
-
RECOMMENDATION_ID
:建议的唯一标识符。此值显示在建议的name
字段末尾。在上面的示例中,ID 为fb927dc1-9695-4436-0000-f0f285007c0f
。 -
RESOURCE_TYPE
:要为其管理建议的资源类型。使用值project
、folder
或organization
。 -
RESOURCE_ID
:要为其管理建议的 Google Cloud项目、文件夹或组织的 ID。项目 ID 是字母数字字符串,例如my-project
。文件夹和组织 ID 是数字,例如123456789012
。 -
FORMAT
:响应的格式。请使用json
或yaml
。 -
ETAG
:建议中etag
字段的值,例如"dd0686e7136a4cbb"
。请注意,该值可以包含引号。 -
STATE_METADATA
:可选。以英文逗号分隔的键值对,其中包含您对建议所选择的元数据。例如--state-metadata=reviewedBy=alice,priority=high
。元数据会替换建议中的stateInfo.stateMetadata
字段。
如果命令成功,响应会显示建议处于
CLAIMED
状态,如下例所示。为清楚起见,示例省略了大部分字段:[ { "description": "This role has not been used during the observation window.", "recommenderSubtype": "REMOVE_ROLE", "etag": "\"df7308cca9719dcc\"", "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f", "stateInfo": { "state": "CLAIMED", "stateMetadata": { "reviewedBy": "alice", "priority": "high" } } } ]
-
如果能够应用建议,请将建议的状态更新为
SUCCEEDED
;否则,请更新为FAILED
:gcloud recommender recommendations COMMAND \ RECOMMENDATION_ID \ --location=global \ --recommender=google.iam.policy.Recommender \ --RESOURCE_TYPE=RESOURCE_ID \ --format=FORMAT \ --etag=ETAG \ --state-metadata=STATE_METADATA
替换以下值:
COMMAND
:如果能够应用建议,请使用mark-succeeded
;否则,请使用mark-failed
。-
RECOMMENDATION_ID
:建议的唯一标识符。此值显示在建议的name
字段末尾。在上面的示例中,ID 为fb927dc1-9695-4436-0000-f0f285007c0f
。 -
RESOURCE_TYPE
:要为其管理建议的资源类型。使用值project
、folder
或organization
。 -
RESOURCE_ID
:要为其管理建议的 Google Cloud项目、文件夹或组织的 ID。项目 ID 是字母数字字符串,例如my-project
。文件夹和组织 ID 是数字,例如123456789012
。 -
FORMAT
:响应的格式。请使用json
或yaml
。 -
ETAG
:建议中etag
字段的值,例如"dd0686e7136a4cbb"
。请注意,该值可以包含引号。 -
STATE_METADATA
:可选。以英文逗号分隔的键值对,其中包含您对建议所选择的元数据。例如--state-metadata=reviewedBy=alice,priority=high
。元数据会替换建议中的stateInfo.stateMetadata
字段。
例如,如果您将建议标记为成功,响应会显示建议处于
SUCCEEDED
状态。为清楚起见,此示例省略了大部分字段:[ { "description": "This role has not been used during the observation window.", "recommenderSubtype": "REMOVE_ROLE", "etag": "\"dd0686e7136a4cbb\"", "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f", "stateInfo": { "state": "SUCCEEDED", "stateMetadata": { "reviewedBy": "alice", "priority": "high" } } } ]
RESOURCE_TYPE
:要为其管理建议的资源类型。使用值projects
、folders
或organizations
。RESOURCE_ID
:要为其管理建议的Google Cloud 项目、文件夹或组织的 ID。项目 ID 是字母数字字符串,例如my-project
。文件夹和组织 ID 是数字,例如123456789012
。-
PAGE_SIZE
:可选。要从此请求返回的最大结果数。如果未指定,则服务器将决定要返回的结果数。如果建议的数量大于页面大小,则响应会包含用于检索下一页结果的分页令牌。 -
PAGE_TOKEN
:可选。此方法之前的响应中返回的分页令牌。如果已指定,则建议列表将从上一个请求结束的位置开始。 -
FILTER
:可选。用于限制返回的建议的过滤条件表达式。您可以根据stateInfo.state
字段过滤建议。例如stateInfo.state:"DISMISSED"
或stateInfo.state:"FAILED"
。 PROJECT_ID
:您的 Google Cloud 项目 ID。项目 ID 是字母数字字符串,例如my-project
。将建议标记为
CLAIMED
:如需将建议标记为
CLAIMED
,这样可以防止建议在您应用它时发生变化,请使用 Recommender API 的recommendations.markClaimed
方法。在使用任何请求数据之前,请先进行以下替换:
RESOURCE_TYPE
:要为其管理建议的资源类型。使用值projects
、folders
或organizations
。RESOURCE_ID
:要为其管理建议的Google Cloud 项目、文件夹或组织的 ID。项目 ID 是字母数字字符串,例如my-project
。文件夹和组织 ID 是数字,例如123456789012
。RECOMMENDATION_ID
:建议的唯一标识符。此值显示在建议的name
字段末尾。例如,如果name
字段为projects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f
,则建议 ID 为fb927dc1-9695-4436-0000-f0f285007c0f
。ETAG
:建议中etag
字段的值,例如"dd0686e7136a4cbb"
。使用反斜杠可转义引号,例如"\"df7308cca9719dcc\""
。STATE_METADATA
:可选。包含键值对的对象,其中包含您对建议所选择的元数据。例如{"reviewedBy": "alice", "priority": "high"}
。元数据会替换建议中的stateInfo.stateMetadata
字段。PROJECT_ID
:您的 Google Cloud 项目 ID。项目 ID 是字母数字字符串,例如my-project
。
HTTP 方法和网址:
POST https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/recommenders/google.iam.policy.Recommender/recommendations/RECOMMENDATION_ID:markClaimed
请求 JSON 正文:
{ "etag": "ETAG", "stateMetadata": { "STATE_METADATA" } }
如需发送您的请求,请展开以下选项之一:
响应会显示
CLAIMED
状态的建议,如以下示例所示。为清楚起见,此示例省略了大部分字段:{ "description": "This role has not been used during the observation window.", "stateInfo": { "state": "CLAIMED", "stateMetadata": { "reviewedBy": "alice", "priority": "high" } }, "etag": "\"dd0686e7136a4cbb\"", "recommenderSubtype": "REMOVE_ROLE" }
如果能够应用建议,请将建议的状态更新为
SUCCEEDED
;否则,请更新为FAILED
:SUCCEEDED
如需将建议标记为
SUCCEEDED
,表明您可以应用它,请使用 Recommender API 的recommendations.markSucceeded
方法。在使用任何请求数据之前,请先进行以下替换:
RESOURCE_TYPE
:要为其管理建议的资源类型。使用值projects
、folders
或organizations
。RESOURCE_ID
:要为其管理建议的Google Cloud 项目、文件夹或组织的 ID。项目 ID 是字母数字字符串,例如my-project
。文件夹和组织 ID 是数字,例如123456789012
。RECOMMENDATION_ID
:建议的唯一标识符。此值显示在建议的name
字段末尾。例如,如果name
字段为projects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f
,则建议 ID 为fb927dc1-9695-4436-0000-f0f285007c0f
。ETAG
:建议中etag
字段的值,例如"dd0686e7136a4cbb"
。使用反斜杠可转义引号,例如"\"df7308cca9719dcc\""
。STATE_METADATA
:可选。包含键值对的对象,其中包含您对建议所选择的元数据。例如{"reviewedBy": "alice", "priority": "high"}
。元数据会替换建议中的stateInfo.stateMetadata
字段。PROJECT_ID
:您的 Google Cloud 项目 ID。项目 ID 是字母数字字符串,例如my-project
。
HTTP 方法和网址:
POST https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/recommenders/google.iam.policy.Recommender/recommendations/RECOMMENDATION_ID:markSucceeded
请求 JSON 正文:
{ "etag": "ETAG", "stateMetadata": { "STATE_METADATA" } }
如需发送您的请求,请展开以下选项之一:
响应会显示
SUCCEEDED
状态的建议,如以下示例所示。为清楚起见,此示例省略了大部分字段:{ "description": "This role has not been used during the observation window.", "stateInfo": { "state": "SUCCEEDED", "stateMetadata": { "reviewedBy": "alice", "priority": "high" } }, "etag": "\"dd0686e7136a4cbb\"", "recommenderSubtype": "REMOVE_ROLE" }
FAILED
如需将建议标记为
FAILED
,表明您无法应用它,请使用 Recommender API 的recommendations.markFailed
方法。在使用任何请求数据之前,请先进行以下替换:
RESOURCE_TYPE
:要为其管理建议的资源类型。使用值projects
、folders
或organizations
。RESOURCE_ID
:要为其管理建议的Google Cloud 项目、文件夹或组织的 ID。项目 ID 是字母数字字符串,例如my-project
。文件夹和组织 ID 是数字,例如123456789012
。RECOMMENDATION_ID
:建议的唯一标识符。此值显示在建议的name
字段末尾。例如,如果name
字段为projects/example-project/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f
,则建议 ID 为fb927dc1-9695-4436-0000-f0f285007c0f
。ETAG
:建议中etag
字段的值,例如"dd0686e7136a4cbb"
。使用反斜杠可转义引号,例如"\"df7308cca9719dcc\""
。STATE_METADATA
:可选。包含键值对的对象,其中包含您对建议所选择的元数据。例如{"reviewedBy": "alice", "priority": "high"}
。元数据会替换建议中的stateInfo.stateMetadata
字段。PROJECT_ID
:您的 Google Cloud 项目 ID。项目 ID 是字母数字字符串,例如my-project
。
HTTP 方法和网址:
POST https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/recommenders/google.iam.policy.Recommender/recommendations/RECOMMENDATION_ID:markFailed
请求 JSON 正文:
{ "etag": "ETAG", "stateMetadata": { "STATE_METADATA" } }
如需发送您的请求,请展开以下选项之一:
响应会显示
FAILED
状态的建议,如以下示例所示。为清楚起见,此示例省略了大部分字段:{ "description": "This role has not been used during the observation window.", "stateInfo": { "state": "FAILED", "stateMetadata": { "reviewedBy": "alice", "priority": "high" } }, "etag": "\"dd0686e7136a4cbb\"", "recommenderSubtype": "REMOVE_ROLE" }
灰色、无符号:同时属于该主账号当前角色和建议角色的权限。
红色、带减号
:权限属于该主账号的当前角色,但不属于建议角色,因为该主账号在过去 90 天内未使用过这些权限。红色,带加号 服务代理的建议中。
:权限不属于该主账号的当前角色,但属于建议角色。此类权限仅显示在蓝色、带“机器学习”图标 机器学习确定他们将来可能需要这些权限。
:同时属于该主账号当前角色和建议角色的权限,并不是因为主账号在过去 90 天内使用过这些权限,而是因为 Recommender 已通过服务账号的源项目:在其中创建具有模拟权限的服务账号的项目。
此项目中可以模拟的服务账号:当前项目中具有模拟权限的服务账号可以模拟的所有服务账号的列表。
- 确定
associatedInsights
字段中的哪些数据分析是政策数据分析。政策数据分析的数据分析类型为google.iam.policy.insight
。此类型显示在insight
字段中的insightTypes
后面。 - 复制政策数据分析的 ID。该 ID 是
insight
字段中insights/
后面的所有内容。在上述示例中,数据分析 ID 为279ef748-408f-44db-9a4a-1ff8865b9839
。 - 按照说明使用您复制的数据分析 ID 来获取政策数据分析。
- 确定
associatedInsights
字段中的哪些数据分析是横向移动数据分析。横向移动数据分析的数据分析类型为google.iam.policy.LateralMovementInsight
。此类型显示在insight
字段中的insightTypes
后面。 - 复制政策数据分析的 ID。该 ID 是
insight
字段中insights/
后面的所有内容。在上述示例中,数据分析 ID 为279ef748-408f-44db-9a4a-1ff8865b9839
。 - 按照说明使用您复制的数据分析 ID 来获取横向移动数据分析。
- 确定
associatedInsights
字段中的哪些数据分析是政策数据分析。政策数据分析的数据分析类型为google.iam.policy.insight
。此类型显示在insight
字段中的insightTypes
后面。 - 复制政策数据分析的 ID。该 ID 是
insight
字段中insights/
后面的所有内容。例如,如果insight
字段显示projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/279ef748-408f-44db-9a4a-1ff8865b9839
,则数据分析 ID 为279ef748-408f-44db-9a4a-1ff8865b9839
。 - 按照说明使用您复制的数据分析 ID 来获取政策数据分析。
- 确定
associatedInsights
字段中的哪些数据分析是横向移动数据分析。横向移动数据分析的数据分析类型为google.iam.policy.LateralMovementInsight
。此类型显示在insight
字段中的insightTypes
后面。 - 复制政策数据分析的 ID。该 ID 是
insight
字段中insights/
后面的所有内容。例如,如果insight
字段显示projects/123456789012/locations/global/insightTypes/google.iam.policy.LateralMovementInsight/insights/13088eec-9573-415f-81a7-46e1a260e860
,则数据分析 ID 为13088eec-9573-415f-81a7-46e1a260e860
。 - 按照说明使用您复制的数据分析 ID 来获取横向移动数据分析。
在 Google Cloud 控制台中,前往 IAM 页面。
选择一个项目、文件夹或组织。
点击屏幕顶部附近的建议历史记录。
Google Cloud 控制台会显示以前针对角色建议所执行操作的列表。
要查看建议的详细信息,请点击
展开箭头。Google Cloud 控制台会显示所执行操作的详细信息,包括执行操作的主账号:
(可选)如有必要,可以还原建议,该操作会撤消对建议的更改,或恢复您已忽略的建议。
如需还原之前应用的建议更改,请点击还原。 Google Cloud 控制台会还原对主账号的角色所做的更改。该建议不再出现在Google Cloud 控制台中。
要恢复已忽略的建议,请点击恢复。该建议会显示在Google Cloud 控制台中的 IAM 页面上。系统不会更改任何角色或权限。
- 详细了解 Recommender。
- 了解如何使用允许政策数据分析。
- 了解如何使用横向移动数据分析。
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭证。
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
所需 IAM 角色
本部分介绍需要哪些 IAM 角色和权限才能使用角色建议。
查看建议
如需获得查看角色建议所需的权限,请让管理员向您授予您要查看其建议的资源(项目、文件夹或组织)的以下 IAM 角色:
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色具有查看角色建议所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需查看角色建议,您需要具备以下权限:
应用和拒绝建议
如需获得查看、应用和拒绝角色建议所需的权限,请让管理员向您授予您要管理其建议的资源(项目、文件夹或组织)的以下 IAM 角色:
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色包含查看、应用和拒绝角色建议所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需查看、应用和拒绝角色建议,您需要拥有以下权限:
查看和应用建议
查看和应用建议的最简单方法是使用Google Cloud 控制台。此外,如果您想要在应用建议时自动创建自定义角色,则必须使用 Google Cloud 控制台。
您还可以使用 Google Cloud CLI 和 Recommender API 查看和应用建议。
控制台
gcloud
查看您的建议:
要列出您的建议,请运行
gcloud recommender recommendations list
命令:gcloud recommender recommendations list \ --location=global \ --recommender=google.iam.policy.Recommender \ --RESOURCE_TYPE=RESOURCE_ID \ --format=json
替换以下值:
响应类似于以下示例。在此示例中,服务账号在过去 90 天内未使用 Compute Admin 角色 (
roles/compute.admin
) 的任何权限。因此,角色建议提议您撤消该角色:[ { "associatedInsights": [ { "insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/279ef748-408f-44db-9a4a-1ff8865b9839" } ], "content": { "operationGroups": [ { "operations": [ { "action": "remove", "path": "/iamPolicy/bindings/*/members/*", "pathFilter": { "/iamPolicy/bindings/*/condition/expression": "", "/iamPolicy/bindings/*/members/*": "serviceAccount:id-1234567890@example-project.iam.gserviceaccount.com", "/iamPolicy/bindings/*/role": "roles/compute.admin" }, "resource": "//cloudresourcemanager.googleapis.com/projects/example-project", "resourceType": "cloudresourcemanager.googleapis.com/Project" } ] } ] }, "description": "This role has not been used during the observation window.", "recommenderSubtype": "REMOVE_ROLE", "etag": "\"770237e2c0decf40\"", "lastRefreshTime": "2020-01-09T06:06:17Z", "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f", "primaryImpact": { "category": "SECURITY", "securityProjection": { "details": { "revokedIamPermissionsCount": 708 } } }, "priority": "P4", "stateInfo": { "state": "ACTIVE" } } ]
仔细查看每项建议,并思考它将如何改变主账号对 Google Cloud 资源的访问权限。如需了解如何使用 gcloud CLI 查看建议,请参阅本页面中的查看建议。
如需应用建议,请执行以下操作:
REST
查看您的建议:
如需列出项目、文件夹或组织的所有可用建议,请使用 Recommender API 的
recommendations.list
方法。在使用任何请求数据之前,请先进行以下替换:
HTTP 方法和网址:
GET https://recommender.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/global/recommenders/google.iam.policy.Recommender/recommendations?pageSize=PAGE_SIZE&pageToken=PAGE_TOKEN&filter=FILTER
如需发送您的请求,请展开以下选项之一:
响应类似于以下示例。在本示例中,项目
example-project
中的服务账号在过去 90 天内未使用 Compute Admin 角色 (roles/compute.admin
) 的任何权限。因此,Recommender 建议您撤消该角色:{ "recommendations": [ "name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/recommendations/fb927dc1-9695-4436-0000-f0f285007c0f", "description": "This role has not been used during the observation window.", "lastRefreshTime": "2020-01-09T06:06:17Z", "primaryImpact": { "category": "SECURITY", "securityProjection": { "details": { "revokedIamPermissionsCount": 708 } } }, "priority": "P4", "content": { "operationGroups": [ { "operations": [ { "action": "remove", "path": "/iamPolicy/bindings/*/members/*", "pathFilter": { "/iamPolicy/bindings/*/condition/expression": "", "/iamPolicy/bindings/*/members/*": "serviceAccount:id-1234567890@example-project.iam.gserviceaccount.com", "/iamPolicy/bindings/*/role": "roles/compute.admin" }, "resource": "//cloudresourcemanager.googleapis.com/projects/example-project", "resourceType": "cloudresourcemanager.googleapis.com/Project" } ] } ] }, "stateInfo": { "state": "ACTIVE" } "etag": "\"770237e2c0decf40\"", "recommenderSubtype": "REMOVE_ROLE", "associatedInsights": [ { "insight": "projects/123456789012/locations/global/insightTypes/google.iam.policy.Insight/insights/279ef748-408f-44db-9a4a-1ff8865b9839" } ] }
仔细查看每项建议,并思考它将如何改变主账号对 Google Cloud 资源的访问权限。如需了解如何通过 REST API 查看建议,请参阅本页面上的查看建议。
如需应用建议,请执行以下操作:
了解建议
每条建议都包含可帮助您了解提出该建议原因的信息。
控制台
为了帮助您了解建议的原因,Google Cloud 控制台会显示主账号的权限使用情况,如与建议关联的政策数据分析报告。例如,Cloud Console 可能显示如下所示的列表:
为了帮助您了解应用建议的影响,Google Cloud 控制台还会显示以不同颜色和符号编码的权限列表。此列表会指出如果您应用建议,主账号的权限将如何变化。例如,Cloud Console 可能显示如下所示的列表:
与每种颜色和符号相关联的权限类型如下所示:
一些建议还与横向移动数据分析相关。横向移动数据分析识别允许一个项目中的服务账号模拟另一个项目中的服务账号的角色。如果建议与横向移动数据分析相关联,则 Google Cloud 控制台还会显示以下内容:
gcloud
如需详细了解建议的各个字段,请参阅
Recommendation
参考文档。如要查看此建议基于的权限使用情况,请查看与建议相关的政策数据分析。这些数据分析在
associatedInsights
字段中列出。如需查看与建议相关的政策数据分析,请执行以下操作:一些建议还与横向移动数据分析相关,此类数据分析用于标识允许一个项目中的服务账号模拟另一个项目中的服务账号的角色。这些数据分析也在
associatedInsights
字段中列出。如需查看与建议相关的横向移动数据分析,请执行以下操作:REST
如需详细了解建议的各个字段,请参阅
Recommendation
参考文档。如要查看此建议基于的权限使用情况,请查看与建议相关的政策数据分析。这些数据分析在
associatedInsights
字段中列出。如需查看与建议相关的政策数据分析,请执行以下操作:一些建议还与横向移动数据分析相关,此类数据分析用于标识允许一个项目中的服务账号模拟另一个项目中的服务账号的角色。这些数据分析也在
associatedInsights
字段中列出。如需查看与建议相关的横向移动数据分析,请执行以下操作:查看、还原和恢复更改
在您应用或忽略项目级角色绑定的建议后,该操作会显示在建议历史记录中。
如需查看建议历史记录,请执行以下操作:
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-07-15。
-
Role Viewer (