

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

# 监控 AWS Secrets Manager 机密
<a name="monitoring"></a>

AWS 提供监控工具，用于监视 Secrets Manager 的密钥，在出现问题时进行报告，并在适当时自动采取措施。如果您需要调查任何意外的使用或更改，您可以使用日志，并回滚不需要的更改。您还可以设置自动检查不当使用密钥的机制和任何尝试删除密钥的机制。

**Topics**
+ [使用登录 AWS CloudTrail](monitoring-cloudtrail.md)
+ [使用监视器 CloudWatch](monitoring-cloudwatch.md)
+ [将 Secrets Manager 活动与 EventBridge](monitoring-eventbridge.md)
+ [监控计划删除的密钥](monitoring_cloudwatch_deleted-secrets.md)
+ [监控密钥的合规性](configuring-awsconfig-rules.md)
+ [监控 Secrets Manager 成本](monitor-secretsmanager-costs.md)
+ [使用以下方法检测威胁 GuardDuty](monitoring-guardduty.md)

# 使用记录 AWS Secrets Manager 事件 AWS CloudTrail
<a name="monitoring-cloudtrail"></a>

AWS CloudTrail 将 Secrets Manager 的所有 API 调用记录为事件，包括来自 Secrets Manager 控制台的调用，以及其他几个用于轮换和删除密钥版本的事件。有关 Secrets Manager 记录中的日志条目列表，请参阅 [CloudTrail 条目](cloudtrail_log_entries.md)。

您可以使用 CloudTrail 控制台查看最近 90 天记录的事件。要持续记录您的 AWS 账户中的事件，包括 Secrets Manager 的事件，请创建一个跟踪，以便将日志文件 CloudTrail 传输到 Amazon S3 存储桶。请参阅[为您的 AWS 账户创建跟踪](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)。您也可以配置 CloudTrail 为接收来自[多个 AWS 账户](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html)和的 CloudTrail 日志文件[AWS 区域](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html)。

