

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# WorkSpaces Personal 中的加密 WorkSpaces
<a name="encrypt-workspaces"></a>

WorkSpaces 已與 AWS Key Management Service (AWS KMS) 整合。這可讓您使用 AWS KMS 金鑰加密 WorkSpaces 的儲存磁碟區。當您啟動 WorkSpace 時，您可以加密根磁碟區 (在 Microsoft Windows 中為 C 磁碟機；在 Linux 中為 /) 和使用者磁碟區 (在 Windows 中為 D 磁碟機；在 Linux 中為 /home)。這麼做可確保靜態儲存的資料、磁碟區的磁碟 I/O，以及從磁碟區建立的快照全都加密。

**注意**  
除了加密 WorkSpaces 之外，您還可以在特定 AWS 美國區域使用 FIPS 端點加密。如需詳細資訊，請參閱[設定 WorkSpaces Personal 的 FedRAMP 授權或 DoD SRG 合規](fips-encryption.md)。
Amazon WorkSpaces 不支援 Windows BitLocker 加密。  適用時，Amazon WorkSpaces 會嘗試解密在所有 Windows 作業系統上開機期間偵測到的任何磁碟區。  如果 WorkSpace 上的任何磁碟區啟用了密碼、接腳或啟動金鑰的任何組合，則磁碟區可能會在開機過程中變得沒有回應，而且無法正常開機。

