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

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

EncryptedWorkSpaces

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

先决条件

你需要Amazon KMS在开始加密过程之前,请密钥。此 KMS 密钥可以是Amazon托管 KMS 密钥适用于 AmazonWorkSpaces(aws/workspaces) 或对称客户管理的 KMS Key.

  • Amazon托管 KMS 密钥— 你第一次启动未加密的WorkSpace来自 的WorkSpaces地区中的控制台,亚马逊WorkSpaces自动创建Amazon托管 KMS 密钥 (aws/workspaces) 在您的账户中。您可以选择此项Amazon托管 KMS 密钥,用于加密您的用户卷和根卷WorkSpace. 有关详细信息,请参阅 使用 Amazon KMS 的 WorkSpaces 加密概述

    您可以查看此Amazon托管 KMS Key,包括其策略和授权,并且可以在Amazon CloudTrail日志,但是您无法使用或管理此 KMS 密钥。亚马逊WorkSpaces创建和管理此 KMS 密钥。只有亚马逊WorkSpaces可以使用这个 KMS 密钥,并且WorkSpaces只能用它来加密WorkSpaces您的账户中的资源。

    Amazon托管 KMS 密钥,包括亚马逊的那个WorkSpaces支持,每三年轮换一次。有关详细信息,请参阅。旋转Amazon KMS密钥中的Amazon Key Management Service开发人员指南.

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

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

重要

轮换 KMS 密钥时,必须同时启用原始 KMS 密钥和新的 KMS 密钥,以便Amazon KMS可以解密WorkSpaces原来的 KMS 密钥已加密。如果您不想保留原始 KMS 密钥的启用,则必须重新创建您的WorkSpaces然后使用新的 KMS 密钥对它们进行加密。

您必须满足以下要求才能使用Amazon KMS密钥加密你的WorkSpaces:

限制

  • 您无法加密现有的WorkSpace. 你必须加密WorkSpace当您启动时。

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

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

  • WorkSpaces在启用了根卷加密的情况下启动最多需要一个小时的时间才能配置

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

使用 Amazon KMS 的 WorkSpaces 加密概述

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

当你启动时WorkSpaces对于加密卷,end-to-end过程的工作方式如下所示

  1. 您指定用于加密的 KMS 密钥,以及用于加密的用户和目录。WorkSpace. 此操作将创建授予允许WorkSpaces仅为此使用 KMS 密钥WorkSpace— 也就是说,只适用于WorkSpace与指定的用户和目录关联。

  2. WorkSpaces为WorkSpace并指定要使用的 KMS 密钥,以及卷的用户和目录。此操作创建了一个授权,允许 Amazon EBS 仅为此使用您的 KMS KeyWorkSpace和音量 — 也就是说,仅适用于WorkSpace与指定的用户和目录关联,且仅针对指定的卷。

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

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

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

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

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

  8. Amazon EBS 存储加密数据密钥(在接收时间为步骤 4) 使用卷元数据,以供将来重启或重建WorkSpace.

  9. 当您使用Amazon Web Services Management Console删除WorkSpace(或者使用TerminateWorkspaces中的操作WorkSpacesAPI),WorkSpaces而且亚马逊 EBS 退出了允许他们使用您的 KMS 密钥的补助WorkSpace.

WorkSpaces 加密上下文

WorkSpaces不会直接使用 KMS Key 进行加密操作(例如EncryptDecryptGenerateDataKey等),这意味着WorkSpaces不会向Amazon KMS其中包括加密上下文. 但是,当 Amazon EBS 为您的加密卷请求加密数据密钥时WorkSpaces(步骤 3中的使用 Amazon KMS 的 WorkSpaces 加密概述)以及当它请求该数据密钥的明文副本时(步骤 5),它在请求中包括加密上下文。

加密上下文提供 Amazon KMS 用于确保数据完整性而使用的额外的身份验证数据 (AAD)。加密上下文也会写入到您的Amazon CloudTrail日志文件,它可以帮助您了解为什么要使用给定的 KMS 密钥。Amazon EBS 会对加密上下文使用以下内容:

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

  • 的目录 IDAmazon Directory Service与WorkSpace

  • 加密卷的 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" }

GrantWorkSpaces为您提供代表您使用 KMS KEY 的权限

你可以保护你的WorkSpace下面的数据Amazon托管 KMS 密钥WorkSpaces(aws/workspaces) 或者客户管理的 KMS Key。如果您使用客户管理的 KMS Key,则需要授予WorkSpaces代表使用 KMS 密钥的权限WorkSpaces账户中的管理员。这些区域有:Amazon托管 KMS 密钥WorkSpaces默认情况下,具有必需权限。

要准备您的客户托管 KMS Key 以便与结合使用WorkSpaces则应使用以下过程。

您的WorkSpaces管理员还需拥有使用的权限WorkSpaces. 有关这些权限的更多信息,请转到适用于 WorkSpaces 的 ID 和访问管理.

第 1 部分:AddWorkSpaces管理员以关键用户身份

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

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

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

  2. 要更改Amazon Web Services 区域,请使用页面右上角的区域选择器。

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

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

  5. 选择 Key policy (密钥策略) 选项卡。在 Key users(密钥用户)下,选择 Add(添加)。

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

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

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

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

  3. 使用PutKey策略操作将密钥策略应用于 KMS 密钥。

第 2 部分:GrantWorkSpaces管理员使用 IAM 策略的额外权限

如果您选择用于加密的客户托管 KMS Key,则必须建立允许 Amazon 使用的 IAM 策略。WorkSpaces代表账户中启动加密的 IAM 用户使用 KMS 密钥WorkSpaces. 该用户还需要使用亚马逊的权限。WorkSpaces. 有关创建和编辑 IAM 用户策略的更多信息,请参阅管理 IAM 策略中的IAM 用户指南适用于 WorkSpaces 的 ID 和访问管理.

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

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

注意

如果您的WorkSpaces管理员使用Amazon Web Services Management Console要创建WorkSpaces对于加密的卷,管理员需要具有列出别名和列出密钥的权限 ("kms:ListAliases""kms:ListKeys"权限)。如果您的WorkSpaces管理员只使用亚马逊WorkSpacesAPI(不是控制台),您可以省略"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"}} } ] }

用户或角色的 IAM 策略将WorkSpace必须包含对客户托管 KMS 密钥的使用权限,以及访问的权限。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. 它为用户提供了对 KMS 密钥的只读访问权限以及创建授权的能力。

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

如果要在策略中指定 KMS 密钥,请使用类似于以下内容的 IAM 策略。将示例 KMS 密钥 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. 选择启动WorkSpaces完成前三步。

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

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

    2. 适用于加密密钥Select,Amazon KMS关键,要么是Amazon亚马逊创建的托管 KMS 密钥WorkSpaces或者你创建的 KMS 密钥。您选择的 KMS 密钥必须是对称的。亚马逊WorkSpaces不支持非对称 KMS 密钥。

    3. 选择 Next Step

  4. 选择启动WorkSpaces

查看加密WorkSpaces

要看看哪个WorkSpaces并且卷已从WorkSpaces选择控制台WorkSpaces从左侧的导航栏中进行。这些区域有:卷加密列显示是否每个WorkSpace已启用或禁用加密。要查看哪些特定卷已加密,请展开WorkSpace条目以查看加密卷字段中返回的子位置类型。