加密的 WorkSpace - Amazon WorkSpaces
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

加密的 WorkSpace

WorkSpaces 与Amazon Key Management Service(Amazon KMS)。这使您能够使用客户主密钥 (CMK) 来加密 WorkSpace 的存储卷。在您启动 WorkSpace 时,可以加密根卷(对于 Microsoft Windows,为 C 驱动器;对于 Linux,为 /)和用户卷(对于 Windows,为 D 驱动器;对于 Linux,为 /home)。这样做可确保静态存储的数据、卷的磁盘 I/O 及从加密卷创建的快照都会被加密。

Prerequisites

在开始加密过程之前,您需要一个 Amazon KMS CMK。此 CMK 可以是 Amazon托管 CMKAmazon WorkSpaces (aws/workspaces)或对称客户托管 CMK.

  • Amazon托管 CMK— 首次从区域中的 WorkSpace 控制台启动未加密的 WorkSpaces 时,Amazon WorkSpaces 会自动创建Amazon托管 CMK (aws/workspaces) 在您的账户中。您可以选择此Amazon托管 CMK 来加密您的 WorkSpace 的用户卷和根卷。有关详细信息,请参阅使用的 WorkSpaces 加密概述Amazon KMS

    您可以查看Amazon托管 CMK(包括其策略和授权),并可以在Amazon CloudTrail日志,但您无法使用或管理此 CMK。Amazon WorkSpaces 创建和管理此 CMK。只有 Amazon WorkSpaces 可以使用此 CMK,WorkSpaces 只能使用它来加密您账户中的 WorkSpace 资源。

    Amazon托管 CMK(包括 Amazon WorkSpaces 支持的密钥)每三年轮换一次。有关详细信息,请参阅。轮换客户主密钥中的Amazon Key Management Service开发人员指南.

  • 客户托管 CMK— 或者,您可以选择您使用创建的对称客户托管 CMKAmazon KMS. 您可以查看、使用和管理此 CMK,包括设置其策略。有关创建 CMK 的更多信息,请参阅创建密钥中的Amazon Key Management Service开发人员指南. 有关使用 CMK 的更多信息Amazon KMSAPI 中,请参阅使用密钥中的Amazon Key Management Service开发人员指南.

    除非您决定启用自动密钥轮换,否则客户管理的 CMK 不会自动轮换。有关详细信息,请参阅。轮换客户主密钥中的Amazon Key Management Service开发人员指南.

重要

旋转 CMK 时,必须同时保持原始 CMK 和新 CMK 的启用状态,以便Amazon KMS可以解密原始 CMK 加密的 WorkSpaces。如果您不想保持启用原始 CMK,则必须重新创建 WorkSpaces 并使用新的 CMK 对它们进行加密。

您必须满足以下要求才能使用 Amazon KMS CMK 加密您的 WorkSpace:

Limits

  • 您无法加密现有的工作区。您必须在启动工作区时对其加密。

  • 不支持从加密的 WorkSpace 中创建自定义映像。

  • 目前不支持禁用已加密 WorkSpace 的加密。

  • 对于在启动时启用了根卷加密的 WorkSpace,可能需要多达一个小时的时间才能完成配置。

  • 要重启或重建已加密的 WorkSpace,请先确保 Amazon KMS CMK 已启用;否则 WorkSpace 将变得不可用。要确定是否已启用 CMK,请参阅显示 CMK 详细信息中的Amazon Key Management Service开发人员指南.

使用的 WorkSpaces 加密概述Amazon KMS

当您创建使用加密卷的 WorkSpaces 时,WorkSpace 将使用亚马逊 Elastic Block Store (Amazon EBS) 创建和管理这些卷。Amazon EBS 使用行业标准的 AES-256 算法使用数据密钥加密您的卷。亚马逊 EBS 和 Amazon WorkSpaces 都使用您的 CMK 来处理加密的卷。有关 EBS 卷加密的更多信息,请参阅Amazon EBS 加密中的Windows 实例 Amazon EC2 用户指南.

