监控计划删除的 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 的步骤
-
访问 https://console.aws.amazon.com/cloudtrail/
,打开 CloudTrail 控制台。 -
在顶部导航栏上,选择 AWS 区域 以监控密钥。
-
在左侧导航窗格中,选择跟踪,然后选择要为 CloudWatch 配置的跟踪名称。
-
在跟踪配置页面上,向下滚动到 CloudWatch Logs 部分,然后选择编辑图标 ( )。
-
对于 New or existing log group (新的或现有的日志组),键入日志组的名称,例如
CloudTrail/MyCloudWatchLogGroup
。 -
对于 IAM role (IAM 角色),您可以使用名为 CloudTrail_CloudWatchLogs_Role 的默认角色。该角色具有默认角色策略,其中包含将 CloudTrail 事件传送到日志组所需的权限。
-
选择 Continue (继续) 以保存您的配置。
-
在 AWS CloudTrail 将与帐户中的 API 活动关联的 CloudTrail 事件传递到 CloudWatch Logs 日志组页面上,选择允许。
步骤 2:创建 CloudWatch 告警
要在 Secrets Manager GetSecretValue
API 操作请求访问待删除密钥时收到通知,您必须创建 CloudWatch 告警并配置通知。
创建 CloudWatch 警报
-
登录到 CloudWatch 控制台:https://console.aws.amazon.com/cloudwatch/
。 -
在顶部导航栏中,选择要监控密钥的 AWS 区域。
-
在左侧导航窗格中,选择 Logs。
-
在 Log Groups (日志组) 列表中,选中您在上一个过程中创建的日志组(如 CloudTrail/MyCloudWatchLogGroup)旁边的复选框。选择创建指标筛选器。
-
对于筛选模式,键入或粘贴以下内容:
{ $.eventName = "GetSecretValue" && $.errorMessage = "*secret because it was marked for deletion*" }
选择 Assign Metric (分配指标)。
-
在 Create Metric Filter and Assign a Metric 页面上,执行以下操作:
-
对于 Metric Namespace (指标命名空间),键入
CloudTrailLogMetrics
。 -
对于 Metric Name(指标名称),键入
AttemptsToAccessDeletedSecrets
。 -
选择显示高级指标设置,如有必要,再为 Metric Value (指标值) 键入
1
。 -
选择 Create Filter。
-
-
在筛选器框中,选择 Create Alarm。
-
在 Create Alarm 窗口中,执行以下操作:
-
对于名称,键入
AttemptsToAccessDeletedSecretsAlarm
。 -
在 Whenever: (每当:) 下,为 is: (是:) 选择 >= 并键入
1
。 -
在 Send notification to: 旁,执行以下操作之一:
-
要创建并使用新的 Amazon SNS 主题,请选择新建列表,然后键入新主题的名称。对于 Email list:,键入至少一个电子邮件地址。您可以键入多个电子邮件地址,并使用逗号将它们隔开。
-
要使用现有 Amazon SNS 主题,请选择要使用的主题的名称。如果列表不存在,请选择 Select list (选择列表)。
-
-
选择创建警报。
-
步骤 3:测试 CloudWatch 告警
要测试告警,请创建密钥,并计划将其删除。然后,尝试检索密钥值。您在告警中配置的地址很快会收到一封电子邮件。它提醒您注意计划删除的密钥的使用情况。