近期更改建议

近期更改建议会自动标记最近根据使用情况和其他信号确定为重要云资源的风险性更改,以帮助检测和缓解因此类重要云资源配置错误而导致的问题,例如服务中断。例如,如果您删除了某个频繁使用的项目,则最近的更改建议可以主动发出与给定更改相关的风险警告,从而帮助您识别意外问题。

范围

近期更改建议仅支持下表中列出的资源和操作。

资源 操作 建议范围/级别 界面 用于确定资源重要性的标准
项目 删除 组织
  • Google Cloud CLI
  • Recommender API
  • Cloud Logging(选择启用)
  • 项目使用情况(API 调用次数、网络流量和 Google Cloud 服务使用情况)
  • 结算
  • 过去 30 天内的使用情况
  • 服务账号 删除 项目
  • Google Cloud CLI
  • Recommender API
  • Cloud Logging(选择启用)
  • 身份验证次数
  • 过去 90 天内的使用情况
  • 如需就此功能的整体情况提供反馈或请求您希望未来版本支持的其他资源和操作,请参阅问题排查、反馈和支持

    准备工作

    1. 在单个结算项目上启用 Recommender API。然后,您可以使用此结算项目和 gcloud/API 的结算项目功能检索其他项目、整个组织或结算账号的建议和数据分析。

    2. 向将用于访问此功能的用户或服务账号授予权限。

    权限

    如需查看近期更改建议所给出的建议,您必须拥有近期更改 Recommender 的特定权限。

    • recommender.cloudRecentChangeRecommendations.get
    • recommender.cloudRecentChangeRecommendations.list
    • recommender.cloudRecentChangeInsights.get
    • recommender.cloudRecentChangeInsights.list

    您还可以授予 roles/recommender.viewer 角色,以涵盖这些权限。

    查看近期更改建议

    以下部分介绍了如何查看受支持操作的近期更改建议。

    项目删除

    API

    • ListRecommendation:

      curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "x-goog-user-project: PROJECT_ID " \
      "https://recommender.googleapis.com/v1/organizations/ORGANIZATION_ID /locations/global/\
      recommenders/google.cloud.RecentChangeRecommender/recommendations"
      

      替换以下内容:

      • PROJECT_ID :已启用 Recommender API 的项目的 ID。
      • ORGANIZATION_ID :您要查看近期更改风险建议的组织的 ID。
    • ListInsight:

      curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "x-goog-user-project: PROJECT_ID " \
      "https://recommender.googleapis.com/v1/organizations/ORGANIZATION_ID /locations/global/insightTypes/google.cloud.RecentChangeInsight/insights"
      

      替换以下内容:

      • PROJECT_ID :已启用 Recommender API 的项目的 ID。
      • ORGANIZATION_ID :您要查看近期更改风险建议的组织的 ID。

    Google Cloud CLI

    • ListRecommendation:

      gcloud recommender recommendations list --recommender=google.cloud.RecentChangeRecommender \
        --organization=ORGANIZATION_ID  --location=global --format=yaml
      

      替换以下内容:

      • ORGANIZATION_ID :您要查看近期更改风险建议的组织的 ID。
    • ListInsight

      gcloud recommender insights list --insight-type=google.cloud.RecentChangeInsight \
        --organization=ORGANIZATION_ID  --location=global --format=yaml
      

      替换以下内容:

      • ORGANIZATION_ID :您要查看近期更改风险建议的组织的 ID。

    删除服务账号

    API

    • ListRecommendation:

      curl -H "Authorization: Bearer $(gcloud auth print-access-token)"\
      "https://recommender.googleapis.com/v1/projects/PROJECT_ID /locations/global/\
      recommenders/google.cloud.RecentChangeRecommender/recommendations"
      

      替换以下内容:

      • PROJECT_ID :已启用 Recommender API 的项目的 ID。
    • ListInsight:

      curl -H "Authorization: Bearer $(gcloud auth print-access-token)"\
      -H "x-goog-user-project: BILLING_PROJECT_ID "\
      "https://recommender.googleapis.com/v1/projects/PROJECT_ID /locations/global/insightTypes/google.cloud.RecentChangeInsight/insights"
      

      替换以下内容:

      • PROJECT_ID :已启用 Recommender API 的项目的 ID。
      • BILLING_PROJECT_ID :结算项目 ID。

    Google Cloud CLI

    • ListRecommendation:

      gcloud recommender recommendations list --recommender=google.cloud.RecentChangeRecommender \
        --project=PROJECT_ID  --location=global --format=yaml
      

      替换以下内容:

      • PROJECT_ID :已启用 Recommender API 的项目的 ID。
    • ListInsight

      gcloud recommender insights list --insight-type=google.cloud.RecentChangeInsight \
        --project=PROJECT_ID  --location=global --format=yaml
      

      替换以下内容:

      • PROJECT_ID :已启用 Recommender API 的项目的 ID。

    了解响应

    下表介绍了建议和数据分析对象中存在的字段。

    建议

    字段名称 类型 说明
    associatedInsights 字符串 与此建议关联的数据分析。
    asset 对象 包含关联资源的资产名称和资产类型。
    etag 字符串 RecommenderConfig 的指纹。在更新时提供乐观锁。
    lastRefreshTime 字符串 上次更新建议时的时间戳。
    时间戳采用 RFC 3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒。例如:"2022-01-10T22:47:38.421626Z"。

    数据分析

    字段名称 类型 说明
    associatedRecommendations 字符串 与此建议相关的建议。
    projects/[project_number]/locations/global/recommenders/google.cloud.RecentChangeRecommender/recommendations/[recommendation_id]
    importance 对象 包含我们认为该资源重要的原因。
    risk 对象 包含一些与发现资源重要性相关的其他数据。
    lastRefreshTime 字符串 上次更新建议时的时间戳。
    时间戳采用 RFC 3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒。例如:"2022-01-10T22:47:38.421626Z"。

    记录最近的更改建议

    (可选)您可以使用 Cloud Logging 在出现新的最近更改建议时创建日志。请注意,这些日志是平台日志,因此需要支付额外费用。默认情况下,日志记录功能处于关闭状态。您必须使用 Recommender 配置启用日志记录才能生成日志。

    建议类型 日志记录范围
    删除风险性项目 组织级层
    删除有风险的服务账号 项目级

    建议的日志记录范围对应于建议范围。您可以单独为组织或项目启用日志记录。对于此功能,建议日志记录配置不会从组织沿用到项目。如需生成服务账号删除建议日志记录,您必须为相应的项目启用日志记录。

    如需查看 Cloud Logging(如果已启用),您需要日志查看器权限。

    日志记录配置

    如需查看和更新 Recommender 配置,您必须具有以下权限:

    • recommender.cloudRecentChangeRecommenderConfig.get
    • recommender.cloudRecentChangeRecommenderConfig.list
    • recommender.cloudRecentChangeRecommenderConfig.update

    启用日志记录

    可以使用 --project 标志为项目启用日志记录,或者可以使用 --organization 标志为组织启用日志记录。以下示例展示了如何为项目启用日志记录。

    1. 检查 recommenderGenerationConfig 中的 enable_creation_logs 参数:

      gcloud recommender recommender-config describe google.cloud.RecentChangeRecommender \
        --project=PROJECT_ID  --location=global
      

      替换以下内容:

      • PROJECT_ID :已启用 Recommender API 的项目的 ID。

      输出类似于以下内容:

      <pre class="console">
      etag: '"******"'
      recommenderGenerationConfig:
        params:
          enable_creation_logs: false
      …
      </pre>
      
    2. 创建一个包含以下行的 config.txt 文件:

      {
        "params": {
          "enable_creation_logs": true
        }
      }
      
    3. 更新参数:

      gcloud recommender recommender-config update google.cloud.RecentChangeRecommender \
        --project=PROJECT_ID  --location=global --config-file=config.txt \
        --etag="ETAG "
      

      替换以下内容:

      • PROJECT_ID :已启用 Recommender API 的项目的 ID。
      • ETAG :其中 ETAG 是上一个 describe 命令的值。

    问题排查、反馈和支持

    如果出现技术问题或希望提供反馈,请发送电子邮件至 active-assist-feedback@google.com。