当您启动使用加密卷的 WorkSpace 时,端到端过程的工作方式如下所示:

  1. 您指定用于加密的 CMK,以及 WorkSpace 的用户和目录。此操作将创建授予,允许 WorkSpaces 将您的 CMK 仅用于此 WorkSpace,即仅用于与指定用户和目录相关联的 WorkSpace。

  2. WorkSpaces 创建加密的 EBS 卷,并指定要使用的 CMK,以及该卷的用户和目录。该操作创建一个授权,允许 Amazon EBS 将您的 CMK 仅用于此 WorkSpace 和卷,即仅用于与指定用户和目录相关联的 WorkSpace,以及指定的卷。

  3. Amazon EBS 请求使用您的 CMK 加密的卷数据密钥,并指定 WorkSpace 用户的活动目录安全标识符 (SID) 和Amazon Directory Service目录 ID 以及 Amazon EBS 卷 ID 作为加密上下文.

  4. Amazon KMS创建新的数据密钥,使用您的 CMK 对其进行加密,然后将加密的数据密钥发送到 Amazon EBS。

  5. WorkSpaces 使用 Amazon EBS 将加密卷附加到您的 WorkSpace。Amazon EBS 将加密的数据密钥发送到Amazon KMS带有 Decrypt请求,并指定 WorkSpace 用户的 SID、目录 ID 和卷 ID(用作加密上下文)。

  6. Amazon KMS使用您的 CMK 解密数据密钥,然后将纯文本数据密钥发送到 Amazon EBS。

  7. Amazon EBS 使用纯文本数据密钥加密所有传入和传出加密卷的数据。只要卷附加在 WorkSpace 上,Amazon EBS 就会将纯文本数据密钥保存在内存中。

  8. Amazon EBS 会存储加密数据密钥(接收至步骤 4)与卷元数据一起使用,以供将来重启或重建 WorkSpace 时使用。

  9. 当您使用Amazon Web Services Management Console删除 WorkSpace(或使用TerminateWorkspaces操 WorkSpaces),WorkSpace 和 Amazon EBS 将停用允许它们针对该 WorkSpace 使用 CMK 的授权。

WorkSpaces 加密上下文

WorkSpaces 不会直接将 CMK 用于加密操作(例如EncryptDecryptGenerateDataKey等),这意味着 WorkSpaces 不会将请求发送到Amazon KMS,其中包括加密上下文. 但是,当 Amazon EBS 为您的 WorkSpaces 的加密卷请求加密数据密钥时(步骤 3中的使用的 WorkSpaces 加密概述Amazon KMS),并且当它请求该数据密钥的明文副本(步骤 5),它在请求中包含加密上下文。

加密上下文其他已经过身份验证的数据(AAD)Amazon KMS用于确保数据完整性。加密上下文已写入到Amazon CloudTrail日志文件,这可以帮助您了解为什么要使用给定的 CMK。Amazon EBS 会对加密上下文使用以下内容:

  • 与 WorkSpace 关联的活动目录用户的安全标识符 (SID)

  • 与 WorkSpace 关联的 Amazon Directory Service 目录的目录 ID

  • 加密卷的 Amazon EBS 卷 ID

以下示例显示了 Amazon EBS 使用的加密上下文的 JSON 表示形式:

{ "aws:workspaces:sid-directoryid": "[S-1-5-21-277731876-1789304096-451871588-1107]@[d-1234abcd01]", "aws:ebs:id": "vol-1234abcd" }

向 WorkSpaces 授予代表您使用 CMK 的权限

您 WorkSpace 以在Amazon适用于 WorkSpaces 的托管 CMK (aws/workspaces) 或客户托管 CMK。如果您使用客户托管 CMK,则需要授予 WorkSpaces 代表您账户中的 WorkSpace 管理员使用 CMK 的权限。这些区域有:Amazon默认情况下,适用于 WorkSpaces 的托管 CMK 具有必需权限。

要准备您的客户托管 CMK 以便与 WorkSpaces 结合使用,请使用以下过程。

您的 WorkSpaces 管理员还需拥有使用 WorkSpaces 的权限。有关这些权限的更多信息,请转到适用于 WorkSpaces 的 Identity ty of Access.

第 1 部分:将 WorkSpaces 管理员作为关键用户添加到

要为 WorkSpaces 管理员提供其所需的权限,您可以使用Amazon Web Services Management Console或Amazon KMSAPI。

添加 WorkSpaces 管理员作为 CMK 的密钥用户 (控制台)

  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon Key Management Service (Amazon KMS) 控制台:https://console.aws.amazon.com/kms

  2. 要更改 Amazon 区域,请使用页面右上角的 Region selector (区域选择器)。

  3. 在导航窗格中,选择客户托管密钥

  4. 选择首选客户托管 CMK 的密钥 ID 或别名。

  5. 选择 Key policy (密钥策略) 选项卡。UNDER关键用户中,选择Add.

  6. 在 IAM 用户和角色列表中,选择与您的 WorkSpaces 管理员对应的用户和角色,然后选择Add.

添加 WorkSpaces 管理员作为 CMK 的密钥用户 (API)

  1. 使用 GetKeyPolicy 操作获取现有密钥策略,然后将策略文档保存到文件中。

  2. 在您的首选文本编辑器中打开策略文档。将与您的 WorkSpace 管理员对应的 IAM 用户和角色添加到向关键用户授予权限. 然后保存文件。

  3. 使用 PutKeyPolicy 操作将密钥策略应用于 CMK。

