

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

# 使用加密上下文
<a name="encryption-context"></a>

加密上下文是一组可选的键值对，其中包含有关数据的其他上下文信息。 AWS KMS 使用加密上下文来支持经过身份验证的加密。

当您在加密请求中包含加密上下文时， AWS KMS 会将加密上下文绑定到加密数据。要解密数据，您必须在请求中包含相同的加密上下文。

语音分析在所有 AWS KMS 加密操作中使用相同的加密环境，其中密钥为`aws:chime:voice-profile-domain:arn`，值为资源 Amazon 资源名称 (ARN)。

以下示例显示了典型的加密上下文。

```
"encryptionContext": {
    "aws:chime:voice-profile-domain:arn": "arn:aws:chime:us-west-2:{{111122223333}}:voice-profile-domain/{{sample-domain-id}}"
}
```

您还可以在审核记录和日志中使用加密上下文来确定客户托管密钥的使用情况。加密上下文还会显示在 CloudTrail 或日志生成的 CloudWatch 日志中。

## 使用加密上下文来控制对密钥的访问
<a name="context-to-control-access"></a>

您可以使用密钥策略和 IAM 策略中的加密上下文作为条件来控制对您的对称客户托管密钥的访问。您也可以在授予中使用加密上下文约束。

语音分析在授权中使用加密上下文限制来控制对您的账户或区域中客户管理的密钥的访问权限。授权约束要求授权允许的操作使用指定的加密上下文。

以下示例密钥策略声明授予对特定加密上下文的客户托管密钥的访问权限。策略声明中的条件要求授权具有指定加密上下文的加密上下文约束。

```
{
    "Sid": "Enable DescribeKey",
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::{{111122223333}}:role/{{ExampleReadOnlyRole}}"
    },
    "Action": "kms:DescribeKey",
    "Resource": "*"
},
{
    "Sid": "Enable CreateGrant",
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::{{111122223333}}:role/{{ExampleReadOnlyRole}}"
    },
    "Action": "kms:CreateGrant",
    "Resource": "*",
    "Condition": {
        "StringEquals": {
            "kms:EncryptionContext:{{aws:chime:voice-profile-domain:arn}}": "arn:aws:chime:us-west-2:{{111122223333:voice-profile-domain}}/{{sample-domain-id}}"
        }
    }
}
```