View a markdown version of this page

中的数据加密 AWS Transform - AWS 转换

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

中的数据加密 AWS Transform

本主题提供有关传输中加密和静态加密的特定信息。 AWS Transform

AWS Transform 默认情况下提供加密,使用 AWS 自有密钥进行加密,以保护敏感的客户数据。

加密类型

传输中加密

使用 TLS 1.2 或更高版本的连接,保护客户之间 AWS Transform AWS Transform 和客户之间的通信及其下游依赖关系。

重要

当您连接发现账户时,T AWS ransform 会代表您在该账户中创建一个 Amazon S3 存储桶。默认情况下,该存储桶未SecureTransport启用。如果您希望存储桶策略包含安全传输,则必须更新该策略。有关更多信息,请参阅 Amazon S3 的安全最佳实践

静态加密

AWS Transform 使用亚马逊 DynamoDB 和亚马逊简单存储服务 (亚马逊 S3) 存储静态数据。默认情况下,静态数据使用 AWS 加密解决方案进行加密。 AWS Transform 使用来自 AWS Key Management Service (AWS KMS) 的 AWS 自有密钥加密您的数据。您无需采取任何措施来保护加密数据的 AWS 托管密钥。有关更多信息,请参阅《AWS Key Management Service 开发人员指南》中的 AWS 拥有密钥

数据类型 AWS-自有密钥加密 客户托管密钥加密(可选)

客户存储桶数据

客户输入和输出,例如存储在 Amazon S3 存储桶中的代码和文档

已启用

已启用

神器商店

作为代码转换一部分的中间构件存储在 S3 存储桶中

已启用

已启用

工作目标

客户对存储在 Amazon S3 存储桶中的任务的意图

已启用

已启用

聊天消息

客户之间和 AWS Transform 存储在 Amazon S3 存储桶中的消息

已启用

已启用

聊天知识库

与亚马逊相关的索引数据 AWS Transform 和客户聊天记录,并通过 AWS Bedro OpenSearch ck 进行处理

已启用

已启用

注意:客户可以注册自己的客户管理密钥 (CMK),用于加密所有上述数据类型。

客户托管密钥是您创建、拥有和管理的 AWS 账户中的 KMS 密钥,用于通过控制 KMS 密钥的访问权限来直接控制对数据的访问权限。仅支持对称密钥。有关创建自己的 KMS 密钥的信息,请参阅AWS Key Management Service 开发人员指南中的创建密钥

当您使用客户管理的密钥时 AWS Transform ,使用 KMS 授权,允许授权用户、角色或应用程序使用 KMS 密钥。当 AWS Transform 管理员选择在配置期间使用客户管理的密钥进行加密时,将为他们创建授权。此项授权可让最终用户使用加密密钥进行静态数据加密。有关授权的更多信息,请参阅 Grants in AWS KMS

AWS 自有密钥(默认)

注意

AWS 拥有的密钥 — 默认情况下 AWS Transform 使用这些密钥自动加密个人身份数据。您无法查看、管理或使用 AWS 自有密钥,也无法审核其使用情况。但是,无需采取任何措施或更改任何计划即可保护用于加密数据的密钥。有关更多信息,请参阅密钥管理服务开发人员指南中的 AWS 自有 AWS密钥。

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

虽然您无法禁用此加密层或选择其他加密类型,但可以在创建转换时选择客户管理的密钥来在现有 AWS 自有加密密钥之上添加第二层加密:

客户管理的密钥(可选)

客户管理的密钥 — AWS Transform 支持使用您创建、 AWS 拥有和管理的对称客户管理密钥,在使用自有密钥的现有加密基础上添加第二层加密。由于您可以完全控制这层加密,因此可以执行以下任务:

  • 制定和维护关键策略

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

  • 启用和禁用密钥策略

  • 轮换加密材料

  • 添加 标签

  • 创建密钥别名

  • 轮换加密材料

  • 添加 标签

  • 创建密钥别名

  • 安排密钥删除

  • 有关更多信息,请参阅《AWS Key Management Service Developer Guide》中的 customer managed key

注意

AWS Transform 使用 AWS 自有密钥自动启用静态加密,以免费保护个人身份数据。但是,使用客户管理的密钥需要 AWS KMS 付费。有关定价的更多信息,请参阅 AWS Key Management Service 定价

有关更多信息 AWS KMS,请参阅什么是 AWS Key Management Service?

操作方法 AWS Transform 将补助金用于 AWS Key Management Service

AWS Transform 需要获得授权才能使用您的客户管理密钥。

当您创建使用客户管理密钥加密的 [资源名称] 时,通过向发送 CreateGrant 请求来代表您 AWS Transform 创建授权 AWS Key Management Service。中的授权 AWS Key Management Service 用于授予对客户账户中的 KMS 密钥的 AWS Transform 访问权限。

AWS Transform 需要获得授权,才能使用您的客户管理密钥进行以下内部操作:

  • 向发送 [KMS API] 请求, AWS KMS 以验证创建 [资源名称] 时输入的对称客户管理的 KMS 密钥 ID 是否有效。

  • 向发送 [KMS API] 请求 AWS KMS 以生成由您的客户管理密钥加密的数据密钥。

  • 发送 [KMS API] 请求 AWS KMS 以解密加密的数据密钥,以便它们可用于加密您的数据。

您可以随时撤销授予访问权限,或删除服务对客户托管密钥的访问权限。如果你这样做,将 AWS Transform 无法访问由客户管理的密钥加密的任何数据,这会影响依赖该数据的操作。例如,如果您尝试从 AWS Transform 无法访问的加密 [资源名称] 获取 [资源名称],则该操作将返回 AccessDeniedException 错误。

