如何配置GCP资产订阅监控指定密钥环的密钥轮换?
如何配置Cloud Asset Feed过滤指定密钥环的密钥轮换事件
正确的创建命令
gcloud asset feeds create test-feed \ --project=PROJECT-ID \ --asset-types="cloudkms.googleapis.com/CryptoKeyVersion" \ --pubsub-topic="projects/{Project}/topics/{Topic}" \ --condition-expression="starts_with(asset.name, '//cloudkms.googleapis.com/projects/{project-id}/locations/global/keyRings/{key-ring-name}/cryptoKeys/') && priorAssetState == 'DOES_NOT_EXIST'"
原命令的问题解析
- 路径匹配方式错误:原命令用
==匹配带*的路径,不符合Cloud Asset Inventory条件表达式语法。需用starts_with函数匹配指定密钥环下的所有密钥版本路径,精准限定监控范围。 - 错误引用不存在的字段:你提供的Payload里没有
eventType字段,密钥轮换的核心特征是新CryptoKeyVersion创建,对应priorAssetState字段值为DOES_NOT_EXIST,这才是有效的过滤条件。
基于Payload的逻辑说明
从你给出的密钥轮换消息Payload可以明确:
- 新生成的密钥版本的
asset.name会以目标密钥环的路径为前缀,用starts_with可精准锁定目标范围 priorAssetState为DOES_NOT_EXIST直接对应新密钥版本的创建事件,也就是密钥轮换触发的核心动作
条件表达式语法要点
- 字段直接引用(无需加单引号),如
asset.name、priorAssetState - 字符串常量需要用单引号包裹
- 支持的匹配函数包括
starts_with、matches(正则匹配)、contains等,可根据需求选择
内容的提问来源于stack exchange,提问作者Julia A.Nguyen
相关产品推荐
相关产品推荐

