

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

# 静态数据加密 AWS HealthScribe
<a name="health-scribe-encryption"></a>

默认情况下，使用 AWS HealthScribe 托管 AWS Key Management Service (AWS KMS) 密钥 AWS HealthScribe 提供静态加密以保护敏感的客户数据。默认情况下，静态数据加密有助于降低保护敏感数据的操作开销和复杂性。此外，它还支持构建符合严格加密合规性和监管要求的安全应用程序。在创建 AWS HealthScribe 转录作业或开始直播时，您可以指定客户托管密钥。这将额外增加一层加密保护。
+ **AWS HealthScribe 托管 AWS KMS 密钥** — 默认 AWS HealthScribe 使用 AWS HealthScribe 托管 AWS Key Management Service (AWS KMS) 密钥自动加密中间文件。您无法禁用此加密层或选择其他加密类型。您无法查看、管理或使用密钥，也无法审计其使用情况。但是，无需采取任何措施或更改任何计划即可保护用于加密数据的密钥。
+ **客户托管密钥** — AWS HealthScribe 支持使用您创建、拥有和管理的对称客户托管密钥，在现有 AWS 拥有的加密基础上添加第二层加密。由于您可以完全控制这层加密，因此可以执行以下任务：
  + 制定和维护关键策略
  + 制定和维护 IAM 政策及补助金
  + 启用和禁用密钥策略
  + 轮换加密材料
  + 添加 标签
  + 创建密钥别名
  + 安排密钥删除

  有关更多信息，请参阅《 AWS Key Management Service 开发人员指南》中的[客户托管密钥](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#customer-cmk)。

**注意**  
AWS HealthScribe 使用 AWS自有密钥自动启用静态加密，以免费保护个人身份数据。但是，使用客户管理的密钥需要 AWS KMS 付费。有关定价的更多信息，请参阅 [AWS Key Management Service 定价](https://aws.amazon.com//kms/pricing/)。  
 有关的更多信息 AWS KMS，请参阅[什么是 AWS Key Management Service](https://docs.aws.amazon.com//kms/latest/developerguide/overview.html)。

**Topics**
+ [创建客户托管的密钥](health-scribe-encryption-customer.md)
+ [为指定客户管理的密钥 AWS HealthScribe](#health-scribe-encryption-managed)
+ [AWS KMS 加密上下文](#health-scribe-encryption-context)
+ [监控您的加密密钥 AWS HealthScribe](#hscribe-monitoring-keys)

## 为指定客户管理的密钥 AWS HealthScribe
<a name="health-scribe-encryption-managed"></a>

 您可以将客户自主管理型密钥指定为转录作业或流式处理的第二层加密。
+ 对于转录作业，您可以在 [StartMedicalScribeJob](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_StartMedicalScribeJob.html)API 操作[OutputEncryptionKMSKeyId](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_StartMedicalScribeJob.html#transcribe-StartMedicalScribeJob-request-OutputEncryptionKMSKeyId)中指定密钥。
+ 要进行流式传输，请在[MedicalScribeEncryptionSettings](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_streaming_MedicalScribeEncryptionSettings.html)中指定密钥[MedicalScribeConfigurationEvent](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_streaming_MedicalScribeConfigurationEvent.html)。

## AWS KMS 加密上下文
<a name="health-scribe-encryption-context"></a>

 AWS KMS 加密上下文是纯文本、非秘密密钥:值对的映射。此地图表示其他经过身份验证的数据，称为加密上下文对，它们为您的数据提供了额外的安全层。 AWS HealthScribe 需要对称加密密钥才能将 AWS HealthScribe 输出加密到客户指定的 Amazon S3 存储桶中。要了解更多信息，请参阅 [AWS KMS中的非对称密钥](https://docs.aws.amazon.com//kms/latest/developerguide/symmetric-asymmetric.html)。

 创建加密上下文对时，*请勿*包含敏感信息。加密上下文不是秘密——它在你的 CloudTrail 日志中以纯文本形式可见（因此你可以用它来识别和分类你的加密操作）。加密上下文对可以包含特殊字符，如下划线 (`_`)、短划线 (`-`)、斜杠（`/`、`\`）和冒号 (`:`)。

**提示**  
 将加密上下文对中的值与正在加密的数据关联会很有用。尽管此操作并非必需，但我们建议您使用与加密内容相关的非敏感元数据，例如文件名、标头值或未加密的数据库字段。  
 要通过 API 使用输出加密，请设置 [StartMedicalScribeJob](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_StartMedicalScribeJob.html) 操作的 [KMSEncryptionContext](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_StartMedicalScribeJob.html#transcribe-StartMedicalScribeJob-request-KMSEncryptionContext) 参数。为了为输出加密操作提供加密上下文，[OutputEncryptionKMSKeyId](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_StartMedicalScribeJob.html#transcribe-StartMedicalScribeJob-request-OutputEncryptionKMSKeyId)参数必须引用对称 AWS KMS 密钥 ID。  
对于直播，您可以在中为`KmsEncryptionContext`中指定键值对[MedicalScribeConfigurationEvent](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_streaming_MedicalScribeConfigurationEvent.html)。[MedicalScribeEncryptionSettings](https://docs.aws.amazon.com//transcribe/latest/APIReference/API_streaming_MedicalScribeEncryptionSettings.html)  
 您可以将[AWS KMS 条件密钥](https://docs.aws.amazon.com//kms/latest/developerguide/policy-conditions.html#conditions-kms)与 IAM 策略配合使用，根据加密操作请求中使用的加密上下文来控制对称[加密 AWS KMS](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#cryptographic-operations)密钥的访问权限。有关示例加密上下文策略，请参阅 [AWS KMS 加密上下文策略](https://docs.aws.amazon.com//transcribe/latest/dg/security_iam_id-based-policy-examples.html#kms-context-policy)。  
 使用加密上下文是可选操作，但建议使用。有关更多信息，请参阅[加密上下文](https://docs.aws.amazon.com//kms/latest/developerguide/concepts.html#encrypt_context)。

### AWS HealthScribe 加密上下文
<a name="hscribe-context-details"></a>

AWS HealthScribe 在所有加密操作中使用相同的 AWS Key Management Service 加密上下文。加密上下文是字符串到字符串的映射，可以根据需要对其进行自定义。

```
"encryptionContext": {
   "ECKey": "ECValue"
   ...
}
```

对于 AWS HealthScribe 直播，以下是默认服务生成的加密上下文。它会将此上下文应用于您提供的任何加密上下文。

```
"encryptionContext": {
  "aws:<region>:transcribe:medical-scribe:session-id": "1234abcd-12ab-34cd-56ef-123456SAMPLE"
}
```

对于 AWS HealthScribe 转录作业，以下是默认的服务生成的加密上下文。它会将此上下文应用于您提供的任何加密上下文。

```
"encryptionContext": {
  "aws:<region>:transcribe:medical-scribe:job-name": "<job-name>",
  "aws:<region>:transcribe:medical-scribe:start-time-epoch-ms": "<job-start-time>"
}
```

如果您不提供任何加密上下文，则只有服务生成的加密上下文将用于所有 AWS KMS 加密操作。

** AWS HealthScribe 使用加密上下文进行监控**

当您使用对称客户托管密钥加密静态数据时 AWS HealthScribe，您还可以使用审计记录和日志中的加密上下文来识别客户托管密钥的使用情况。加密上下文还会显示在 AWS CloudTrail 或日志生成的 CloudWatch 日志中。

**使用加密上下文控制对客户托管式密钥的访问**

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

 以下是密钥策略声明示例，用于授予对特定加密上下文的客户托管密钥的访问权限。此策略语句中的条件要求 KMS 密钥的使用具有指定了加密上下文的加密上下文约束。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAccessToResourceAccessRoleForMedicalScribe",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::{{111122223333}}:role/{{ResourceAccessRole}}"
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:GenerateDataKey*"
            ],
            "Resource": "arn:aws:kms:{{us-west-2}}:{{111122223333}}:key/{{KMS-Example-KeyId}}",
            "Condition": {
                "StringEquals": {
                    "kms:EncryptionContext:aws:us-east-1:transcribe:medical-scribe:session-id": "{{1234abcd-12ab-34cd-56ef-123456SAMPLE}}",
                    "kms:EncryptionContext:{{ECKey}}": "{{ECValue}}"
                }
            }
        },
        {
            "Sid": "AllowAccessToResourceAccessRoleForDescribeKey",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::{{111122223333}}:role/{{ResourceAccessRole}}"
            },
            "Action": "kms:DescribeKey",
            "Resource": "arn:aws:kms:{{us-west-2}}:{{111122223333}}:key/{{KMS-Example-KeyId}}"
        }
    ]
}
```

------

## 监控您的加密密钥 AWS HealthScribe
<a name="hscribe-monitoring-keys"></a>

当您将 AWS Key Management Service 客户托管密钥与一起使用时 AWS HealthScribe，您可以使用 AWS CloudTrail 或 CloudWatch 日志来跟踪 AWS HealthScribe 发送到的请求 AWS KMS。

以下示例是您可以使用的 Encrypt 和 Decrypt 事件，它们允许您监控客户托管密 CloudTrail 钥的 AWS HealthScribe 使用情况。

**Encrypt**

```
{
   "eventVersion":"1.09",
   "userIdentity":{
      "type":"AssumedRole",
      "principalId":"AROAIGDTESTANDEXAMPLE:Sampleuser01",
      "arn":"arn:aws:sts::{{123456789012}}:assumed-role/Admin/Sampleuser01",
      "accountId":"{{123456789012}}",
      "accessKeyId":"AKIAIOSFODNN7EXAMPLE3",
      "sessionContext":{
         "sessionIssuer":{
            "type":"Role",
            "principalId":"AROAIGDTESTANDEXAMPLE:Sampleuser01",
            "arn":"arn:aws:sts::{{123456789012}}:assumed-role/Admin/Sampleuser01",
            "accountId":"{{123456789012}}",
            "userName":"Admin"
         },
         "attributes":{
            "creationDate":"2024-08-16T01:10:05Z",
            "mfaAuthenticated":"false"
         }
      },
      "invokedBy":"transcribe.streaming.amazonaws.com"
   },
   "eventTime":"2024-08-16T01:10:05Z",
   "eventSource":"kms.amazonaws.com",
   "eventName":"Encrypt",
   "awsRegion":"us-east-1",
   "sourceIPAddress":"transcribe.streaming.amazonaws.com",
   "userAgent":"transcribe.streaming.amazonaws.com",
   "requestParameters":{
      "encryptionContext":{
         "aws:us-east-1:transcribe:medical-scribe:session-id":"1234abcd-12ab-34cd-56ef-123456SAMPLE"
      },
      "encryptionAlgorithm":"SYMMETRIC_DEFAULT",
      "keyId":"{{1234abcd-12ab-34cd-56ef-1234567890ab}}"
   },
   "responseElements":null,
   "requestID":"cbe0ac33-8cca-49e5-9bb5-dc2b8dfcb389",
   "eventID":"1b9fedde-aa96-48cc-9dd9-a2cce2964b3c",
   "readOnly":true,
   "resources":[
      {
         "accountId":"{{123456789012}}",
         "type":"AWS::KMS::Key",
         "ARN":"arn:aws:kms:us-west-2:{{123456789012}}:key/{{1234abcd-12ab-34cd-56ef-123456SAMPLE}}"
      }
   ],
   "eventType":"AwsApiCall",
   "managementEvent":true,
   "recipientAccountId":"{{123456789012}}",
   "eventCategory":"Management"
}
```

**Decrypt**

```
{
   "eventVersion":"1.09",
   "userIdentity":{
      "type":"AssumedRole",
      "principalId":"AROAIGDTESTANDEXAMPLE:Sampleuser01",
      "arn":"arn:aws:sts::{{123456789012}}:assumed-role/Admin/Sampleuser01",
      "accountId":"{{123456789012}}",
      "accessKeyId":"AKIAIOSFODNN7EXAMPLE3",
      "sessionContext":{
         "sessionIssuer":{
            "type":"Role",
            "principalId":"AROAIGDTESTANDEXAMPLE:Sampleuser01",
            "arn":"arn:aws:sts::{{123456789012}}:assumed-role/Admin/Sampleuser01",
            "accountId":"{{123456789012}}",
            "userName":"Admin"
         },
         "attributes":{
            "creationDate":"2024-08-16T20:47:04Z",
            "mfaAuthenticated":"false"
         }
      },
      "invokedBy":"transcribe.streaming.amazonaws.com"
   },
   "eventTime":"2024-08-16T20:47:04Z",
   "eventSource":"kms.amazonaws.com",
   "eventName":"Decrypt",
   "awsRegion":"us-east-1",
   "sourceIPAddress":"transcribe.streaming.amazonaws.com",
   "userAgent":"transcribe.streaming.amazonaws.com",
   "requestParameters":{
      "keyId":"mrk-de27f019178f4fbf86512ab03ba860be",
      "encryptionAlgorithm":"SYMMETRIC_DEFAULT",
      "encryptionContext":{
         "aws:us-east-1:transcribe:medical-scribe:session-id":"1234abcd-12ab-34cd-56ef-123456SAMPLE"
      }
   },
   "responseElements":null,
   "requestID":"8b7fb865-48be-4e03-ac3d-e7bee3ba30a1",
   "eventID":"68b7a263-d410-4701-9e2b-20c196628966",
   "readOnly":true,
   "resources":[
      {
         "accountId":"{{123456789012}}",
         "type":"AWS::KMS::Key",
         "ARN":"arn:aws:kms:us-west-2:{{123456789012}}:key/{{1234abcd-12ab-34cd-56ef-123456SAMPLE}}"
      }
   ],
   "eventType":"AwsApiCall",
   "managementEvent":true,
   "recipientAccountId":"{{123456789012}}",
   "eventCategory":"Management"
}
```