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

加密的 WorkSpace

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

先决条件

在开始加密过程之前,您需要一个 AWS KMS CMK。

首次从区域中的 Amazon WorkSpaces 控制台启动未加密的工作区时,Amazon WorkSpaces 会在您的账户中自动创建 AWS 托管 CMK (aws/workspaces)。您可以选择该 AWS 托管 CMK 来加密您的 WorkSpace 的用户卷和根卷。有关详细信息,请参阅 AWS Key Management Service Developer Guide 中的 Amazon WorkSpaces 如何使用 AWS KMS

您可以查看此 AWS 托管 CMK(包括其策略和授权),并可以在 AWS CloudTrail 日志中跟踪其使用情况,但您无法使用或管理此 CMK。Amazon WorkSpaces 创建和管理此 CMK。只有 Amazon WorkSpaces 可以使用此 CMK,只能使用它来加密您的账户中的 WorkSpaces 资源。AWS 托管 CMK(包括 Amazon WorkSpaces 支持的密钥)每三年轮换一次。有关详细信息,请参阅 AWS Key Management Service Developer Guide 中的轮换密钥

或者,您可以选择您使用 AWS KMS 创建的对称客户托管 CMK。您可以查看、使用和管理此 CMK,包括设置其策略。有关创建 CMK 的更多信息,请参阅 AWS Key Management Service Developer Guide 中的创建密钥。有关使用 AWS KMS API 创建 CMK 的更多信息,请参阅 AWS Key Management Service Developer Guide 中的使用密钥

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

  • CMK 必须是对称的。Amazon WorkSpaces 不支持非对称 CMK。有关区分对称和非对称 CMK 的信息,请参阅 AWS Key Management Service Developer Guide 中的识别对称和非对称 CMK

  • 必须启用 CMK。要确定是否启用 CMK,请参阅 AWS Key Management Service Developer Guide 中的显示 CMK 详细信息

  • 您必须拥有与密钥相关联的正确权限和策略。有关更多信息,请参阅 IAM 权限和加密的角色

重要

每个 CMK 最多可以有 500 个 WorkSpace。此限制是由于 AWS KMS 中的每个被授权者委托人的授权数配额所致。有关此配额的更多信息,请参阅 AWS Key Management Service Developer Guide 中的每个被授权者委托人的授权数

当您对 WorkSpace 进行加密时,应为每 500 个 WorkSpace 创建一个 CMK。例如,如果要加密 850 个 WorkSpace,请创建两个 CMK。

如果您尝试启动加密的 WorkSpace,但收到错误消息“指定的密钥不可用。请提供有效的加密密钥”,则说明已达到现有 CMK 的每个被授权者委托人的授权数配额。

限制

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

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

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

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

  • 要重启或重建已加密的 WorkSpace,请先确保 AWS KMS CMK 已启用;否则 WorkSpace 将变得不可用。要确定是否启用 CMK,请参阅 AWS Key Management Service Developer Guide 中的显示 CMK 详细信息

加密 WorkSpace

加密 WorkSpace

  1. 通过以下网址打开 Amazon WorkSpaces 控制台:https://console.amazonaws.cn/workspaces/

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

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

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

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

    3. 选择 Next Step

  4. 选择 Launch WorkSpaces

查看加密的 WorkSpace

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

IAM 权限和加密的角色

如果您选择用于加密的客户托管 CMK,则必须建立允许 Amazon WorkSpaces 代表您账户中启动加密 WorkSpace 的 IAM 用户使用此 CMK 的策略。该用户还需要使用 Amazon WorkSpaces 的权限。

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

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

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": {"AWS": "arn:aws-cn:iam::123456789012:root"}, "Action": "kms:*", "Resource": "*" }, { "Effect": "Allow", "Principal": {"AWS": "arn:aws-cn: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-cn:iam::123456789012:user/Alice"}, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, { "Effect": "Allow", "Principal": {"AWS": "arn:aws-cn:iam::123456789012:user/Alice"}, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": {"Bool": {"kms:GrantIsForAWSResource": "true"}} } ] }

用于加密 WorkSpace 的用户或角色的 IAM 策略必须包含对于客户托管 CMK 的使用权限以及对 WorkSpace 的访问权限。要授予 IAM 用户或角色对 WorkSpace 的权限,您可以将以下示例策略附加到 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 策略才能使用 AWS KMS。它为用户提供了对 CMK 的只读访问权限以及创建授权的能力。

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