View a markdown version of this page

创建客户托管的密钥 - Amazon Transcribe

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

创建客户托管的密钥

您可以使用或 AWS KMS API 创建对称的客户管理密钥。 AWS 管理控制台要创建对称的客户管理密钥,请按照 AWS Key Management Service 开发人员指南中的创建对称客户管理密钥的步骤进行操作。

密钥政策控制对客户托管密钥的访问。每个客户托管式密钥必须只有一个密钥策略,其中包含确定谁可以使用密钥以及如何使用密钥的声明。创建客户托管式密钥时,可以指定密钥策略。有关更多信息,请参阅《 AWS Key Management Service 开发者指南》中的管理对客户管理密钥的访问权限。

AWS KMS 的关键政策 AWS HealthScribe

如果您使用与您在StartMedicalScribeStream请求中指定的 IAM 角色相同的账户DataAccessRole中的密钥,则无需更新密钥政策。 StartMedicalScribeJob ResourceAccessRole要在不同的账户中使用客户管理的密钥作为 DataAccessRole (用于转录任务)或 ResourceAccessRole (用于直播),您必须信任密钥政策中相应的角色才能执行以下操作:

  • kms:Encrypt - 允许使用客户管理型密钥进行加密

  • kms:Decrypt - 允许使用客户管理型密钥进行解密

  • kms:DescribeKey— 提供客户管理的密钥详细信息 AWS HealthScribe 以允许验证密钥

以下是密钥策略示例,您可以使用该策略向 ResourceAccessRole 跨账户授予使用客户管理密钥进行 AWS HealthScribe 直播的权限。要将此政策用于转录作业,请更新Principal为使用 DataAccessRole ARN,然后删除或修改加密上下文。

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

适用于访问角色的 IAM 策略权限

无论客户管理的密钥和角色位于相同还是不同的账户中,附加到您的 DataAccessRole 或 ResourceAccessRole 必须授予执行必要 AWS KMS 操作的权限。此外,角色的信任策略必须授予代入该角色的 AWS HealthScribe 权限。

以下 IAM 策略示例显示了如何授予 AWS HealthScribe 流媒体 ResourceAccessRole 权限。要将此策略用于转录作业,请删除或修改加密上下文。流媒体和转录任务的kms:ViaService条件值相同。

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey*" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/KMS-Example-KeyId", "Condition": { "StringEquals": { "kms:ViaService": "transcribe.us-west-2.amazonaws.com", "kms:EncryptionContext:aws:us-east-1:transcribe:medical-scribe:session-id": "1234abcd-12ab-34cd-56ef-123456SAMPLE" } } }, { "Effect": "Allow", "Action": [ "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/KMS-Example-KeyId", "Condition": { "StringEquals": { "kms:ViaService": "transcribe.us-west-2.amazonaws.com" } } } ] }

以下是的信任策略示例 ResourceAccessRole。对于 DataAccessRole,替换transcribe.streaming.amazonaws.com为transcribe.amazonaws.com。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "transcribe.streaming.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:transcribe:us-west-2:111122223333:*" } } } ] }

有关在策略中指定权限或解决密钥访问问题的更多信息,请参阅 AWS Key Management Service 开发者指南。