本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
中的数据加密 AWS Transform
本主题提供有关传输中加密和静态加密的特定信息。 AWS Transform
AWS Transform 默认提供加密,使用 AWS 自有密钥进行加密,从而保护敏感的静态客户数据。
加密类型
传输中加密
使用 TLS 1.2 或更高版本的连接保护客户 AWS Transform 与其下游依赖关系之间的通信。 AWS Transform
重要
当您连接发现账户时,T rans AWS form 会代表您在该账户中创建一个 Amazon S3 存储桶。默认情况下,该存储桶未SecureTransport启用。如果您希望存储桶策略包含安全传输,则必须更新该策略。有关更多信息,请参阅 Amazon S3 的安全最佳实践。
静态加密
AWS Transform 使用亚马逊 DynamoDB 和亚马逊简单存储服务 (Amazon S3) Service 存储静态数据。默认情况下,静态数据使用 AWS 加密解决方案进行加密。 AWS Transform 使用来自 AWS Key Management Service (AWS KMS) 的 AWS 自有密钥加密您的数据。您无需采取任何措施来保护加密数据的 AWS 托管密钥。有关更多信息,请参阅《AWS Key Management Service 开发人员指南》中的 AWS 拥有密钥。
| 数据类型 | AWS自有密钥加密 | 客户托管密钥加密(可选) |
|---|---|---|
|
客户存储桶数据 客户输入和输出,例如存储在 Amazon S3 存储桶中的代码和文档 |
已启用 |
已启用 |
|
Artifact 作为代码转换一部分的中间工件存储在 S3 存储桶中 |
已启用 |
已启用 |
|
Job 目标 客户对任务的意图存储在 Amazon S3 存储桶中 |
已启用 |
已启用 |
|
聊天消息 客户之间的消息以及 AWS Transform 存储在 Amazon S3 存储桶中的消息 |
已启用 |
已启用 |
|
聊天知识库 与之相关的索引数据 AWS Transform 和客户聊天数据存储在亚马逊 OpenSearch 并通过 B AWS edrock 进行处理 |
已启用 |
已启用 |
注意:客户可以注册自己的客户管理密钥 (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 需要获得授权才能使用您的客户托管密钥。
当您创建使用客户托管密钥加密的 [资源名称] 时, AWS Transform 会通过向发送 CreateGrant 请求来代表您创建授权 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 (Decrypt)] 使用存储的加密数据密钥访问加密数据。
-
设置停用主体,以允许服务 RetireGrant。
-
kms: DescribeKey — 提供客户托管密钥详细信息以允许 [服务名称] 验证密钥。
用于 SQL 现代化的加密
在 SQL Server 现代化过程中,在您的账户中 AWS Transform 创建资源,例如 EC2 实例、ECS 集群、ECR 映像和 S3 对象。您可以选择提供客户管理的密钥来加密您账户中的数据。您需要使用密钥CreatedFor和值 a wstR ansForm 标记您的 KMS 密钥。如果您没有默认密钥策略,则此示例策略列出了密钥策略所需的最低权限。如果您有默认密钥策略,则除了默认密钥策略外,还需要手动更新 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" ] } } } ]