使用 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。您可以针对任何受支持的资源类型发送通知,包括以下资源类型:

    • 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 中时才创建通知。

这样,当创建、删除或更新指定类型的与指定条件表达式匹配的资源时,系统就会创建通知。