您可以配置其他 AWS 服务，以进一步分析和处理 CloudTrail 日志中收集的数据。查看[与 CloudTrail 日志的AWS 服务集成。](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html#cloudtrail-aws-service-specific-topics-integrations)当您向 Amazon S3 存储桶 CloudTrail 发布新的日志文件时，您还可以收到通知。有关信息，请参阅[配置 Amazon SNS 通知](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/getting_notifications_top_level.html)。 CloudTrail

**从 CloudTrail 日志中检索 Secrets Manager 事件（控制台）**

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

1. 确保控制台指向发生事件的区域。控制台仅显示在所选区域中发生的那些事件。从控制台右上角的下拉列表中选择区域。

1. 在左侧导航窗格中，选择 **Event history (事件历史记录)**。

1. 选择**筛选**条件 and/or 一个**时间范围**，以帮助您找到要查找的事件。例如：

   1. 要查看所有 Secrets Manager 事件，对于**查找属性**，请选择**事件源**。然后，对于 **Enter event source (输入事件源)**，选择 **secretsmanager.amazonaws.com**。

   1. 要查看密钥的所有事件，对于**查找属性**，请选择**资源名称**。然后，对于**输入资源名称**，输入密钥的名称。

1. 要查看更多详细信息，请选择事件旁边的展开箭头。要查看所有可用信息，请选择 **View event (查看事件)**。

## AWS CLI
<a name="monitoring-cloudtrail_cli"></a>

**Example 从 CloudTrail 日志中检索 Secrets Manager 事件**  
以下 [https://docs.aws.amazon.com//cli/latest/reference/cloudtrail/lookup-events.html](https://docs.aws.amazon.com//cli/latest/reference/cloudtrail/lookup-events.html) 示例将查找 Secrets Manager 事件。  

```
aws cloudtrail lookup-events \
    --region us-east-1 \
    --lookup-attributes AttributeKey=EventSource,AttributeValue=secretsmanager.amazonaws.com
```

# AWS CloudTrail Secrets Manager 的参赛作品
<a name="cloudtrail_log_entries"></a>

AWS Secrets Manager 将所有 Secrets Manager 操作以及其他与轮换和删除相关的事件的条目写入您的 AWS CloudTrail 日志。有关对这些事件执行操作的信息，请参阅 [将 Secrets Manager 活动与 EventBridge](monitoring-eventbridge.md)。

**Topics**
+ [Secrets Manager 操作的日志条目](#cloudtrail_log_entries_operations)
+ [有关删除操作的日志条目](#cloudtrail_log_entries_deletion)
+ [可用于复制的日志条目](#cloudtrail_log_entries_replication)
+ [有关轮换操作的日志条目](#cloudtrail_log_entries_rotation)

## Secrets Manager 操作的日志条目
<a name="cloudtrail_log_entries_operations"></a>

通过调用 Secrets Manager 操作生成的事件具有 `"detail-type": ["AWS API Call via CloudTrail"]`。

**注意**  
2024 年 2 月之前，某些 Secrets Manager 操作报告的事件的密钥 ARN 包含“aRN”而不是“arn”。有关更多信息，请参阅 [AWS re:Post](https://repost.aws/knowledge-center/secrets-manager-arn)。

以下是您或服务通过 API、SDK 或 CLI 调用 Secrets Manager 操作时生成的 CloudTrail 条目。

**BatchGetSecretValue**  
由[BatchGetSecretValue](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_BatchGetSecretValue.html)操作生成。有关检索密钥的信息，请参阅 [从中获取秘密 AWS Secrets Manager](retrieving-secrets.md)。

**CancelRotateSecret**  
由[CancelRotateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CancelRotateSecret.html)操作生成。有关轮换的更多信息，请参阅 [轮换 AWS Secrets Manager 秘密](rotating-secrets.md)。

**CreateSecret**  
由[CreateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html)操作生成。有关创建密钥的信息，请参阅 [使用管理密钥 AWS Secrets Manager](managing-secrets.md)。

**DeleteResourcePolicy**  
由[DeleteResourcePolicy](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_DeleteResourcePolicy.html)操作生成。有关权限的信息，请参阅 [的身份验证和访问控制 AWS Secrets Manager](auth-and-access.md)。

**DeleteSecret**  
由[DeleteSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_DeleteSecret.html)操作生成。有关删除密钥的信息，请参阅 [删除密 AWS Secrets Manager 钥](manage_delete-secret.md)。

**DescribeSecret**  
由[DescribeSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_DescribeSecret.html)操作生成。

**GetRandomPassword**  
由[GetRandomPassword](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetRandomPassword.html)操作生成。

**GetResourcePolicy**  
由[GetResourcePolicy](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetResourcePolicy.html)操作生成。有关权限的信息，请参阅 [的身份验证和访问控制 AWS Secrets Manager](auth-and-access.md)。

**GetSecretValue**  
由[GetSecretValue](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html)和[BatchGetSecretValue](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_BatchGetSecretValue.html)操作生成。有关检索密钥的信息，请参阅 [从中获取秘密 AWS Secrets Manager](retrieving-secrets.md)。

**ListSecrets**  
由[ListSecrets](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_ListSecrets.html)操作生成。有关列出密钥的信息，请参阅 [在里面寻找秘密 AWS Secrets Manager](manage_search-secret.md)。

**ListSecretVersionIds**  
由[ListSecretVersionIds](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_ListSecretVersionIds.html)操作生成。

**PutResourcePolicy**  
由[PutResourcePolicy](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_PutResourcePolicy.html)操作生成。有关权限的信息，请参阅 [的身份验证和访问控制 AWS Secrets Manager](auth-and-access.md)。

**PutSecretValue**  
由[PutSecretValue](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_PutSecretValue.html)操作生成。有关更新密钥的信息，请参阅 [修改密 AWS Secrets Manager 钥](manage_update-secret.md)。

**RemoveRegionsFromReplication**  
由[RemoveRegionsFromReplication](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_RemoveRegionsFromReplication.html)操作生成。有关复制密钥的更多信息，请参阅 [跨区域复制 AWS Secrets Manager 密钥](replicate-secrets.md)。

**ReplicateSecretToRegions**  
由[ReplicateSecretToRegions](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_ReplicateSecretToRegions.html)操作生成。有关复制密钥的更多信息，请参阅 [跨区域复制 AWS Secrets Manager 密钥](replicate-secrets.md)。

**RestoreSecret**  
由[RestoreSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_RestoreSecret.html)操作生成。有关还原已删除密钥的信息，请参阅 [恢复密 AWS Secrets Manager 钥](manage_restore-secret.md)。

**RotateSecret**  
由[RotateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_RotateSecret.html)操作生成。有关轮换的更多信息，请参阅 [轮换 AWS Secrets Manager 秘密](rotating-secrets.md)。

**StopReplicationToReplica**  
由[StopReplicationToReplica](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_StopReplicationToReplica.html)操作生成。有关复制密钥的更多信息，请参阅 [跨区域复制 AWS Secrets Manager 密钥](replicate-secrets.md)。

**TagResource**  
由[TagResource](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_TagResource.html)操作生成。有关标记密钥的信息，请参阅 [在中标记机密 AWS Secrets Manager](managing-secrets_tagging.md)。

**UntagResource**  
由[UntagResource](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_UntagResource.html)操作生成。有关取消密钥标签的信息，请参阅 [在中标记机密 AWS Secrets Manager](managing-secrets_tagging.md)。

**UpdateSecret**  
由[UpdateSecret](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_UpdateSecret.html)操作生成。有关更新密钥的信息，请参阅 [修改密 AWS Secrets Manager 钥](manage_update-secret.md)。

**UpdateSecretVersionStage**  
由[UpdateSecretVersionStage](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_UpdateSecretVersionStage.html)操作生成。有关版本阶段的更多信息，请参阅 [密钥版本](whats-in-a-secret.md#term_version)。

**ValidateResourcePolicy**  
由[ValidateResourcePolicy](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_ValidateResourcePolicy.html)操作生成。有关权限的信息，请参阅 [的身份验证和访问控制 AWS Secrets Manager](auth-and-access.md)。

## 有关删除操作的日志条目
<a name="cloudtrail_log_entries_deletion"></a>

除了生成与 Secrets Manager 操作有关的事件外，Secrets Manager 还会生成以下与删除有关的事件。这些事件具有 `"detail-type": ["AWS Service Event via CloudTrail"]`。

**CancelSecretVersionDelete**  
由 Secrets Manager 服务生成。如果在具有版本的密钥上调用 `DeleteSecret`，然后再调用 `RestoreSecret`，则 Secrets Manager 会为还原的每个密钥版本记录此事件。有关还原已删除密钥的信息，请参阅 [恢复密 AWS Secrets Manager 钥](manage_restore-secret.md)。

**EndSecretVersionDelete**  
在删除密钥版本时由 Secrets Manager 服务生成。有关更多信息，请参阅 [删除密 AWS Secrets Manager 钥](manage_delete-secret.md)。

**StartSecretVersionDelete**  
在 Secrets Manager 开始删除密钥版本时由 Secrets Manager 服务生成。有关删除密钥的信息，请参阅 [删除密 AWS Secrets Manager 钥](manage_delete-secret.md)。

**SecretVersionDeletion**  
在 Secrets Manager 删除已弃用的秘密版本时由 Secrets Manager 服务生成。有关更多信息，请参阅[密钥版本](whats-in-a-secret.md#term_version)。

## 可用于复制的日志条目
<a name="cloudtrail_log_entries_replication"></a>

除了生成与 Secrets Manager 操作有关的事件外，Secrets Manager 还会生成以下与复制有关的事件。这些事件具有 `"detail-type": ["AWS Service Event via CloudTrail"]`。

**ReplicationFailed**  
在复制失败时由 Secrets Manager 服务生成。有关复制密钥的更多信息，请参阅 [跨区域复制 AWS Secrets Manager 密钥](replicate-secrets.md)。

**ReplicationStarted**  
在 Secrets Manager 开始复制密钥时由 Secrets Manager 服务生成。有关复制密钥的更多信息，请参阅 [跨区域复制 AWS Secrets Manager 密钥](replicate-secrets.md)。

**ReplicationSucceeded**  
在成功复制密钥时由 Secrets Manager 服务生成。有关复制密钥的更多信息，请参阅 [跨区域复制 AWS Secrets Manager 密钥](replicate-secrets.md)。

## 有关轮换操作的日志条目
<a name="cloudtrail_log_entries_rotation"></a>

除了生成与 Secrets Manager 操作有关的事件外，Secrets Manager 还会生成以下与轮换有关的事件。这些事件具有 `"detail-type": ["AWS Service Event via CloudTrail"]`。

**RotationStarted**  
在 Secrets Manager 开始轮换密钥时由 Secrets Manager 服务生成。有关轮换的更多信息，请参阅 [轮换 AWS Secrets Manager 秘密](rotating-secrets.md)。

**RotationAbandoned**  
在 Secrets Manager 放弃轮换尝试并从密钥的某个现有版本删除 `AWSPENDING` 标签时由 Secrets Manager 服务生成。当您在轮换期间创建密钥的新版本时，Secrets Manager 会放弃轮换。有关轮换的更多信息，请参阅 [轮换 AWS Secrets Manager 秘密](rotating-secrets.md)。

**RotationFailed**  
在轮换失败时由 Secrets Manager 服务生成。有关轮换的更多信息，请参阅 [排除 AWS Secrets Manager 轮换故障](troubleshoot_rotation.md)。

**RotationSucceeded**  
在成功轮换密钥时由 Secrets Manager 服务生成。有关轮换的更多信息，请参阅 [轮换 AWS Secrets Manager 秘密](rotating-secrets.md)。

**TestRotationStarted**  
在开始测试轮换某个尚未计划立即轮换的密钥时由 Secrets Manager 服务生成。有关轮换的更多信息，请参阅 [轮换 AWS Secrets Manager 秘密](rotating-secrets.md)。

**TestRotationSucceeded**  
在成功测试轮换某个尚未计划立即轮换的密钥时由 Secrets Manager 服务生成。有关轮换的更多信息，请参阅 [轮换 AWS Secrets Manager 秘密](rotating-secrets.md)。

**TestRotationFailed**  
在测试轮换某个尚未计划立即轮换的密钥但轮换失败时由 Secrets Manager 服务生成。有关轮换的更多信息，请参阅 [排除 AWS Secrets Manager 轮换故障](troubleshoot_rotation.md)。

# AWS Secrets Manager 使用 Amazon 进行监控 CloudWatch
<a name="monitoring-cloudwatch"></a>

使用 Amazon CloudWatch，您可以监控 AWS 服务并创建警报，以便在指标发生变化时通知您。 CloudWatch 将这些统计数据保存 15 个月，因此您可以访问历史信息并更好地了解 Web 应用程序或服务的性能。对于 AWS Secrets Manager，您可以监控账户中的密钥数量，包括标记为删除的密钥，以及对 Secrets Manager 的 API 调用，包括通过控制台进行的调用。有关如何监控指标的信息，请参阅*CloudWatch 用户指南*中的[使用 CloudWatch 指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html)。

**查找 Secrets Manager 指标**

1. 在 CloudWatch 控制台的**指标**下，选择**所有指标**。

1. 在**指标**搜索框中，输入 `secret`。

1. 执行以下操作：
   + 要监控您账户中的密钥数量，请选择 **AWS/SecretsManager**，然后选择**SecretCount**。此指标每小时发布一次。
   + 要监控对 Secrets Manager 的 API 调用，包括通过控制台进行的调用，请选择 “**使用情况” > “按 AWS 资源**”，然后选择要监控的 API 调用。有关 Secrets Manager 的列表 APIs，请参阅 S [ecrets Manager 的操作](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_Operations.html)。

1. 执行以下操作：
   + 要创建指标图表，请参阅 *Amazon CloudWatch 用户指南*中的[绘制指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/graph_metrics.html)图表。
   + 要检测异常，请参阅 A *ma CloudWatch * zon 用户指南中的[使用 CloudWatch 异常检测](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Anomaly_Detection.html)。
   + 要获取指标的统计数据，请参阅 *Amazon CloudWatch 用户指南*中的[获取指标的统计](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/getting-metric-statistics.html)信息。



## CloudWatch 警报
<a name="monitoring-cloudwatch_alarms"></a>

您可以创建一个 CloudWatch 警报，当指标值发生变化并导致警报状态发生变化时，该警报会发送 Amazon SNS 消息。您可以对 Secrets Manager 指标 `ResourceCount` 设置警报，该指标是您账户中的密钥数量。您可以设置警报来按照您指定的时间段监控某个指标，并根据该指标在若干时间段相对于给定阈值的值执行操作。警报仅针对持续的状态变化调用操作。 CloudWatch 警报不会仅仅因为它们处于特定状态就调用操作；该状态必须已更改并保持了指定的时间段。

有关更多信息，请参阅*CloudWatch 用户指南*中的[使用 Amazon CloudWatch CloudWatch 警](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)[报和基于异常检测创建](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Anomaly_Detection_Alarm.html)警报。

还可以设置特定阈值监视警报，在达到对应阈值时发送通知或采取行动。有关更多信息，请参阅 [Amazon CloudWatch 用户指南](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)。

# 将赛 AWS Secrets Manager 事与 Amazon 进行匹配 EventBridge
<a name="monitoring-eventbridge"></a>

在亚马逊中 EventBridge，您可以匹配 CloudTrail 日志条目中的 Secrets Manager 事件。您可以配置 EventBridge 规则来查找这些事件，然后将新生成的事件发送到目标以采取行动。有关 Secrets Manager 记录的 CloudTrail 条目列表，请参阅[CloudTrail 条目](cloudtrail_log_entries.md)。有关设置说明 EventBridge，请参阅《*EventBridge 用户指南》 EventBridge*中的 “[入门](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-get-started.html)”。

## 将所有更改与指定密钥匹配
<a name="monitoring-eventbridge_examples-all-changes"></a>

**注意**  
由于[某些 Secrets Manager 事件](cloudtrail_log_entries.md)返回的密钥 ARN 大小写不同，所以在匹配多个操作的事件模式中，您可能需要同时包含密钥 `arn` 和 `aRN` 才能通过 ARN 指定密钥。有关更多信息，请参阅 [AWS re:Post](https://repost.aws/knowledge-center/secrets-manager-arn)。

以下示例显示了一种 EventBridge 事件模式，该模式与密钥更改的日志条目相匹配。

```
{
    "source": ["aws.secretsmanager"],
    "detail-type": ["AWS API Call via CloudTrail"],
    "detail": {
        "eventSource": ["secretsmanager.amazonaws.com"],
        "eventName": ["DeleteResourcePolicy", "PutResourcePolicy", "RotateSecret", "TagResource", "UntagResource", "UpdateSecret"],
        "responseElements": {
            "arn": ["arn:aws:secretsmanager:us-west-2:012345678901:secret:mySecret-a1b2c3"]
        }
    }
}
```

## 在轮换密钥值时匹配事件
<a name="monitoring-eventbridge_examples-rotations"></a>

以下示例显示了一种 EventBridge 事件模式，该模式与因手动更新或自动轮换而发生的机密值更改的 CloudTrail 日志条目相匹配。由于有些事件来自 Secrets Manager 操作，有些则由 Secrets Manager 服务生成，因此两者都必须包含 `detail-type`。

```
{
    "source": ["aws.secretsmanager"],
    "detail-type": [
        "AWS API Call via CloudTrail",
        "AWS Service Event via CloudTrail"
    ],
    "detail": {
        "eventSource": ["secretsmanager.amazonaws.com"],
        "eventName": ["PutSecretValue", "UpdateSecret", "RotationSucceeded"]
    }
}
```

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

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

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

在开始这些过程之前，您必须在要监控 AWS Secrets Manager API 请求的 AWS 区域 和账户 CloudTrail 中开启。有关说明，请参阅 *AWS CloudTrail 《用户指南》*中的[首次创建跟踪](https://docs.aws.amazon.com/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.aws.amazon.com/cloudtrail/)。

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

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

1. 在 T **rails 配置**页面上，向下滚动到 “**CloudWatch 日志**” 部分，然后选择编辑图标 (![\[Remote control icon with power, volume, and channel buttons.\]](http://docs.aws.amazon.com/zh_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. 在**AWS 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.aws.amazon.com/cloudwatch/)。

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

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>

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

# 使用以下方法监控 AWS Secrets Manager 密钥的合规性 AWS Config
<a name="configuring-awsconfig-rules"></a>

您可以使用 AWS Config 来评估您的密钥，以查看它们是否符合您的标准。您可以使用 AWS Config 规则定义对机密的内部安全和合规性要求。然后 AWS Config 可以识别不符合你规则的秘密。您还可以跟踪对密钥元数据、[轮换配置](find-secrets-not-rotating.md)、用于密钥加密的 KMS 密钥、Lambda 轮换函数以及与密钥关联的标签等进行的更改。

您可以配置 AWS Config 为将更改通知您。有关更多信息，请参阅[AWS Config 发送至 Amazon SNS 主题的通知](https://docs.aws.amazon.com/config/latest/developerguide/notifications-for-AWS-Config.html)。

如果您的组织中有多个 AWS 账户 密钥，则可以聚合该配置和合规性数据。 AWS 区域 有关更多信息，请参阅 [Multi-account Multi-Region data aggregation](https://docs.aws.amazon.com/config/latest/developerguide/aggregate-data.html)。

**评测密钥是否合规**
+ 按照使用[AWS Config 规则评估资源中的说明进行](https://docs.aws.amazon.com/config/latest/developerguide/evaluating-your-resources.html)操作，然后选择以下规则之一：
  + `[secretsmanager-secret-unused](https://docs.aws.amazon.com/config/latest/developerguide/secretsmanager-secret-unused.html)` — 检查是否已在指定的天数内访问了密钥。
  + `[secretsmanager-using-cmk](https://docs.aws.amazon.com/config/latest/developerguide/secretsmanager-using-cmk.html)`— 检查密钥是否使用您在中创建的客户托管密钥 AWS 托管式密钥 `aws/secretsmanager`或客户管理的密钥进行加密 AWS KMS。
  + `[secretsmanager-rotation-enabled-check](https://docs.aws.amazon.com/config/latest/developerguide/secretsmanager-rotation-enabled-check.html)` — 检查是否为存储在 Secrets Manager 中的密钥配置了轮换。
  + `[secretsmanager-scheduled-rotation-success-check](https://docs.aws.amazon.com/config/latest/developerguide/secretsmanager-scheduled-rotation-success-check.html)`— 检查上次成功的轮换是否在配置的轮换频率内。检查的最低频率为每天。
  + `[secretsmanager-secret-periodic-rotation](https://docs.aws.amazon.com/config/latest/developerguide/secretsmanager-secret-periodic-rotation.html)` — 检查是否已在指定的天数内轮换了密钥。

# 监控 Secrets Manager 成本
<a name="monitor-secretsmanager-costs"></a>

您可以使用 Amazon CloudWatch 来监控预估 AWS Secrets Manager 费用。有关更多信息，请参阅*CloudWatch 用户指南*中的[创建账单警报以监控您的预估 AWS 费用](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/monitor_estimated_charges_with_cloudwatch.html)。

监控成本的另一种选择是 AWS 成本异常检测。有关更多信息，请参阅《*AWS 成本管理用户指南*》中的 [Detecting unusual spend with AWS Cost Anomaly Detection](https://docs.aws.amazon.com/cost-management/latest/userguide/manage-ad.html)。

有关监控 Secrets Manager 使用情况的信息，请参阅 [AWS Secrets Manager 使用 Amazon 进行监控 CloudWatch](monitoring-cloudwatch.md) 和 [使用记录 AWS Secrets Manager 事件 AWS CloudTrail](monitoring-cloudtrail.md)。

有关 AWS Secrets Manager 定价的信息，请参阅[定价](intro.md#asm_pricing)。

# 使用 Amazon 检测威胁 GuardDuty
<a name="monitoring-guardduty"></a>

Amazon GuardDuty 是一项威胁检测服务，可帮助您保护您的账户、容器、工作负载和 AWS 环境中的数据。通过使用机器学习 (ML) 模型以及异常和威胁检测功能， GuardDuty 持续监控不同的日志源，以识别环境中的潜在安全风险和恶意活动并确定其优先级。例如， GuardDuty 如果它检测到通过 EC2 实例启动角色专为 Amazon 实例创建但正在从其中的其他账户使用的证书，则会检测到潜在威胁，例如对机密的异常或可疑访问以及凭证泄露。 AWS有关更多信息，请参阅 [Amazon GuardDuty 用户指南](https://docs.aws.amazon.com/guardduty/latest/ug/what-is-guardduty.html)。

检测的另一个示例使用场景是异常行为。例如，如果 AWS Secrets Manager 通常使用 Java SDK 从实体`list-secrets`接收、、和调用，然后另一个实体开始 AWS CLI 从 VPN 外部调用`batch-get-secret-value`和`get-secret-value`使用，则 GuardDuty 可以报告发现第二个实体正在异常调用。`create-secret` `get-secret-value` `describe-secret` APIs有关更多信息，请参阅 [GuardDuty IAM 查找类型 CredentialAccess：IAMUser/AnomalousBehavior](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-iam.html#credentialaccess-iam-anomalousbehavior)。