监控计划删除的 AWS Secrets Manager 密钥何时被访问 - AWS Secrets Manager

监控计划删除的 AWS Secrets Manager 密钥何时被访问

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

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

开始这些过程之前,必须在打算监控 AWS Secrets Manager API 请求的 AWS 区域 和账户中启用 CloudTrail。有关说明,请参阅 AWS 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. 在顶部导航栏上,选择 AWS 区域 以监控密钥。

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

  4. 跟踪配置页面上,向下滚动到 CloudWatch Logs 部分,然后选择编辑图标 ( Remote control icon with power, volume, and channel buttons. )。

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

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

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

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

步骤 2:创建 CloudWatch 告警

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

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

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

  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. 选择创建警报

步骤 3:测试 CloudWatch 告警

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