View a markdown version of this page

WorkSpaces 在 WorkSpaces 个人模式下加密 - 亚马逊 WorkSpaces

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

WorkSpaces 在 WorkSpaces 个人模式下加密

WorkSpaces 与 AWS Key Management Service (AWS KMS) 集成。这使您能够 WorkSpaces 使用密 AWS KMS 钥加密存储量。当你启动时 WorkSpace,你可以加密根卷(对于微软 Windows,为 C 盘;对于 Linux,/)和用户卷(对于 Windows,则为 D 盘;对于 Linux,/home)。这样做可以确保静态存储的数据、磁盘 I/O 到卷的数据以及从卷创建的快照都经过加密。

注意
  • 除了加密您的 WorkSpaces,您还可以在某些 AWS 美国地区使用 FIPS 终端节点加密。有关更多信息,请参阅 为个人配置 FedRAMP 授权或 DoD SRG 合规性 WorkSpaces。

  • 亚马逊不支持 Windows BitLocker 加密 WorkSpaces。  如果适用,亚马逊 WorkSpaces 将尝试解密所有Windows操作系统启动期间检测到的所有卷。  如果为任何卷启用了密码、PIN 或启动密钥的任意组合,则卷在启动过程中可能会变得无响应, WorkSpace 这可能会变得不正常且无法正常启动。

前提条件

在开始加密过程之前,您需要一个密 AWS KMS 钥。此 KMS 密钥可以是亚马逊AWS 托管 KMS 密钥 WorkSpaces (aws/workspaces),也可以是对称的客户管理的 KMS 密钥。

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

    您可以查看此 AWS 托管的 KMS 密钥,包括其策略和授权,也可以在 AWS CloudTrail 日志中跟踪其使用情况,但不能使用或管理此 KMS 密钥。亚马逊 WorkSpaces 创建和管理此 KMS 密钥。只有亚马逊 WorkSpaces 可以使用此 KMS 密钥,并且 WorkSpaces 只能使用它来加密您账户中的 WorkSpaces 资源。

    AWS 托管 KMS 密钥,包括亚马逊 WorkSpaces 支持的密钥,每年轮换。有关详细信息,请参阅AWS Key Management Service 开发者指南中的轮换 AWS KMS 密钥。

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

    除非您决定启用自动密钥轮换,否则客户托管 KMS 密钥不会自动轮换。有关详细信息,请参阅《AWS Key Management Service 开发者指南》中的轮换 AWS KMS 密钥。

重要

手动轮换 KMS 密钥时,必须保持原始 KMS 密钥和新 KMS 密钥处于启用状态,这样 AWS KMS 才能解密原始 KMS 密钥加密的密钥。 WorkSpaces 如果您不想保持原始 KMS 密钥处于启用状态,则必须重新创建您的密钥 WorkSpaces并使用新的 KMS 密钥对其进行加密。

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

限制

  • 你无法加密现有的 WorkSpace。启动 WorkSpace 时必须对其进行加密。

  • 不支持使用加密 WorkSpace 镜像创建自定义镜像。

  • 目前不支持对加密 WorkSpace 对象禁用加密。

  • WorkSpaces 在启用根卷加密的情况下启动可能需要长达一个小时的预置时间。

  • 要重新启动或重建加密密钥 WorkSpace,请首先确保 AWS KMS 密钥已启用;否则,密钥 WorkSpace 将无法使用。要确定是否启用 KMS 密钥,请参阅《AWS Key Management Service 开发人员指南》中的显示 KMS 密钥详细信息。

使用 WorkSpaces 加密概述 AWS KMS

当您使用 WorkSpaces 加密卷创建时, WorkSpaces 使用亚马逊弹性区块商店(亚马逊 EBS)来创建和管理这些卷。Amazon EBS 使用行业标准 AES-256 算法使用数据密钥对您的卷进行加密。亚马逊 EBS 和亚马逊都 WorkSpaces 使用您的 KMS 密钥来处理加密卷。有关 EBS 卷加密的更多信息,请参阅《Amazon EC2 用户指南》中的 Amazon EBS 加密。

当您 WorkSpaces 使用加密卷启动时,端到端过程如下所示:

  1. 您可以指定用于加密的 KMS 密钥以及的用户和目录 WorkSpace。此操作会创建一项授权,该授权仅 WorkSpaces 允许将您的 KMS 密钥用于此目的, WorkSpace即仅适用于与指定用户和目录 WorkSpace关联的用户。

  2. WorkSpaces 为创建加密的 EBS 卷 WorkSpace 并指定要使用的 KMS 密钥以及该卷的用户和目录。此操作会创建一项授权,允许 Amazon EBS 将您的 KMS 密钥仅用于此 WorkSpace 和卷,也就是说,仅用于与指定用户和目录 WorkSpace 关联的密钥,并且仅用于指定卷。

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

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

  5. WorkSpaces 使用亚马逊 EBS 将加密卷连接到您的 WorkSpace。Amazon EBS AWS KMS 通过Decrypt请求将加密的数据密钥发送到并指定 WorkSpace 用户的 SID、目录 ID 和卷 ID,后者用作加密上下文。

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

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

  8. Amazon EBS 将加密的数据密钥(接收于步骤 4)与卷元数据一起存储,以备将来重启或重建。 WorkSpace

  9. 当您使用 AWS 管理控制台 移除 WorkSpace (或使用 WorkSpaces API 中的TerminateWorkspaces操作)时, WorkSpaces Amazon EBS 会取消允许他们使用您的 KMS 密钥执行此操作的 WorkSpace授权。

