用于模型评估作业的数据加密 - Amazon Bedrock

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

用于模型评估作业的数据加密

在模型评估工作期间,Amazon Bedrock 会对暂时存在的数据进行副本。任务完成后,Amazon Bedrock 会删除数据。它使用密 AWS KMS 钥对其进行加密。它要么使用您指定的 AWS KMS 密钥,要么使用Amazon Bedrock拥有的密钥来加密数据。

Amazon Bedrock 使用以下 IAM 和 AWS Key Management Service 权限使用您的密 AWS KMS 钥来解密您的数据并加密它制作的临时副本。

AWS Key Management Service 为模型评估工作提供支持

当您使用、或支持的 AWS 软件开发工具包创建模型评估任务时 AWS Management Console AWS CLI,您可以选择使用 Amazon Bedrock 拥有的 KMS 密钥或您自己的客户托管密钥。如果未指定客户托管密钥,则默认使用 Amazon Bedrock 拥有的密钥。

要使用客户托管密钥,您必须将所需的 IAM 操作和资源添加到 IAM 服务角色的策略中。您还必须添加所需的 AWS KMS 关键策略元素。

您还需要创建一个可以与您的客户托管密钥进行交互的策略。这是在单独的 AWS KMS 密钥策略中指定的。

Amazon Bedrock 使用以下 IAM 和 AWS KMS 权限来使用您的密 AWS KMS 钥来解密您的文件并对其进行访问。它将这些文件保存到由 Amazon Bedrock 管理的 Amazon S3 内部位置,并使用以下权限对其进行加密。

IAM 政策要求

与你用来向 Amazon Bedrock 发出请求的 IAM 角色关联的 IAM 策略必须包含以下元素。要了解有关管理 AWS KMS 密钥的更多信息,请参阅将 IAM 策略与一起使用 AWS Key Management Service

Amazon Bedrock 中的模型评估工作使用 AWS 自有密钥。这些 KMS 密钥归亚马逊 Bedrock 所有。要了解有关 AWS 自有密钥的更多信息,请参阅AWS Key Management Service 开发者指南中的AWS 自有密钥

必需的 IAM 策略元素
  • kms:Decrypt— 对于您使用 AWS Key Management Service 密钥加密的文件,请向 Amazon Bedrock 提供访问和解密这些文件的权限。

  • kms:GenerateDataKey— 控制使用 AWS Key Management Service 密钥生成数据密钥的权限。Amazon Bedrock 使用GenerateDataKey它为评估任务存储的临时数据进行加密。

  • kms:DescribeKey— 提供有关 KMS 密钥的详细信息。

  • kms:ViaService— 条件密钥将 KMS 密钥的使用限制为来自指定 AWS 服务的请求。您必须将 Amazon S3 指定为服务,因为 Amazon Bedrock 将您的数据临时副本存储在其拥有的 Amazon S3 位置。

以下是 IAM 策略示例,其中仅包含所需的 AWS KMS IAM 操作和资源。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CustomKMSKeyProvidedToBedrock", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:{{region}}:{{accountId}}:key/[[keyId]]" ], "Condition": { "StringEquals": { "kms:ViaService": "s3.{{region}}.amazonaws.com" } } }, { "Sid": "CustomKMSDescribeKeyProvidedToBedrock", "Effect": "Allow", "Action": [ "kms:DescribeKey" ], "Resource": [ "arn:aws:kms:{{region}}:{{accountId}}:key/[[keyId]]" ] } ] }

AWS KMS 关键政策要求

每个 AWS KMS 密钥必须只有一个密钥策略。密钥策略中的声明决定谁有权使用 AWS KMS 密钥以及他们如何使用密钥。您也可以使用 IAM 策略和授权来控制对 AWS KMS 密钥的访问权限,但每个 AWS KMS 密钥都必须有密钥策略。

Amazon Bedrock 中必需的 AWS KMS 关键政策要素
  • kms:Decrypt— 对于您使用 AWS Key Management Service 密钥加密的文件,请向 Amazon Bedrock 提供访问和解密这些文件的权限。

  • kms:GenerateDataKey— 控制使用 AWS Key Management Service 密钥生成数据密钥的权限。Amazon Bedrock 使用GenerateDataKey它为评估任务存储的临时数据进行加密。

  • kms:DescribeKey— 提供有关 KMS 密钥的详细信息。

您必须将以下语句添加到现有的 AWS KMS 密钥策略中。它为 Amazon Bedrock 提供了使用您指定的将您的数据临时存储在 Amazon Bedrock 服务存储桶中的权限。 AWS KMS

{ "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:evaluationJobArn": "arn:aws:bedrock:{{region}}:{{accountId}}:evaluation-job/*", "aws:SourceArn": "arn:aws:bedrock:{{region}}:{{accountId}}:evaluation-job/*" } } }

以下是完整 AWS KMS 策略的示例。

{ "Version": "2012-10-17", "Id": "key-consolepolicy-3", "Statement": [ { "Sid": "EnableIAMUserPermissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{{CustomerAccountId}}:root" }, "Action": "kms:*", "Resource": "*" }, { "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:evaluationJobArn": "arn:aws:bedrock:{{region}}:{{accountId}}:evaluation-job/*", "aws:SourceArn": "arn:aws:bedrock:{{region}}:{{accountId}}:evaluation-job/*" } } } ] }