第 2 部分:使用 IAM 策略为 WorkSpaces 管理员提供额外权限

如果您选择用于加密的客户托管 CMK,则必须建立 IAM 策略,允许 Amazon WorkSpaces 代表您账户中启动加密 WorkSpace 的 IAM 用户使用 CMK。该用户还需要使用 Amazon WorkSpaces 的权限。有关创建和编辑 IAM 用户策略的更多信息,请参阅管理 IAM 策略中的IAM 用户指南适用于 WorkSpaces 的 Identity ty of Access.

WorkSpaces 加密需要对 CMK 拥有有限访问权限。以下是您可以使用的一个示例密钥策略。此策略将可以管理 Amazon KMS CMK 的委托人与可以使用它的委托人分开。在使用此示例密钥策略之前,请将示例账户 ID 和 IAM 用户名替换为您账户中的实际值。

第一个语句与默认 Amazon KMS 密钥策略匹配。它授予您的账户使用 IAM 策略控制对 CMK 的访问的权限。第二个和第三个语句定义了哪些Amazon委托人可以分别管理和使用密钥。第四条语句启用Amazon服务集成到Amazon KMS代表指定委托人使用密钥。此语句启用Amazon服务创建和管理授权。该语句使用一个条件元素,该元素将 CMK 上的授权限制为由Amazon服务代表您帐户中的用户。

注意

如果您的 WorkSpaces 管理员使用Amazon Web Services Management Console创建使用加密卷的 WorkSpaces,则管理员需要具有列出别名和列出密钥的权限("kms:ListAliases""kms:ListKeys"权限)。如果您的 WorkSpaces 管理员仅使用 Amazon WorkSpace API(而不是控制台),则可以省略"kms:ListAliases""kms:ListKeys"权限。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::123456789012:root"}, "Action": "kms:*", "Resource": "*" }, { "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::123456789012:user/Alice"}, "Action": [ "kms:Create*", "kms:Describe*", "kms:Enable*", "kms:List*", "kms:Put*", "kms:Update*", "kms:Revoke*", "kms:Disable*", "kms:Get*", "kms:Delete*" ], "Resource": "*" }, { "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::123456789012:user/Alice"}, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, { "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::123456789012:user/Alice"}, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": {"Bool": {"kms:GrantIsForAWSResource": "true"}} } ] }

用于加密 WorkSpace 的用户或角色的 IAM 策略必须包含有关客户托管 CMK 的使用权限以及 WorkSpaces 的访问权限。要向 IAM 用户或角色授予 WorkSpaces 权限,您可以将以下示例策略附加到 IAM 用户或角色。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ds:*", "ds:DescribeDirectories", "workspaces:*", "workspaces:DescribeWorkspaceBundles", "workspaces:CreateWorkspaces", "workspaces:DescribeWorkspaceBundles", "workspaces:DescribeWorkspaceDirectories", "workspaces:DescribeWorkspaces", "workspaces:RebootWorkspaces", "workspaces:RebuildWorkspaces" ], "Resource": "*" } ] }

用户需要以下 IAM 策略才能使用Amazon KMS. 它为用户提供了对 CMK 的只读访问权限以及创建授权的能力。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:Describe*", "kms:List*" ], "Resource": "*" } ] }

如果要在策略中指定 CMK,请使用类似于以下内容的 IAM 策略。将示例 CMK ARN 替换为有效 ARN。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kms:CreateGrant", "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, { "Effect": "Allow", "Action": [ "kms:ListAliases", "kms:ListKeys" ], "Resource": "*" } ] }

加密 WorkSpace

加密 WorkSpace

  1. 从打开 WorkSpaces 控制台https://console.aws.amazon.com/workspaces/.

  2. 选择 Launch WorkSpaces 并完成前三步。

  3. 对于 WorkSpaces Configuration 步骤,执行以下操作:

    1. 选择要加密的卷:Root Volume用户卷,或两种卷。

    2. 适用于加密钥中,选择Amazon KMSCMK,无论是Amazon由 Amazon WorkSpaces 或您创建的 CMK 创建。您选择的 CMK 必须是对称的。Amazon WorkSpaces 不支持非对称 CMK。

    3. 选择 Next Step

  4. 选择 Launch WorkSpaces

查看加密的 WorkSpaces

要从 WorkSpaces 控制台上查看哪些 WorkSpace 和卷已加密,请选择WorkSpaces左侧的导航栏。Volume Encryption 列显示每个 WorkSpace 的加密是启用还是禁用。要查看哪些特定卷已加密,请展开 WorkSpace 条目以查看 Encrypted Volumes 字段。