通过更改 IAM Recommender 配置,您可以自定义角色建议的生成方式。本页介绍了如何修改配置,以更改为项目生成建议的速度。
虽然 IAM Recommender 会为各种资源生成角色建议,但您只能修改为项目生成角色建议的方式。
准备工作
-
Enable the Recommender API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. - 了解 IAM Recommender 如何生成角色建议。
- 安装 Google Cloud CLI。
所需的角色
如需获得配置 IAM 角色建议所需的权限,请让管理员向您授予您要配置其 IAM 推荐器的项目的以下 IAM 角色:
- 查看配置详细信息: IAM Recommender 查看者 (roles/recommender.iamViewer)
- 修改配置: IAM Recommender 管理员 (roles/recommender.iamAdmin)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色包含配置 IAM 角色建议所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
必须拥有以下权限才能配置 IAM 角色建议:
-
查看配置详细信息:
recommender.iamPolicyRecommenderConfig.get -
修改配置:
recommender.iamPolicyRecommenderConfig.update
查看当前配置
查看当前配置,了解 IAM Recommender 在生成角色建议之前会等待多少天的权限使用情况数据。
您可以使用 gcloud CLI 或 REST API 查看配置。
gcloud
如需获取项目的 IAM 建议器配置,请使用 gcloud beta recommender recommender-config describe 命令。
在使用下面的命令数据之前,请先进行以下替换:
PROJECT_ID:您的 Google Cloud 项目 ID。项目 ID 是字母数字字符串,例如my-project。
执行 gcloud beta recommender recommender-config describe 命令:
Linux、macOS 或 Cloud Shell
gcloud beta recommender recommender-config describe \ google.iam.policy.Recommender \ --project="PROJECT_ID" \ --location="global"
Windows (PowerShell)
gcloud beta recommender recommender-config describe ` google.iam.policy.Recommender ` --project="PROJECT_ID" ` --location="global"
Windows (cmd.exe)
gcloud beta recommender recommender-config describe ^ google.iam.policy.Recommender ^ --project="PROJECT_ID" ^ --location="global"
响应内容包含项目的 IAM 建议器配置。例如,它可能如下所示:
etag: '"d3e779ee3f34f276"'
name: projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/config
recommenderGenerationConfig:
params:
minimum_observation_period: P90D
revisionId: DEFAULT
updateTime: '2022-10-02T22:57:33Z'
REST
如需获取项目的 IAM 建议器配置,请使用 Recommender API 的 projects.locations.recommenders.getConfig 方法。
在使用任何请求数据之前,请先进行以下替换:
PROJECT_NUMBER:您的 Google Cloud 项目的数字 ID。PROJECT_ID:您的 Google Cloud 项目 ID。项目 ID 是字母数字字符串,例如my-project。
HTTP 方法和网址:
GET https://recommender.googleapis.com/v1beta1/projects/PROJECT_NUMBER/locations/global/recommenders/google.iam.policy.Recommender/config
如需发送您的请求,请展开以下选项之一:
响应内容包含项目的 IAM 建议器配置。例如,它可能如下所示:
{
"name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/config",
"recommenderGenerationConfig": {
"params": {
"minimum_observation_period": "P90D"
}
},
"etag": "\"d3e779ee3f34f276\"",
"updateTime": "2022-10-02T22:57:33Z",
"revisionId": "DEFAULT"
}
了解配置详情
配置的内容取决于配置所针对的推荐器。IAM 建议器配置包含以下组成部分(不一定遵循以下顺序):
name:配置的标识符,格式为projects/PROJECT_NUMBER/locations/global/recommenders/google.iam.policy.Recommender/config。recommenderGenerationConfig:IAM Recommender 在生成建议时使用的参数。此字段包含以下参数:minimum_observation_period:IAM Recommender 需要的权限使用情况数据天数,才能开始生成角色建议。
etag:配置当前状态的标识符,用于防止并发更新。每次配置发生更改时,系统都会分配新的 ETag 值。updateTime:配置最近一次更新的时间戳,采用 UTC 格式 (RFC 3339)。revisionId:仅输出。配置的当前修订版本的标识符。每次修改配置时,此值都会更新。
修改配置
您可以修改配置,以更改为项目生成建议的速度。
gcloud
如需修改项目的 IAM 建议器配置,请使用 gcloud beta recommender recommender-config update 命令。
在使用下面的命令数据之前,请先进行以下替换:
-
OBSERVATION_PERIOD:您要设置的最短观测期。 请使用以下某个值:P30D(30 天)、P60D(60 天)或P90D(90 天)。 -
ETAG:配置的当前 ETag,您可以通过获取当前配置并复制响应的etag字段的值来找到该 ETag。 PROJECT_ID:您的 Google Cloud 项目 ID。项目 ID 是字母数字字符串,例如my-project。
将以下内容保存在名为 request.json 的文件中:
{ "params": { "minimum_observation_period": "OBSERVATION_PERIOD" } }
执行 gcloud beta recommender recommender-config update 命令:
Linux、macOS 或 Cloud Shell
gcloud beta recommender recommender-config update \ google.iam.policy.Recommender \ --etag="ETAG" \ --project="PROJECT_ID" \ --location="global" \ --config-file="request.json"
Windows (PowerShell)
gcloud beta recommender recommender-config update ` google.iam.policy.Recommender ` --etag="ETAG" ` --project="PROJECT_ID" ` --location="global" ` --config-file="request.json"
Windows (cmd.exe)
gcloud beta recommender recommender-config update ^ google.iam.policy.Recommender ^ --etag="ETAG" ^ --project="PROJECT_ID" ^ --location="global" ^ --config-file="request.json"
响应中包含更新后的配置。例如,它可能如下所示:
etag: '"2549af0942332910"'
name: projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/config
recommenderGenerationConfig:
params:
minimum_observation_period: P60D
revisionId: 288c60eb
updateTime: '2022-10-05T21:42:21.069170Z'
REST
如需修改项目的 IAM 建议器配置,请使用 Recommender API 的 projects.locations.recommenders.updateConfig 方法。
在使用任何请求数据之前,请先进行以下替换:
PROJECT_NUMBER:您的 Google Cloud 项目的数字 ID。-
OBSERVATION_PERIOD:您要设置的最短观测期。 请使用以下某个值:P30D(30 天)、P60D(60 天)或P90D(90 天)。 -
ETAG:配置的当前 ETag,您可以通过获取当前配置并复制响应的etag字段的值来找到该值。使用反斜杠可转义引号,例如"\"df7308cca9719dcc\""。 PROJECT_ID:您的 Google Cloud 项目 ID。项目 ID 是字母数字字符串,例如my-project。
HTTP 方法和网址:
PATCH https://recommender.googleapis.com/v1beta1/projects/PROJECT_NUMBER/locations/global/recommenders/google.iam.policy.Recommender/config
请求 JSON 正文:
{
"name": "projects/PROJECT_NUMBER/locations/global/recommenders/google.iam.policy.Recommender/config",
"recommenderGenerationConfig": {
"params": {
"minimum_observation_period": "OBSERVATION_PERIOD"
}
},
"etag": "ETAG"
}
如需发送您的请求,请展开以下选项之一:
响应中包含更新后的配置。例如,它可能如下所示:
{
"name": "projects/123456789012/locations/global/recommenders/google.iam.policy.Recommender/config",
"recommenderGenerationConfig": {
"params": {
"minimum_observation_period": "P60D"
}
},
"etag": "\"2549af0942332910\"",
"updateTime": "2022-10-05T21:26:52.127512Z",
"revisionId": "b5fc0053"
}