

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

# 使用密 Amazon KMS 钥加密 CloudTrail 日志文件、摘要文件和事件数据存储 (SSE-KMS)
<a name="encrypting-cloudtrail-log-files-with-aws-kms"></a>

默认情况下，通过使用[服务器端加密和 KMS 密钥 (SSE-KMS) 对传输 CloudTrail 到您的存储桶的日志文件和摘要文件进行加密](https://docs.amazonaws.cn/AmazonS3/latest/userguide/UsingKMSEncryption.html)。如果您未启用 SSE-KMS 加密，则将使用 [SSE-S3 加密](https://docs.amazonaws.cn/AmazonS3/latest/userguide/UsingServerSideEncryption.html)对您的日志文件和摘要文件进行加密。

**注意**  
如果您使用带有 S3 存储[桶密钥](https://docs.amazonaws.cn/AmazonS3/latest/userguide/bucket-key.html)的现有 S3 存储桶，则 CloudTrail 必须获得密钥策略中的许可才能使用 Amazon KMS 操作`GenerateDataKey`和`DescribeKey`。如果未在密钥策略中授予 `cloudtrail.amazonaws.com` 这些权限，则无法创建或更新跟踪。

要将 SSE-KMS 与配合使用 CloudTrail，您需要创建并管理。[Amazon KMS key](https://docs.amazonaws.cn/kms/latest/developerguide/concepts.html)您可以为密钥附加策略，以确定哪些用户可以使用该密钥来加密和解密 CloudTrail 日志文件和摘要文件。通过 S3 可实现无缝解密。当密钥的授权用户读取 CloudTrail 日志文件或摘要文件时，S3 会管理解密，授权用户可以读取未加密形式的文件。

这种方法有以下优势：
+ 您可以自行创建和管理 KMS 密钥。
+ 您可以使用单个 KMS 密钥对所有区域中的多个账户的日志文件和摘要文件进行加密和解密。
+ 您可以控制谁可以使用您的密钥来加密和解密 CloudTrail 日志文件和摘要文件。您可以根据自己的要求，将密钥的权限分配给组织中的用户。
+ 安全性更高。使用此功能时，为了读取日志文件或摘要文件，需要以下权限：
  + 用户必须对包含日志文件和摘要文件的存储桶具有 S3 读取权限。
  + 用户还必须应用了允许通过 KMS 密钥策略解密权限的策略或角色。
+ 由于 S3 会自动解密有权使用 KMS 密钥的用户的请求的日志文件和摘要文件，因此这些文件的 SSE-KMS 加密与读取日志数据的应用程序向后兼容。 CloudTrail 

**注意**  
您选择的 KMS 密钥必须与接收您的日志文件和摘要文件的 Amazon S3 存储桶位于同一 Amazon 区域。例如，如果日志文件和摘要文件将存储在美国东部（俄亥俄州）区域的存储桶中，则必须在该区域中创建一个 KMS 密钥，或者选择一个在该区域中创建的 KMS 密钥。要验证 S3 存储桶的区域，请在 Amazon S3 控制台中检查其属性。

默认情况下，事件数据存储由加密 CloudTrail。在创建或更新事件数据存储时，您可以选择使用自己的 KMS 密钥进行加密。

## 启用日志文件加密
<a name="encrypting-cloudtrail-log-files-with-aws-kms-enabling"></a>

**注意**  
如果您在 CloudTrail 控制台中创建 KMS 密钥，则会为您 CloudTrail 添加所需的 KMS 密钥策略部分。如果您在 IAM 控制台中创建了密钥，或者 Amazon CLI 需要手动添加所需的策略部分，请按照以下步骤操作。

要为 CloudTrail 日志文件启用 SSE-KMS 加密，请执行以下高级步骤：

1. 创建 KMS 密钥。
   + 有关使用创建 KMS 密钥的信息 Amazon Web Services 管理控制台，请参阅*Amazon Key Management Service 开发人员指南*中的[创建密钥](https://docs.amazonaws.cn/kms/latest/developerguide/create-keys.html)。
   + 有关使用创建 KMS 密钥的信息 Amazon CLI，请参阅[创建密](https://docs.amazonaws.cn/cli/latest/reference/kms/create-key.html)钥。
**注意**  
您选择的 KMS 密钥必须与接收日志文件和摘要文件的 S3 存储桶位于同一个区域。要验证某个 S3 存储桶的区域，请在 S3 控制台中检查该存储桶的属性。

1. 在密钥中添加允许加密的策略部分，并 CloudTrail 允许用户解密日志文件和摘要文件。
   + 有关将包含在策略中的内容的信息，请参阅[为以下各项配置 Amazon KMS 密钥策略 CloudTrail](create-kms-key-policy-for-cloudtrail.md)。
**警告**  
请务必在策略中为需要读取日志文件或摘要文件的所有用户包含解密权限。如果在将密钥添加到跟踪配置前未执行此步骤，则无解密权限的用户将无法读取加密的文件，直至您向他们授予这些权限。
   + 有关使用 IAM 控制台编辑策略的信息，请参阅 *Amazon Key Management Service 开发人员指南*中的[编辑密钥策略](https://docs.amazonaws.cn/kms/latest/developerguide/key-policies.html#key-policy-editing)。
   + 有关使用将策略附加到 KMS 密钥的信息 Amazon CLI，请参阅[put-key-policy](https://docs.amazonaws.cn/cli/latest/reference/kms/put-key-policy.html)。

1. 更新您的跟踪或事件数据存储以使用您修改其策略的 KMS 密钥 CloudTrail。
   + 要使用 CloudTrail 控制台更新跟踪或事件数据存储，请参阅[通过控制台更新资源以使用 KMS 密钥](create-kms-key-policy-for-cloudtrail-update-trail.md)。
   + 要使用更新跟踪或事件数据存储 Amazon CLI，请参阅[使用启用和禁用 CloudTrail 日志文件、摘要文件和事件数据存储的加密 Amazon CLI](cloudtrail-log-file-encryption-cli.md)。

CloudTrail 还支持 Amazon KMS 多区域密钥。有关多区域密钥的更多信息，请参阅 *Amazon Key Management Service 开发人员指南*中的[使用多区域密钥](https://docs.amazonaws.cn/kms/latest/developerguide/multi-region-keys-overview.html)。

下一节介绍与您的 KMS 密钥策略一起使用所需的策略部分 CloudTrail。