WorkSpaces 加密上下文

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

加密环境提供额外的经过身份验证的数据 (AAD), AWS KMS 用于确保数据完整性。加密上下文也会写入您的 AWS CloudTrail 日志文件,这可以帮助您了解使用给定的 KMS 密钥的原因。Amazon EBS 会对加密上下文使用以下内容:

  • 与关联的 Active Directory 用户的安全标识符 (SID) WorkSpace

  • 与关联的 AWS Directory Service 目录的目录 ID 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" }

WorkSpaces 授予代表您使用 KMS 密钥的权限

您可以使用 WorkSpaces (aws/workspaces) 的 AWS 托管 KMS 密钥或客户管理的 KMS 密钥保护您的 WorkSpace 数据。如果您使用客户管理的 KMS 密钥,则需要 WorkSpaces 授予代表账户 WorkSpaces 管理员使用 KMS 密钥的权限。默认情况下,的 AWS 托管 KMS 密钥 WorkSpaces具有所需的权限。

要准备您的客户管理的 KMS 密钥以供使用 WorkSpaces,请使用以下步骤。

您的 WorkSpaces 管理员还需要权限才能使用 WorkSpaces。有关这些权限的更多信息,请参阅 的身份和访问管理 WorkSpaces。

第 1 部分:将 WorkSpaces 管理员添加为密钥用户

要向 WorkSpaces 管理员提供所需的权限,您可以使用 AWS 管理控制台 或 AWS KMS API。

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

  1. 登录 AWS 管理控制台 并打开 AWS Key Management Service (AWS KMS) 控制台,网址为https://console.aws.amazon.com/kms。

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

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

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

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

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

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

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

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

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

第 2 部分:使用 IAM 策略向 WorkSpaces 管理员授予额外权限

如果您选择客户管理的 KMS 密钥进行加密,则必须制定 IAM 政策, WorkSpaces 允许亚马逊代表您账户中启动加密的 IAM 用户使用 KMS 密钥 WorkSpaces。该用户还需要获得许可才能使用亚马逊 WorkSpaces。有关创建和编辑 IAM 用户策略的更多信息,请参阅《IAM 用户指南》中的管理 IAM 策略和 的身份和访问管理 WorkSpaces。

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

第一条语句与默认 AWS KMS 密钥策略相匹配。它授予您的账户使用 IAM 策略控制对 KMS 密钥的访问的权限。第二和第三条语句分别定义哪些 AWS 委托人可以管理和使用密钥。第四个语句 AWS KMS 允许与集成的 AWS 服务代表指定的主体使用密钥。该语句允许 AWS 服务创建和管理授权。该声明使用条件元素,将 KMS 密钥的授予限制为 AWS 服务代表您账户中的用户发放的授权。

注意

如果您的 WorkSpaces 管理员使用创建 WorkSpaces 加密卷,则管理员需要列出别名和列出密钥("kms:ListAliases"和"kms:ListKeys"权限)的权限。 AWS 管理控制台 如果您的 WorkSpaces 管理员仅使用亚马逊 WorkSpaces API(不使用控制台),则可以省略"kms:ListAliases"和"kms:ListKeys"权限。

JSON
{ "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:ReEncryptFrom", "kms:ReEncryptTo", "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 用户或角色。

JSON
{ "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 策略才能使用 AWS KMS。它为用户提供了对 KMS 密钥的只读访问权限以及创建授权的能力。

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

如果您想在策略中指定 KMS 密钥,请使用类似于以下内容的 IAM 策略。将示例 KMS 密钥 ARN 替换为有效值。

JSON
{ "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/v2/home。

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

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

    1. 选择要加密的卷:根卷、用户卷或这两种卷。

    2. 对于加密密钥,选择一个 AWS KMS 密钥,即由 Amazon 创建的 AWS 托管 KMS 密钥 WorkSpaces 或您创建的 KMS 密钥。您选择的 KMS 密钥必须是对称的。亚马逊 WorkSpaces 不支持非对称 KMS 密钥。

    3. 选择下一步。

  4. 选择启动 WorkSpaces。

查看已加密 WorkSpaces

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