使用 Pub/Sub 监控状态变化

本页介绍了如何使用 Pub/Sub 创建 Cloud KMS 资源状态更改通知。

准备工作

如需启用 API、授予必要权限并创建 Pub/Sub, 请按照准备工作 开始 “监控资产变化”。

配置 Feed

配置 Feed,以监控您要进行的更改和 。

针对所有资源更改发送通知

如需创建 Feed,请使用 gcloud asset feeds create 命令。

gcloud asset feeds create FEED_NAME \
  --project=PROJECT_ID  \
  --asset-types="RESOURCE_TYPE" \
  --pubsub-topic="PUBSUB_TOPIC"

替换以下内容:

  • FEED_NAME:用于 Pub/Sub 的名称 Feed。
  • PROJECT_ID:您要创建的 Cloud KMS 项目的 ID 监控指标
  • RESOURCE_TYPE:您要关联的资源类型 接收通知。在资源类型之间使用英文逗号,例如 cloudkms.googleapis.com/CryptoKey,cloudkms.googleapis.com/CryptoKeyVersion。您可以通过任何 支持的资源 type、 包括:

    • cloudkms.googleapis.com/CryptoKey
    • cloudkms.googleapis.com/CryptoKeyVersion
    • cloudkms.googleapis.com/EkmConnection
    • cloudkms.googleapis.com/ImportJob
    • cloudkms.googleapis.com/KeyRing
  • PUBSUB_TOPIC:Pub/Sub 主题的名称 您在准备工作中创建的

这会在创建或更新指定类型的资源时创建通知。该通知会指明资源已更新,但不包含有关更新的详细信息。例如,一项更新 针对 CryptoKeyVersion 的通知可能表示相应版本已设为主要版本或 该版本已安排销毁。收到资源已更新的通知后,您应检查该资源以了解其当前状态。

针对特定资源更改发送通知

如需创建带有条件的 Feed,请使用带有 --condition-expression 标志的 gcloud asset feeds create 命令。

gcloud asset feeds create FEED_NAME \
  --project=PROJECT_ID  \
  --asset-types="RESOURCE_TYPE" \
  --pubsub-topic="PUBSUB_TOPIC" \
  --condition-expression="CONDITION_EXPRESSION"

替换以下内容:

  • FEED_NAME:用于 Pub/Sub 的名称 Feed。
  • PROJECT_ID:Cloud KMS 项目的 ID。
  • RESOURCE_TYPE:您要迁移的资源类型 接收通知(例如, cloudkms.googleapis.com/CryptoKeyVersion。您可以针对任何受支持的资源类型发送通知,包括:

    • cloudkms.googleapis.com/CryptoKey
    • cloudkms.googleapis.com/CryptoKeyVersion
    • cloudkms.googleapis.com/EkmConnection
    • cloudkms.googleapis.com/ImportJob
    • cloudkms.googleapis.com/KeyRing
  • PUBSUB_TOPIC:您在开始前准备工作部分创建的 Pub/Sub 主题的名称

  • CONDITION_EXPRESSION通用表达式语言 (CEL) 中的条件表达式。例如,"folders/FOLDER_NUMBER" in temporal_asset.asset.ancestors 会导致 Feed 仅在指定资源位于文件夹 FOLDER_NUMBER 中时创建通知。

当与指定条件表达式匹配的指定类型的资源被创建、删除或更新时,此规则会创建通知。