

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

# 使用启用和禁用 CloudTrail 日志文件、摘要文件和事件数据存储的加密 AWS CLI
<a name="cloudtrail-log-file-encryption-cli"></a>

本主题介绍如何使用启用和禁用 CloudTrail 日志文件、摘要文件和事件数据存储的 SSE-KMS 加密。 AWS CLI有关背景信息，请参阅[使用密 AWS KMS 钥加密 CloudTrail 日志文件、摘要文件和事件数据存储 (SSE-KMS)](encrypting-cloudtrail-log-files-with-aws-kms.md)。

**Topics**
+ [使用对 CloudTrail 日志文件、摘要文件和事件数据存储启用加密 AWS CLI](#cloudtrail-log-file-encryption-cli-enable)
+ [使用禁用日志文件和摘要文件的加密 AWS CLI](#cloudtrail-log-file-encryption-cli-disable)

## 使用对 CloudTrail 日志文件、摘要文件和事件数据存储启用加密 AWS CLI
<a name="cloudtrail-log-file-encryption-cli-enable"></a>
+ [为跟踪的日志文件和摘要文件启用加密](#log-encryption-trail)
+ [为事件数据存储启用加密](#log-encryption-eds)<a name="log-encryption-trail"></a>

**为跟踪的日志文件和摘要文件启用加密**

1. 使用 AWS CLI创建密钥。您创建的密钥必须与接收您的 CloudTrail 日志文件的 S3 存储桶位于同一区域。在此步骤中，您可以使用 AWS KMS [https://docs.aws.amazon.com/cli/latest/reference/kms/create-key.html](https://docs.aws.amazon.com/cli/latest/reference/kms/create-key.html)命令。

1. 获取现有的密钥策略，以便您可以对其进行修改以供使用 CloudTrail。您可以使用 AWS KMS [https://docs.aws.amazon.com/cli/latest/reference/kms/get-key-policy.html](https://docs.aws.amazon.com/cli/latest/reference/kms/get-key-policy.html)命令检索密钥策略。

1. 在密钥策略中添加必填部分，以便 CloudTrail 可以加密，用户可以解密您的日志文件和摘要文件。确保为需要阅读日志文件的所有用户授予解密权限。请勿更改策略的现有部分。有关要包含的策略部分的信息，请参阅[为以下各项配置 AWS KMS 密钥策略 CloudTrail](create-kms-key-policy-for-cloudtrail.md)。

1. 使用 AWS KMS [https://docs.aws.amazon.com/cli/latest/reference/kms/put-key-policy.html](https://docs.aws.amazon.com/cli/latest/reference/kms/put-key-policy.html)命令将修改后的 JSON 策略文件附加到密钥。

1. 使用`--kms-key-id`参数运行 CloudTrail `create-trail`或`update-trail`命令。此命令会为日志文件和摘要文件启用加密。

   ```
   aws cloudtrail update-trail --name Default --kms-key-id alias/MyKmsKey
   ```

   `--kms-key-id` 参数用于指定密钥（您将针对 CloudTrail 修改此密钥的策略）。它可以是以下格式中的任意一种：
   + **别名**。示例：`alias/MyAliasName`
   + **别名 ARN**。示例：`arn:aws:kms:us-east-2:123456789012:alias/MyAliasName`
   + **密钥 ARN**。示例：`arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012`
   + **全局唯一密钥 ID。**示例：`12345678-1234-1234-1234-123456789012`

   以下为响应示例：

   ```
   {
       "IncludeGlobalServiceEvents": true, 
       "Name": "Default", 
       "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/Default", 
       "LogFileValidationEnabled": false,
       "KmsKeyId": "arn:aws:kms:us-east-2:123456789012:key/12345678-1234-1234-1234-123456789012", 
       "S3BucketName": "amzn-s3-demo-bucket"
   }
   ```

   如果存在 `KmsKeyId` 元素，则表示已为您的日志文件启用加密。如果已启用日志文件验证（通过将 `LogFileValidationEnabled` 元素设置为 true 指示），这也表示摘要文件已启用加密。加密的日志文件和摘要文件应该会在大约 5 分钟内出现在为跟踪配置的 S3 存储桶中。<a name="log-encryption-eds"></a>

**为事件数据存储启用加密**

1. 使用 AWS CLI创建密钥。您创建的密钥必须与事件数据存储位于同一区域。对于此步骤，请运行 AWS KMS [https://docs.aws.amazon.com/cli/latest/reference/kms/create-key.html](https://docs.aws.amazon.com/cli/latest/reference/kms/create-key.html)命令。

1. 获取要编辑的现有密钥策略以供使用 CloudTrail。您可以通过运行 AWS KMS [https://docs.aws.amazon.com/cli/latest/reference/kms/get-key-policy.html](https://docs.aws.amazon.com/cli/latest/reference/kms/get-key-policy.html)命令来获取密钥策略。

1. 在密钥策略中添加必填部分，以便 CloudTrail 可以加密，用户可以解密您的事件数据存储。确保为需要阅读事件数据存储的所有用户授予解密权限。请勿更改策略的现有部分。有关要包含的策略部分的信息，请参阅[为以下各项配置 AWS KMS 密钥策略 CloudTrail](create-kms-key-policy-for-cloudtrail.md)。

1. 通过运行 AWS KMS [put-key-policy](https://docs.aws.amazon.com/cli/latest/reference/kms/put-key-policy.html)命令将编辑后的 JSON 策略文件附加到密钥。

1. 运行 CloudTrail `create-event-data-store`或`update-event-data-store`命令，然后添加`--kms-key-id`参数。此命令会启用事件数据存储的加密。

   ```
   aws cloudtrail update-event-data-store --name my-event-data-store --kms-key-id alias/MyKmsKey
   ```

   `--kms-key-id` 参数用于指定密钥（您将针对 CloudTrail 修改此密钥的策略）。它可以是以下四种格式中的任意一种：
   + **别名**。示例：`alias/MyAliasName`
   + **别名 ARN**。示例：`arn:aws:kms:us-east-2:123456789012:alias/MyAliasName`
   + **密钥 ARN**。示例：`arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012`
   + **全局唯一密钥 ID。**示例：`12345678-1234-1234-1234-123456789012`

   以下为响应示例：

   ```
   {
       "Name": "my-event-data-store",
       "ARN": "arn:aws:cloudtrail:us-east-1:12345678910:eventdatastore/EXAMPLEf852-4e8f-8bd1-bcf6cEXAMPLE",
       "RetentionPeriod": "90",
       "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012"
       "MultiRegionEnabled": false,
       "OrganizationEnabled": false,
       "TerminationProtectionEnabled": true,
       "AdvancedEventSelectors": [{
           "Name": "Select all external events",
           "FieldSelectors": [{
               "Field": "eventCategory",
               "Equals": [
                   "ActivityAuditLog"
               ]
           }]
       }]
   }
   ```

   如果存在 `KmsKeyId` 元素，则表示已为事件数据存储启用加密。

## 使用禁用日志文件和摘要文件的加密 AWS CLI
<a name="cloudtrail-log-file-encryption-cli-disable"></a>

要停止加密跟踪的日志文件和摘要文件，请运行 `update-trail`，并向 `kms-key-id` 参数传递一个空字符串：

```
aws cloudtrail update-trail --name my-test-trail --kms-key-id ""
```

以下为响应示例：

```
{
    "IncludeGlobalServiceEvents": true, 
    "Name": "Default", 
    "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/Default", 
    "LogFileValidationEnabled": false, 
    "S3BucketName": "amzn-s3-demo-bucket"
}
```

如果不存在 `KmsKeyId` 值，则表示不再为日志文件和摘要文件启用加密。

**重要**  
您无法停止事件数据存储的加密。