使用 Amazon CloudWatch 监控计划删除的 Amazon Secrets Manager 密钥 - Amazon Secrets Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Amazon CloudWatch 监控计划删除的 Amazon Secrets Manager 密钥

您可以结合使用 Amazon CloudTrail、Amazon CloudWatch Logs 和 Amazon Simple Notification Service (Amazon SNS) 来创建告警,对待删除密钥做出的任何访问尝试,该告警会向您发送通知。如果您收到告警的通知,您可能需要取消删除密钥,以给自己更多时间来确定是否确实要将其删除。您的调查可能会导致密钥被恢复,因为您仍然需要它。或者,您可能需要使用所用的新密钥的详细信息来更新用户。

以下过程将说明如何在产生特定错误消息的 GetSecretValue 操作的请求写入您的 CloudTrail 日志文件时收到通知。可以对密钥执行其他 API 操作而不会触发告警。此 CloudWatch 告警检测可能表明某个人或应用程序在使用过时凭证的使用情况。

在您开始这些过程前,必须在打算监控其中的 Amazon Secrets ManagerAPI 请求的 Amazon Web Services 区域 和账户中启用 CloudTrail。有关说明,请参阅 Amazon CloudTrail 《用户指南》中的首次创建跟踪

步骤 1:将 CloudTrail 日志文件配置为发送到 CloudWatch Logs

您必须将 CloudTrail 日志文件配置为发送到 CloudWatch Logs。此步骤的目的是,CloudWatch Logs 可以针对 Secrets Manager API 请求监控这些日志文件,以检索待删除的密钥。

要配置 CloudTrail 日志文件交付到 CloudWatch Logs 的步骤
  1. 访问 https://console.aws.amazon.com/cloudtrail/,打开 CloudTrail 控制台。

  2. 在顶部导航栏上,选择 Amazon 区域以监控密钥。

  3. 在左侧导航窗格中,选择跟踪,然后选择要为 CloudWatch 配置的跟踪名称。

  4. 跟踪配置页面上,向下滚动到 CloudWatch Logs 部分,然后选择编辑图标 ( )。

  5. 对于 New or existing log group (新的或现有的日志组),键入日志组的名称,例如 CloudTrail/MyCloudWatchLogGroup

  6. 对于 IAM role (IAM 角色),您可以使用名为 CloudTrail_CloudWatchLogs_Role 的默认角色。该角色具有默认角色策略,其中包含将 CloudTrail 事件传送到日志组所需的权限。

  7. 选择 Continue (继续) 以保存您的配置。

  8. Amazon CloudTrail 将与帐户中的 API 活动关联的 CloudTrail 事件传递到 CloudWatch Logs 日志组页面上,选择允许

步骤 2:创建 CloudWatch 告警

要在 Secrets Manager GetSecretValue API 操作请求访问待删除密钥时收到通知,您必须创建 CloudWatch 告警并配置通知。

创建 CloudWatch 警报
  1. 登录到 CloudWatch 控制台:https://console.aws.amazon.com/cloudwatch/

  2. 在顶部导航栏中,选择要监控密钥的 Amazon 区域。

  3. 在左侧导航窗格中,选择 Logs

  4. Log Groups (日志组) 列表中,选中您在上一个过程中创建的日志组(如 CloudTrail/MyCloudWatchLogGroup)旁边的复选框。选择创建指标筛选器

  5. 对于筛选模式,键入或粘贴以下内容:

    { $.eventName = "GetSecretValue" && $.errorMessage = "*secret because it was marked for deletion*" }

    选择 Assign Metric (分配指标)

  6. Create Metric Filter and Assign a Metric 页面上,执行以下操作:

    1. 对于 Metric Namespace (指标命名空间),键入 CloudTrailLogMetrics

    2. 对于 Metric Name(指标名称),键入 AttemptsToAccessDeletedSecrets

    3. 选择显示高级指标设置,如有必要,再为 Metric Value (指标值) 键入 1

    4. 选择 Create Filter

  7. 在筛选器框中,选择 Create Alarm

  8. Create Alarm 窗口中,执行以下操作:

    1. 对于名称,键入 AttemptsToAccessDeletedSecretsAlarm

    2. Whenever: (每当:) 下,为 is: (是:) 选择 >= 并键入 1

    3. Send notification to: 旁,执行以下操作之一:

      • 要创建并使用新的 Amazon SNS 主题,请选择新建列表,然后键入新主题的名称。对于 Email list:,键入至少一个电子邮件地址。您可以键入多个电子邮件地址,并使用逗号将它们隔开。

      • 要使用现有 Amazon SNS 主题,请选择要使用的主题的名称。如果列表不存在,请选择 Select list (选择列表)

    4. 选择 Create Alarm(创建告警)

步骤 3:测试 CloudWatch 告警

要测试告警,请创建密钥,并计划将其删除。然后,尝试检索密钥值。您在告警中配置的地址很快会收到一封电子邮件。它提醒您注意计划删除的密钥的使用情况。