

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

# 监控计划删除的 Amazon Secrets Manager 密钥何时被访问
<a name="monitoring_cloudwatch_deleted-secrets"></a>

您可以结合使用 Amazon CloudWatch 日志和亚马逊简单通知服务 (Amazon SNS) Simple Notification Service 来创建警报，通知您任何试图访问待删除的密钥的行为。 Amazon CloudTrail如果您收到告警的通知，您可能需要取消删除密钥，以给自己更多时间来确定是否确实要将其删除。您的调查可能会导致密钥被恢复，因为您仍然需要它。或者，您可能需要使用所用的新密钥的详细信息来更新用户。

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

在开始这些过程之前，您必须在要监控 Amazon Secrets Manager API 请求的 Amazon Web Services 区域 和账户 CloudTrail 中开启。有关说明，请参阅 *Amazon CloudTrail 《用户指南》*中的[首次创建跟踪](https://docs.amazonaws.cn/awscloudtrail/latest/userguide/cloudtrail-create-a-trail-using-the-console-first-time.html)。

## 步骤 1：配置 CloudTrail 日志文件传输到 CloudWatch 日志
<a name="monitoring_cloudwatch_deleted-secrets_part1"></a>

您必须配置将 CloudTrail 日志文件传送到 CloudWatch 日志。这样做是为了让 CloudWatch Logs 可以监控它们是否有 Secrets Manager API 请求以检索待删除的密钥。

**配置 CloudTrail 日志文件传输到 CloudWatch 日志**

1. 打开 CloudTrail 控制台，网址为[https://console.aws.amazon.com/cloudtrail/](https://console.amazonaws.cn/cloudtrail/)。

1. 在顶部导航栏上，选择 Amazon Web Services 区域 要监控密钥。

1. 在左侧导航窗格中，选择 Tra **il** s，然后选择要为其配置的跟踪的名称 CloudWatch。

1. 在 T **rails 配置**页面上，向下滚动到 “**CloudWatch 日志**” 部分，然后选择编辑图标 (![\[Remote control icon with power, volume, and channel buttons.\]](http://docs.amazonaws.cn/secretsmanager/latest/userguide/images/edit-pencil-icon.png))。

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

1. 对于 **IAM 角色**，您可以使用名为 **CloudTrail\$1 CloudWatchLogs \$1Role 的默认角色**。此角色具有默认角色策略，该策略具有向日志组传送 CloudTrail 事件所需的权限。

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

1. 在**Amazon CloudTrail 将与您账户中 API 活动关联 CloudTrail 的事件发送到 CloudWatch 日志日志组**页面上，选择**允许**。

## 步骤 2：创建 CloudWatch 警报
<a name="monitoring_cloudwatch_deleted-secrets_part2"></a>

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

**创建 CloudWatch 警报**

1. 登录 CloudWatch 控制台，网址为[https://console.aws.amazon.com/cloudwatch/](https://console.amazonaws.cn/cloudwatch/)。

1. 在顶部导航栏上，选择要监控密钥的 Amazon 区域。

1. 在左侧导航窗格中，选择 **Logs**。

1. 在**日志组**列表中，选中您在上一个过程中创建的日志组旁边的复选框，例如 **CloudTrail/MyCloudWatchLogGroup**。选择**创建指标筛选器**。

1. 对于**筛选模式**，键入或粘贴以下内容：

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

   选择 **Assign Metric (分配指标)**。

1. 在 **Create Metric Filter and Assign a Metric** 页面上，执行以下操作：

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

   1. 对于 **Metric Name（指标名称）**，键入 **AttemptsToAccessDeletedSecrets**。

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

   1. 选择 **Create Filter**。

1. 在筛选器框中，选择 **Create Alarm**。

1. 在 **Create Alarm** 窗口中，执行以下操作：

   1. 对于**名称**，键入 **AttemptsToAccessDeletedSecretsAlarm**。

   1.  在 **Whenever: (每当:)** 下，为 **is: (是:)** 选择 **>=** 并键入 **1**。

   1. 在 **Send notification to:** 旁，执行以下操作之一：
      + 要创建并使用新的 Amazon SNS 主题，请选择**新建列表**，然后键入新主题的名称。对于 **Email list:**，键入至少一个电子邮件地址。您可以键入多个电子邮件地址，并使用逗号将它们隔开。
      + 要使用现有 Amazon SNS 主题，请选择要使用的主题的名称。如果列表不存在，请选择 **Select list (选择列表)**。

   1. 选择**创建警报**。

## 第 3 步：测试 CloudWatch 警报
<a name="monitoring_cloudwatch_deleted-secrets_part3"></a>

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