**Topics**
+ [先決條件](#encryption_prerequisites)
+ [限制](#encryption_limits)
+ [使用 的 WorkSpaces 加密概觀 AWS KMS](#kms-workspaces-overview)
+ [WorkSpaces 加密內容](#kms-workspaces-encryption-context)
+ [授予 WorkSpaces 代表您使用 KMS 金鑰的許可](#kms-workspaces-permissions)
+ [加密 WorkSpace](#encrypt_workspace)
+ [檢視已加密的 WorkSpaces](#maintain_encryption)

## 先決條件
<a name="encryption_prerequisites"></a>

您需要 AWS KMS 金鑰，才能開始加密程序。此 KMS 金鑰可以是 Amazon WorkSpaces 適用的 [AWS 受管 KMS 金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) (**aws/workspaces**)，也可以是對稱的[客戶受管 KMS 金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)。
+ **AWS 受管 KMS 金鑰** – 您第一次從區域中的 WorkSpace WorkSpaces 時，Amazon WorkSpaces 會自動在您的帳戶中建立 AWS 受管 KMS 金鑰 (**aws/workspaces**)。您可以選取此 AWS 受管 KMS 金鑰來加密 WorkSpace 的使用者和根磁碟區。如需詳細資訊，請參閱[使用 的 WorkSpaces 加密概觀 AWS KMS](#kms-workspaces-overview)。

  您可以檢視此 AWS 受管 KMS 金鑰，包括其政策和授權，也可以追蹤其在 AWS CloudTrail 日誌中的使用情形，但無法使用或管理此 KMS 金鑰。Amazon WorkSpaces 可建立和管理此 KMS 金鑰。只有 Amazon WorkSpaces 可以使用此 KMS 金鑰，而且 WorkSpaces 只能此金鑰用來加密您帳戶中的 WorkSpaces 資源。

  AWS 受管 KMS 金鑰，包括 Amazon WorkSpaces 支援的金鑰，每年都會輪換。如需詳細資訊，請參閱《 *AWS Key Management Service 開發人員指南*》中的[輪換 AWS KMS 金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html)。
+ **客戶受管 KMS 金鑰** – 或者，您可以選擇您建立的對稱客戶受管 KMS 金鑰 AWS KMS。您可以檢視、使用和管理此 KMS 金鑰，包括設定其政策。如需有關建立 KMS 金鑰的詳細資訊，請參閱《AWS Key Management Service 開發人員指南》**中的[建立金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)。如需使用 AWS KMS API 建立 KMS 金鑰的詳細資訊，請參閱《 *AWS Key Management Service 開發人員指南*》中的[使用金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/programming-keys.html)。

  除非您決定啟用自動金鑰輪換，否則不會自動輪換客戶受管 KMS 金鑰。如需詳細資訊，請參閱《 *AWS Key Management Service 開發人員指南*》中的[輪換 AWS KMS 金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html)。

**重要**  
當您手動輪換 KMS 金鑰時，您必須同時啟用原始 KMS 金鑰和新的 KMS 金鑰，讓 AWS KMS 可以解密原始 KMS 金鑰加密的 WorkSpaces。如果您不想讓原始 KMS 金鑰保持啟用狀態，則必須重建 WorkSpaces 並使用新的 KMS 金鑰予以加密。

您必須符合下列要求，才能使用 AWS KMS 金鑰來加密 WorkSpaces：
+ **KMS 金鑰必須為對稱金鑰。**Amazon WorkSpaces 不支援非對稱 KMS 金鑰。如需區分對稱與非對稱 KMS 金鑰的相關資訊，請參閱《AWS Key Management Service 開發人員指南》**中的[識別對稱與非對稱 KMS 金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html)。
+ **必須啟用 KMS 金鑰。**若要判斷 KMS 金鑰是否已啟用，請參閱《AWS Key Management Service 開發人員指南》**中的[顯示 KMS 金鑰詳細資訊](https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys-console.html#viewing-console-details)。
+ **您必須擁有與 KMS 金鑰相關聯的正確許可和政策。**如需詳細資訊，請參閱[第 2 部分：使用 IAM 政策授予 WorkSpaces 管理員額外的許可](#kms-permissions-iam-policy)。

## 限制
<a name="encryption_limits"></a>
+ 您無法加密現有的 WorkSpace。您必須在啟動 WorkSpace 時將其加密。
+ 不支援從加密的 WorkSpace 建立自訂映像。
+ 目前不支援停用已加密 WorkSpace 的加密功能。
+ 在啟用根磁碟區加密狀態下啟動的 WorkSpaces 可能需要長達一個小時才能佈建。
+ 若要重新啟動或重新建置加密的 WorkSpace，請先確定 AWS KMS 金鑰已啟用；否則，WorkSpace 會變得無法使用。若要判斷 KMS 金鑰是否已啟用，請參閱《AWS Key Management Service 開發人員指南》**中的[顯示 KMS 金鑰詳細資訊](https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys-console.html#viewing-console-details)。

## 使用 的 WorkSpaces 加密概觀 AWS KMS
<a name="kms-workspaces-overview"></a>

當您建立具備加密磁碟區的 WorkSpace 時，WorkSpaces 會使用 Amazon Elastic Block Store (Amazon EBS) 來建立和管理這些磁碟區。Amazon EBS 會使用業界標準的 AES-256 演算法資料金鑰加密您的磁碟區。Amazon EBS 和 Amazon WorkSpaces 都使用 KMS 金鑰來處理已加密的磁碟區。如需 EBS 磁碟區加密的詳細資訊，請參閱《[Amazon EC2 使用者指南》中的 Amazon EBS 加密](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html)。 *Amazon EC2 *

當您啟動具備加密磁碟區的 WorkSpace，端對端程序的運作方式如下：

1. 您可指定要用於加密的 KMS 金鑰，以及 WorkSpace 的使用者和目錄。這個動作會建立[授予](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html)，只允許 WorkSpaces 將 KMS 金鑰用於此 WorkSpace，即為僅適用於與指定之使用者和目錄相關聯的 WorkSpace。

1. WorkSpaces 會為 WorkSpace 建立加密的 EBS 磁碟區，並指定要使用的 KMS 金鑰以及磁碟區的使用者和目錄。這個動作會建立授予，只允許 Amazon EBS 將 KMS 金鑰用於此 WorkSpace 和磁碟區，即為僅適用於與指定之使用者和目錄相關聯的 WorkSpace 以及僅適用於指定的磁碟區。

1. <a name="WSP-EBS-requests-encrypted-volume-data-key"></a>Amazon EBS 會請求在 KMS 金鑰下加密的磁碟區資料金鑰，並指定 WorkSpace 使用者的 Active Directory 安全識別碼 (SID) 和 AWS Directory Service 目錄 ID，以及指定 Amazon EBS 磁碟區 ID 做為[加密內容](#kms-workspaces-encryption-context)。

1. <a name="WSP-KMS-creates-data-key"></a>AWS KMS 會建立新的資料金鑰、在您的 KMS 金鑰下進行加密，然後將加密的資料金鑰傳送至 Amazon EBS。

1. <a name="WSP-uses-EBS-to-attach-encrypted-volume"></a>WorkSpaces 使用 Amazon EBS 將加密的磁碟區連接到您的 WorkSpace。Amazon EBS 會使用 AWS KMS [https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)請求將加密的資料金鑰傳送至 ，並指定 WorkSpace 使用者的 SID、目錄 ID 和磁碟區 ID，以做為加密內容。

1. AWS KMS 使用您的 KMS 金鑰解密資料金鑰，然後將純文字資料金鑰傳送至 Amazon EBS。

1. Amazon EBS 使用純文字資料金鑰來加密進出已加密磁碟區的所有資料。Amazon EBS 會在磁碟區連接至 WorkSpace 的期間，將純文字資料金鑰保存在記憶體中。

1. Amazon EBS 會將加密的資料金鑰 (於 [Step 4](#WSP-KMS-creates-data-key) 收到) 與磁碟區中繼資料一起存放，以供日後重新啟動或重建 WorkSpace 時使用。

1. 當您使用 AWS 管理主控台 移除 WorkSpace （或使用 WorkSpaces API 中的 [https://docs.aws.amazon.com/workspaces/latest/devguide/API_TerminateWorkspaces.html](https://docs.aws.amazon.com/workspaces/latest/devguide/API_TerminateWorkspaces.html)動作） 時，WorkSpaces 和 Amazon EBS 會淘汰授予，允許他們針對該 WorkSpace 使用您的 KMS 金鑰。

## WorkSpaces 加密內容
<a name="kms-workspaces-encryption-context"></a>

WorkSpaces 不會直接將您的 KMS 金鑰用於密碼編譯操作 （例如 [https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html)、[https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)、 等）[https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)，這表示 WorkSpaces 不會將包含[加密內容](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) AWS KMS 的請求傳送至 。但是，當 Amazon EBS 為 WorkSpaces ([使用 的 WorkSpaces 加密概觀 AWS KMS](#kms-workspaces-overview) 中的 [Step 3](#WSP-EBS-requests-encrypted-volume-data-key)) 的已加密磁碟區請求加密的資料金鑰時，以及當它請求該資料金鑰的純文字複本 ([Step 5](#WSP-uses-EBS-to-attach-encrypted-volume)) 時，它會在請求中包含加密內容。

 加密內容提供額外的[已驗證資料](https://docs.aws.amazon.com/crypto/latest/userguide/cryptography-concepts.html#term-aad) (AAD)， AWS KMS 用於確保資料完整性。加密內容也會寫入您的 AWS CloudTrail 日誌檔案，這可協助您了解使用指定 KMS 金鑰的原因。Amazon EBS 將以下項目用於加密內容：
+ 與 WorkSpace 相關聯之 Active Directory 使用者的安全識別碼 (SID)
+ 與 WorkSpace 相關聯之目錄的 AWS 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 代表您使用 KMS 金鑰的許可
<a name="kms-workspaces-permissions"></a>

您可以在 WorkSpace s的 AWS 受管 KMS 金鑰 (**aws/workspaces**) 或客戶受管 KMS 金鑰下保護您的 WorkSpace 資料。 WorkSpaces 如果您使用客戶受管 KMS 金鑰，則需要授予 WorkSpaces 代表您帳戶中的 WorkSpaces 管理員使用 KMS 金鑰的許可。根據預設，WorkSpaces 的 AWS 受管 KMS 金鑰具有必要的許可。

為了準備您的客戶受管 KMS 金鑰以搭配使用 WorkSpaces，請使用下列步驟。

1. [將 WorkSpaces 管理員新增至 KMS 金鑰之金鑰政策中的金鑰使用者清單](#kms-permissions-key-users)

1. [使用 IAM 政策授予 WorkSpaces 管理員額外的許可](#kms-permissions-iam-policy)

WorkSpaces 管理員還需要使用 WorkSpaces 的許可。如需這些許可的詳細資訊，請前往 [適用於 WorkSpaces 的身分和存取管理](workspaces-access-control.md)。

### 第 1 部分：將 WorkSpaces 管理員新增為金鑰使用者
<a name="kms-permissions-key-users"></a>

若要提供 WorkSpaces 管理員所需的許可，您可以使用 AWS 管理主控台 或 AWS KMS API。

#### 若要新增 WorkSpaces 管理員做為 KMS 金鑰的金鑰使用者 (主控台)
<a name="kms-permissions-users-consoleAPI"></a>

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) 的 AWS Key Management Service (AWS KMS) 主控台。

1. 若要變更 AWS 區域，請使用頁面右上角的區域選擇器。

1. 在導覽窗格中，選擇 **Customer managed keys** (客戶受管金鑰)。

1. 選擇您偏好的客戶受管 KMS 金鑰的金鑰 ID 或別名。

1. 選擇 **Key policy (金鑰政策)** 標籤。在 **Key users** (金鑰使用者) 中，選擇 **Add** (新增)。

1. 在 IAM 使用者和角色清單中，選取對應到您 WorkSpaces 管理員的使用者和角色，然後選擇**新增**。

#### 若要新增 WorkSpaces 管理員做為 KMS 金鑰的金鑰使用者 (API)
<a name="kms-permissions-users-api"></a>

1. 使用 [GetKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_GetKeyPolicy.html) 操作來取得現有的金鑰政策，然後將金鑰政策文件儲存至檔案。

1. 在您偏好的文字編輯器中開啟政策文件。將對應到您 WorkSpaces 管理員的 IAM 使用者和角色新增到[提供許可給金鑰使用者](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-users)的政策陳述式。接著儲存檔案。

1. 使用 [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) 操作將金鑰政策套用到 KMS 金鑰。

### 第 2 部分：使用 IAM 政策授予 WorkSpaces 管理員額外的許可
<a name="kms-permissions-iam-policy"></a>

如果您選取用於加密的客戶受管 KMS 金鑰，則必須建立 IAM 政策，以允許 Amazon WorkSpaces 代表您帳戶中啟動已加密 WorkSpaces 的 IAM 使用者使用 KMS 金鑰。該使用者還需要使用 Amazon WorkSpaces 的許可。如需建立和編輯 IAM 使用者政策的詳細資訊，請參閱《IAM 使用者指南》**中的[受管 IAM 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html)和[適用於 WorkSpaces 的身分和存取管理](workspaces-access-control.md)。

WorkSpaces 加密需要有限的 KMS 金鑰存取權。下列是您可以使用的範例金鑰政策。此政策會將可管理 AWS KMS 金鑰的主體與可使用該金鑰的主體分開。在您使用本範例金鑰政策之前，請將範例帳戶 ID 和 IAM 使用者名稱取代為您帳戶的實際值。

第一個陳述式符合預設 AWS KMS 金鑰政策。它提供您的帳戶使用 IAM 政策來控制 KMS 金鑰存取的許可。第二個和第三個陳述式分別定義哪些 AWS 主體可以管理和使用金鑰。第四個陳述式可讓與 整合 AWS 的服務代表指定的委託人 AWS KMS 使用金鑰。此陳述式使 AWS 服務能夠建立和管理授與。陳述式使用條件元素，將 KMS 金鑰的授予限制為 AWS 服務代表您帳戶中的使用者所做的授予。

**注意**  
如果您的 WorkSpaces 管理員使用 AWS 管理主控台 來建立具有加密磁碟區的 WorkSpaces，則管理員需要列出別名和清單金鑰的許可 ( `"kms:ListAliases"` 和 `"kms:ListKeys"`許可）。如果 WorkSpace 管理員只會使用 Amazon 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"}}
    }
  ]
}
```

------

正在加密 WorkSpace 之使用者或角色的 IAM 政策必須包含客戶受管 KMS 金鑰的使用許可，以及對 WorkSpaces 的存取權限。若要將 WorkSpaces 許可提供給 IAM 使用者或角色，您可以將下列範例政策附加至 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 取代範例 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
<a name="encrypt_workspace"></a>

**若要加密 WorkSpace**

1. 在 https：//[https://console.aws.amazon.com/workspaces/v2/home](https://console.aws.amazon.com/workspaces/v2/home) 開啟 WorkSpaces 主控台。

1. 選擇**啟動 WorkSpaces** 並完成前三個步驟。

1. 針對 **WorkSpaces 設定**步驟，執行下列操作：

   1. 選取要加密的磁碟區：**根磁碟區**、**使用者磁碟區**或兩個磁碟區。

   1. 針對**加密金鑰**，選取 AWS KMS 金鑰，可以是 Amazon WorkSpaces 建立的 AWS 受管 KMS 金鑰，或是您建立的 KMS 金鑰。您選取的 KMS 金鑰必須是對稱金鑰。Amazon WorkSpaces 不支援非對稱 KMS 金鑰。

   1. 選擇 **Next Step (後續步驟)**。

1. 選擇**啟動 WorkSpaces**。

## 檢視已加密的 WorkSpaces
<a name="maintain_encryption"></a>

若要查看已從 WorkSpaces 主控台加密哪些 WorkSpaces 和磁碟區，請從左側導覽列中選擇 **WorkSpaces**。**磁碟區加密**欄會顯示每個 WorkSpace 是否已啟用或停用加密。若要查看哪些特定磁碟區已加密，請展開 WorkSpace 項目以查看**加密的磁碟區**欄位。