每当 GCP 机密接近其到期日期时,它都会在 Secret Manager 机密资源中创建到期日志,如此处所述。它指出可以创建 基于日志的指标并使用它们为即将到期的警报创建警报。但是基于日志的指标没有为此提供过滤器。如何实现?
3 回答
创建基于日志的指标的最简单方法是从日志资源管理器页面。您可以使用如下查询来查找密钥将在 1 小时内到期的所有日志消息:
resource.type="secretmanager.googleapis.com/Secret"
jsonPayload.type="EXPIRES_IN_1_HOUR"
如Secret Manager 过期文档中所述,您可以订阅其他事件类型,包括:
EXPIRES_IN_30_DAYS
EXPIRES_IN_7_DAYS
EXPIRES_IN_1_DAY
EXPIRES_IN_6_HOURS
EXPIRES_IN_1_HOUR
EXPIRED
然后,从“操作”菜单中,选择“创建指标”:
指标类型应为“计数器”。您可以提供任何您想要的名称和描述。单位应该是无单位的 (1)。
您可以选择添加标签。例如,如果您想使用密钥名称标记指标,您可以添加一个名为“secret”的标签以针对该jsonPayload.name
字段。如果你想获得额外的花哨,你可以projects/.../secrets
使用正则表达式提取器去除前导前缀,如projects/.+/secrets/(.+)
.
创建指标后,您可以在 Monitoring -> Alerting -> Create Policy 下创建警报。选择您的指标的名称(它将是 logging.googleapis.com/user/NAME_YOU_CHOSE)。
将对齐器设置为计数,将聚合器设置为求和,然后将条件设置为大于 1。
您需要配置通知通道才能真正收到警报,但您也可以在 Web UI 中观看警报触发。
要查看 Secret 的过期日志,请在 Logs Explorer 中使用以下日志查询,
severity=NOTICE
jsonPayload.type: "EXPIRE"
然后我们可以在这个过滤器上创建一个用户定义的指标,按照以下步骤创建计数器类型的基于日志的指标:
转到日志记录 > 基于日志的指标页面
单击创建度量,选择度量类型为“计数器”并填写名称、描述和单位(可以留空)。
在构建过滤器列中使用以下查询,
severity=NOTICE jsonPayload.type: "EXPIRE"
单击创建度量。有关更多信息,请参阅创建计数器指标。
创建用户定义的指标后,我们现在根据我们所需的违规规则在上述指标上创建警报,按照以下步骤在基于日志的计数器指标上创建警报策略:
- 转至日志记录 > 基于日志的指标页面。
- 找到您要探索的指标,然后在指标的更多菜单中选择从指标创建警报。条件窗格打开
- 在 Target 对话框中,Metric 字段会自动填充用户定义的指标,然后我们可以对每个字段进行所需的修改,然后单击 Save 并单击 Next。
- 在通知渠道中,我们提供了许多渠道,例如邮件、短信、Cloud Pub/Sub..等,我们可以从中选择自己喜欢的渠道。
- 接下来,在警报名称列中为策略命名,单击保存。有关详细信息,请参阅针对计数器指标创建警报策略。
我使用我的邮件 ID 作为通知渠道实施了上述步骤,并且能够毫无问题地查看警报。