Amazon Bedrock Studio 加密 - Amazon Bedrock

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

Amazon Bedrock Studio 加密

Amazon Bedrock Studio 在 Amazon Bedrock 中为预览版,未来可能发生变化。

默认情况下,静态数据加密有助于降低保护敏感数据的操作开销和复杂性。同时,它还支持构建符合严格加密合规性和监管要求的安全应用程序。

Amazon Bedrock Studio 使用默认的 AWS 拥有的密钥自动加密静态数据。您无法查看、管理或审计对 AWS 拥有的密钥的使用。有关更多信息,请参阅 AWS 拥有的密钥

虽然您无法禁用此加密层,也不能选择其他加密类型,但您可以在创建 Amazon Bedrock Studio 域时选择客户自主管理型密钥,从而在现有的 AWS 拥有的加密密钥上添加第二层加密。Amazon Bedrock Studio 支持使用您可以创建、拥有和管理的对称客户自主管理型密钥,在现有的 AWS 自带加密的基础上添加第二层加密。由于您可以完全控制这层加密,因此可以执行以下任务:

  • 建立和维护密钥政策

  • 创建和维护 IAM 策略和授权

  • 启用和禁用密钥政策

  • 轮换密钥加密材料

  • 添加标签

  • 创建密钥别名

  • 计划密钥删除

有关更多信息,请参阅客户自主管理型密钥

注意

Amazon Bedrock Studio 使用 AWS 拥有的密钥自动启用静态加密,从而免费保护客户数据。

使用客户自主管理型密钥会产生 AWS KMS 费用。有关定价的更多信息,请参阅 AWS Key Management Service 定价

创建客户托管密钥

可以使用 AWS 管理控制台或者 AWS KMS API 创建对称的客户托管密钥。

要创建对称客户自主管理型密钥,请按照《AWS Key Management Service Developer Guide》中的 Creating symmetric customer managed key 的步骤进行操作。

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

注意

如果您使用客户自主管理型密钥,请务必使用 EnableBedrock 密钥和 true 值标记 AWS KMS 密钥。有关更多信息,请参阅 Tagging keys

要将客户自主管理型密钥与 Amazon Bedrock Studio 资源结合使用,密钥政策中必须允许以下 API 操作:

  • kms:CreateGrant – 添加访问客户自主管理型密钥的授权。授予对指定 KMS 密钥的控制访问权限,从而允许访问授权操作,这些操作是 Amazon Bedrock Studio 所需的。有关使用授权的更多信息,请参阅 AWS Key Management Service 开发人员指南。

  • kms:DescribeKey – 提供客户自主管理型密钥的详细信息,允许 Amazon Bedrock Studio 验证密钥。

  • kms:GenerateDataKey – 返回唯一的对称数据密钥,以供在 KMS 外部使用。

  • kms:Decrypt – 解密已通过 KMS 密钥加密的加密文字。

以下是您可以为 Amazon Bedrock Studio 添加的策略语句示例。要使用策略,请执行以下操作:

  • \{FIXME:REGION\} 实例替换为您正在使用的 AWS 区域,将 \{FIXME:ACCOUNT_ID\} 替换为您的 AWS 账户 ID。JSON 中无效的 \ 字符表示需要更新的位置。例如,"kms:EncryptionContext:aws:bedrock:arn": "arn:aws:bedrock:\{FIXME:REGION\}:\{FIXME:ACCOUNT_ID\}:agent/*" 将为 "kms:EncryptionContext:aws:bedrock:arn": "arn:aws:bedrock:use-east-1:111122223333:agent/*"

  • \{provisioning role name\} 更改为将用于使用密钥的工作区的预调配角色的名称。

  • \{Admin Role Name\} 更改为将对密钥拥有管理权限的 IAM 角色的名称。

{ "Version": "2012-10-17", "Statement": [{ "Sid": "Enable IAM User Permissions Based on Tags", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:GenerateDataKeyPair", "kms:GenerateDataKeyPairWithoutPlaintext", "kms:GenerateDataKeyWithoutPlaintext", "kms:Encrypt" ], "Resource": "\{FIXME:KMS_ARN\}", "Condition": { "StringEquals": { "aws:PrincipalTag/AmazonBedrockManaged": "true", "kms:CallerAccount" : "\{FIXME:ACCOUNT_ID\}" }, "StringLike": { "aws:PrincipalTag/AmazonDataZoneEnvironment": "*" } } }, { "Sid": "Allow Amazon Bedrock to encrypt and decrypt Agent resources on behalf of authorized users", "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "\{FIXME:KMS_ARN\}", "Condition": { "StringLike": { "kms:EncryptionContext:aws:bedrock:arn": "arn:aws:bedrock:\{FIXME:REGION\}:\{FIXME:ACCOUNT_ID\}:agent/*" } } }, { "Sid": "Allows AOSS list keys", "Effect": "Allow", "Principal": { "Service": "aoss.amazonaws.com" }, "Action": "kms:ListKeys", "Resource": "*" }, { "Sid": "Allows AOSS to create grants", "Effect": "Allow", "Principal": { "Service": "aoss.amazonaws.com" }, "Action": [ "kms:DescribeKey", "kms:CreateGrant" ], "Resource": "\{FIXME:KMS_ARN\}", "Condition": { "StringEquals": { "kms:ViaService": "aoss.\{FIXME:REGION\}.amazonaws.com" }, "Bool": { "kms:GrantIsForAWSResource": "true" } } }, { "Sid": "Enable Decrypt, GenerateDataKey for DZ execution role", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::\{FIXME:ACCOUNT_ID\}:root" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "\{FIXME:KMS_ARN\}", "Condition": { "StringLike": { "kms:EncryptionContext:aws:datazone:domainId": "*" } } }, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RetireGrant" ], "Resource": "*", "Condition": { "StringLike": { "kms:CallerAccount": "\{FIXME:ACCOUNT_ID\}" }, "Bool": { "kms:GrantIsForAWSResource": "true" } } }, { "Sid": "AllowPermissionForEncryptedGuardrailsOnProvisioningRole", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::\{FIXME:ACCOUNT_ID\}:role/\{provisioning role name\}" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "kms:DescribeKey", "kms:CreateGrant", "kms:Encrypt" ], "Resource": "*" }, { "Sid": "Allow use of CMK to encrypt logs in their account", "Effect": "Allow", "Principal": { "Service": "logs.\{FIXME:REGION\}.amazonaws.com" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:GenerateDataKey", "kms:GenerateDataKeyPair", "kms:GenerateDataKeyPairWithoutPlaintext", "kms:GenerateDataKeyWithoutPlaintext", "kms:DescribeKey" ], "Resource": "*", "Condition": { "ArnLike": { "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:\{FIXME:REGION\}:\{FIXME:ACCOUNT_ID\}:log-group:*" } } }, { "Sid": "Allow access for Key Administrators", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::\{FIXME:ACCOUNT_ID\}:role/\{Admin Role Name\}" }, "Action": [ "kms:Create*", "kms:Describe*", "kms:Enable*", "kms:List*", "kms:Put*", "kms:Update*", "kms:Revoke*", "kms:Disable*", "kms:Get*", "kms:Delete*", "kms:TagResource", "kms:UntagResource", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource": "*" } ] }

有关在策略中指定权限的更多信息,请参阅《AWS Key Management Service 开发人员指南》。

有关密钥访问故障排除的更多信息,请参阅《AWS Key Management Service 开发人员指南》。