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

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

加密WorkSpaces

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

Prerequisites

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

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

您可以查看此 AWS 托管 CMK(包括其策略和授权),并可以在 AWS CloudTrail 日志中跟踪其使用情况,但您无法使用或管理此 CMK。Amazon WorkSpaces 创建和管理此 CMK。只有 Amazon WorkSpaces 可以使用此 CMK,并且它只能用于加密您的账户中的 WorkSpaces 资源。AWS 托管的 CMKs(包括 Amazon WorkSpaces 支持的版本)每三年轮换一次。有关详细信息,请参阅 https://docs.amazonaws.cn/kms/latest/developerguide/rotate-keys.html 中的轮换密钥AWS Key Management Service Developer Guide。

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

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

重要

每个 CMK 的限制为 500 个 WorkSpaces。此限制是由于 AWS KMS 中的每个被授权者委托人的授权数配额所致。有关此配额的更多信息,请参阅 https://docs.amazonaws.cn/kms/latest/developerguide/resource-limits.html#grants-per-principal-per-key 中的每个被授权者委托人的授权数AWS Key Management Service Developer Guide。

当您加密 WorkSpaces 时,请为每 500 个 WorkSpaces 创建一个 CMK。 例如,如果您要加密 850 WorkSpaces,请创建两个 CMKs。

如果您尝试启动加密的 WorkSpaces,但收到错误消息“The specified key is not available. 请提供有效的加密密钥”,则说明已达到现有 CMK 的每个被授权者委托人的授权数配额。

Limits

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

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

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

  • 在启用根卷加密的情况下启动 WorkSpaces 可能需要一个小时才能完成预配置。

  • 要重启或重建已加密的WorkSpace,请先确保 AWS KMS CMK 已启用;否则,WorkSpace将变为不可用。要确定是否启用了 CMK,请参阅 https://docs.amazonaws.cn/kms/latest/developerguide/viewing-keys-console.html#viewing-console-details 中的显示 CMK 详细信息AWS Key Management Service Developer Guide。

加密WorkSpaces

加密WorkSpace

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

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

  3. 对于 WorkSpaces Configuration (AWS Storage Gateway 配置) 步骤,执行以下操作:

    1. 选择要加密的卷: 根卷和/或用户卷

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

    3. 选择 Next Step

  4. 选择 LaunchWorkSpaces

查看加密的WorkSpaces

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

IAM 权限和加密的角色

如果您选择用于加密的客户托管 CMK,则必须建立允许 Amazon WorkSpaces 代表您账户中启动加密 WorkSpaces 的 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"}} } ] }

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

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