

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

# Amazon Comprehend 中的 KMS 加密
<a name="kms-in-comprehend"></a>

Amazon Comprehend AWS KMS与 () AWS Key Management Service 合作，为您的数据提供增强的加密。Amazon S3 已经允许您在创建文本分析、主题建模或自定义 Amazon Comprehend 任务时对输入文档进行加密。 AWS KMS 通过与集成，您可以加密存储卷中用于启动\$1和创建\$1任务的数据，并使用您自己的 KMS 密钥对 Start\$1 作业的输出结果进行加密。

对于 AWS 管理控制台，Amazon Comprehend 使用自己的 KMS 密钥对自定义模型进行加密。对于 AWS CLI，Amazon Comprehend 可以使用自己的 KMS 密钥或提供的客户托管密钥 (CMK) 对自定义模型进行加密。

**使用 KMS 加密 AWS 管理控制台** 

使用控制台时，有两个加密选项可用：
+ 卷加密
+ 输出结果加密

**启用卷加密**

1.  在**任务设置**下，选择**任务加密**选项。  
![\[中的 KMS Job 加密 AWS 管理控制台\]](http://docs.aws.amazon.com/zh_cn/comprehend/latest/dg/images/kms-1.png)

1. 选择 KMS 客户自主管理型密钥 (CMK) 来自您当前使用的账户还是其他账户。如果您想要使用来自当前账户的密钥，请从 **KMS 密钥 ID** 选择密钥别名。如果您使用来自其他账户的密钥，则必须输入密钥的 ARN。

**启用输出结果加密**

1.  在**输出设置**下，选择**加密**选项。  
![\[KMS 输出结果加密在 AWS 管理控制台\]](http://docs.aws.amazon.com/zh_cn/comprehend/latest/dg/images/kms-2.png)

1. 选择 客户自主管理型密钥 (CMK) 是来自您当前使用的账户还是其他账户。如果您要使用来自当前账户的密钥，请从 **KMS 密钥 ID** 选择密钥 ID。如果您使用来自其他账户的密钥，则必须输入密钥的 ARN。

如果您之前已在 S3 输入文档上使用 SSE-KMS 设置加密，则这可以为您提供额外的安全性。但是，如果您这样做，则所使用的 IAM 角色必须拥有加密输入文档的 KMS 密钥的 `kms:Decrypt` 权限。有关更多信息，请参阅 [使用 KMS 加密所需的权限](security_iam_id-based-policy-examples.md#auth-kms-permissions)。

**使用 API 操作进行 KMS 加密** 

所有 Amazon Comprehend `Start*` 和 `Create*` API 操作都支持 KMS 加密的输入文档。如果原始任务提供 `KmsKeyId` 作为输入，则 `Describe*` 和 `List*` API 操作会返回 `OutputDataConfig` 中的 `KmsKeyId`。如果未将其作为输入提供，则不会将其返回。

这可以在以下 AWS CLI 示例中使用[StartEntitiesDetectionJob](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_StartEntitiesDetectionJob.html)操作看出：

 

```
aws comprehend start-entities-detection-job \
     --region region \
     --data-access-role-arn "data access role arn" \    
     --entity-recognizer-arn "entity recognizer arn" \
     --input-data-config "S3Uri=s3://Bucket Name/Bucket Path" \    
     --job-name job name \
     --language-code en \
     --output-data-config "KmsKeyId=Output S3 KMS key ID" "S3Uri=s3://Bucket Name/Bucket Path/" \
     --volumekmskeyid "Volume KMS key ID"
```

**注意**  
此示例的格式适用于 Unix、Linux 和 macOS。对于 Windows，请将每行末尾的反斜杠 (\$1) Unix 行继续符替换为脱字号 (^)。

**使用 API 操作进行客户自主管理型密钥 (CMK) 加密** 

Amazon Comprehend 自定义模型 API `CreateEntityRecognizer` 操作`CreateDocumentClassifier`、`CreateEndpoint`、和，支持通过使用客户托管密钥进行加密。 AWS CLI

您可以使用 IAM policy 来允许委托人使用或管理客户自主管理型密钥。这些密钥在策略语句的 `Resource` 元素中指定。最佳做法是，将客户自主管理型密钥限制为仅限委托人必须在您的策略语句中使用的密钥。

以下 AWS CLI 示例使用[CreateEntityRecognizer](https://docs.aws.amazon.com/comprehend/latest/APIReference/API_CreateEntityRecognizer.html)操作创建具有模型加密功能的自定义实体识别器：



```
aws comprehend create-entity-recognizer \
     --recognizer-name name \
     --data-access-role-arn data access role arn \    
     --language-code en \
     --model-kms-key-id Model KMS Key ID \ 
     --input-data-config file:///path/input-data-config.json
```

**注意**  
此示例的格式适用于 Unix、Linux 和 macOS。对于 Windows，请将每行末尾的反斜杠 (\$1) Unix 行继续符替换为脱字号 (^)。