创建客户托管密钥

您可以使用管理控制台或 AWS Key Management Service API 创建对称的客户 AWS 管理密钥。

要创建对称客户托管密钥,请按照《AWS Key Management Service 开发人员指南》中的创建对称客户托管密钥步骤进行操作。

要将您的客户管理密钥与您的 AWS Transform 资源一起使用,密钥政策中必须允许以下 API 操作:

kms: CreateGrant — 向客户管理的密钥添加授权。授予对指定 KMS 密钥的控制访问权限,这允许访问权限以授予 AWS Transform 操作需求。有关使用授权的更多信息,请参阅《AWS Key Management Service 开发人员指南》。

这 AWS Transform 允许执行以下操作:

  • 调用 [KMS API (GenerateDataKeyWithoutPlainText/GenerateDatakey) 生成加密的数据密钥并将其存储,因为数据密钥不会立即用于加密。

  • 调用 [KMS API(解密)] 以使用存储的加密数据密钥访问加密数据。

  • 设置停用主体,以允许服务 RetireGrant

  • kms: DescribeKey — 提供客户管理的密钥详细信息,以允许 [服务名称] 验证密钥。

用于 SQL 现代化的加密

SQL Server 现代化过程中,会在您的账户中 AWS Transform 创建资源,例如 EC2 实例、ECS 集群、ECR 映像和 S3 对象。您可以选择提供客户管理的密钥来加密您账户中的数据。您需要使用密钥CreatedFor和值标记您的 KMS 密钥 AWSTrans Form。如果您没有默认密钥策略,此示例策略列出了密钥策略中所需的最低权限。如果您有默认密钥策略,除了默认密钥策略外,您还需要手动更新 KMS 密钥,以允许 ECS 使用您的密钥。

"Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "s3.*.amazonaws.com", "kms:EncryptionContext:aws-transform": "*" }, "ArnLike": { "aws:PrincipalArn": "arn:aws:iam::*:role/*AWSTransform*" } } }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext", "kms:ReEncrypt*" ], "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": "ec2.*.amazonaws.com" }, "ArnLike": { "aws:PrincipalArn": "arn:aws:iam::*:role/*AWSTransform*" } } }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringLike": { "kms:ViaService": [ "ec2.*.amazonaws.com", "ecr.*.amazonaws.com" ] }, "Bool": { "kms:GrantIsForAWSResource": "true" }, "ArnLike": { "aws:PrincipalArn": "arn:aws:iam::*:role/*AWSTransform*" } } }, { "Effect": "Allow", "Principal": { "Service": "fargate.amazonaws.com" }, "Action": "kms:GenerateDataKeyWithoutPlaintext", "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:ecs:clusterName": "AWSTransform*" } } }, { "Effect": "Allow", "Principal": { "Service": "fargate.amazonaws.com" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:ecs:clusterName": "AWSTransform*" }, "ForAllValues:StringEquals": { "kms:GrantOperations": "Decrypt" } } } ]

数据库迁移加密

在数据库迁移过程中, AWS Transform 使用 AWS 数据库迁移服务 (DMS) 迁移数据库数据。您可以选择提供客户管理的密钥以在迁移期间加密您的数据库数据。

以下政策包含三个声明。第一条语句授予根账户对 AWS KMS 密钥的权限。第二条语句允许连接器角色在发现期间验证密钥。第三条语句允许连接器角色使用密钥进行 DMS 操作。

"Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow connector role to validate key during discovery", "Effect": "Allow", "Principal": { "AWS": "connector-role-arn" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Sid": "Allow connector role to use key via DMS", "Effect": "Allow", "Principal": { "AWS": "connector-role-arn" }, "Action": [ "kms:CreateGrant", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GenerateDataKey*", "kms:ReEncrypt*" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "dms.us-east-1.amazonaws.com" } } } ]

使用客户自主管理型 KMS 密钥

创建客户管理的 KMS 密钥后, AWS Transform 管理员必须在 AWS Transform 控制台中提供密钥才能使用它来加密数据。

要设置客户管理的密钥以对中的数据进行加密 AWS Transform,管理员需要权限才能使用 AWS KMS。

要使用使用客户管理的密钥加密的功能,用户需要 AWS Transform 允许访问客户管理的密钥的权限。

如果您在使用时看到与 KMS 授权相关的错误 AWS Transform,则可能需要更新权限 AWS Transform 以允许创建授权。要自动配置所需的权限,请转到 AWS Transform 控制台并在页面顶部的横幅中选择更新权限。 AWS Transform 为了允许创建授权,您需要更新 AWS Transform 控制台页面上的权限。

允许 AWS Transform 访问客户管理的密钥

以下示例策略声明通过允许用户访问密钥来授予用户 AWS Transform 访问使用客户管理密钥加密的功能的权限。 AWS Transform 如果管理员设置了客户管理的密钥进行加密,则必须使用此策略。

注意

此信息不适用于使用 CMK 的 SQL Server 现代化部署工作流程。

"Statement": [ { "Sid": "QKMSDecryptGenerateDataKeyPermissions", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext", "kms:ReEncryptFrom", "kms:ReEncryptTo" ], "Resource": [ "arn:aws:kms:arn:aws::111122223333:key/[[key_id]]" ], "Condition": { "StringLike": { "kms:ViaService": [ "q.us-east-1.amazonaws.com" ] } } } ]