

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

# 安全性
<a name="security-1"></a>

 云安全性一直是 Amazon Web Services (AWS) 的重中之重。安全和合规是客户共同承担 AWS 的责任。有关更多信息，请参阅[https://aws.amazon.com/compliance/shared-responsibility-model/](https://aws.amazon.com/compliance/shared-responsibility-model/)。作为 AWS 和 WorkSpaces 应用领域的客户，在堆栈、队列、映像和网络等不同层面上实施安全措施非常重要。

 由于其短暂性， WorkSpaces 应用程序通常是应用程序和桌面交付的安全解决方案的首选。对于要预定义并在用户会话结束时清除的环境的使用案例，请考虑在 Windows 部署中常见的防病毒解决方案是否有意义。防病毒软件会增加虚拟化实例的开销，因此最好是减少不必要的活动。例如，在启动时扫描系统卷（临时卷）并不能提高应用程序的整体安全性。 WorkSpaces 

 安全 WorkSpaces 应用程序的两个关键问题集中在：
+  是否需要在会话之外保留用户状态？ 
+  用户在会话中应拥有多少访问权限？ 

## 保护持久性数据
<a name="securing-persistent-data"></a>

 WorkSpaces 应用程序的部署可能要求用户状态以某种形式保持不变。它可能是为了保留个人用户的数据，或者是为了使用共享文件夹进行协作而保留数据。 WorkSpaces 应用程序实例存储是临时性的，没有加密选项。

 WorkSpaces 应用程序通过 Amazon S3 中的主文件夹和应用程序设置提供用户状态持久性。某些使用案例需要更好地控制用户状态的持久性。对于这些使用案例， AWS 建议使用服务器消息块 (SMB) 文件共享。

### 用户状态和数据
<a name="user-state-and-data"></a>

由于大多数 Windows 应用程序在与用户创建的应用程序数据位于同一 AWS 区域 位置时性能最好、最安全，因此最佳做法是将这些数据与 WorkSpaces 应用程序队列保持一致。最好能加密这些数据。用户主文件夹的默认行为是使用密钥管理服务中的 Amazon S3-managed 加密密钥对静态文件和文件夹进行加密（AWS KMS）。 AWS 请务必注意，有权访问 AWS 控制台或 Amazon S3 存储桶的 AWS 管理用户将能够直接访问这些文件。

在需要使用 Windows 文件共享的服务器消息块 (SMB) 来存储用户文件和文件夹的设计中，该过程要么是自动的，要么需要配置。

 *表 5 — 保护用户数据的选项* 


|   **中小型企业目标**   |  **Encryption-at-rest**  |  **Encryption-in-transit**  |   **防病毒软件 (AV)**   | 
| --- | --- | --- | --- | 
|  FSx for Windows File Server  |  [https://docs.aws.amazon.com/fsx/latest/WindowsGuide/encryption-at-rest.html](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/encryption-at-rest.html)  |  [https://docs.aws.amazon.com/fsx/latest/WindowsGuide/encryption-in-transit.html](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/encryption-in-transit.html)  |  安装在远程实例上的 AV 在映射的驱动器上执行扫描  | 
|  **文件网关、 AWS Storage Gateway**  |  默认情况下，存储在 S3 中的所有数据均 AWS Storage Gateway 在服务器端使用 Amazon S3-Managed 加密密钥 (SSE-S3) 进行加密。您可以选择配置不同的网关类型以使用 AWS Key Management Service (KMS) 加密存储的数据  |  任何类型的网关设备和 AWS 存储设备之间传输的所有数据均使用 SSL 进行加密。 |  安装在远程实例上的 AV 在映射的驱动器上执行扫描  | 
|  EC2-based Windows 文件服务器  |  [启用 EBS 加密](https://docs.aws.amazon.com/kms/latest/developerguide/services-ebs.html)  |  PowerShell; Set- SmbServerConfiguration – EncryptData $True  |  安装在服务器上的 AV 在本地驱动器上执行扫描  | 

## 端点安全和防病毒
<a name="endpoint-security-and-antivirus"></a>

Ama WorkSpaces zon Applications 实例的短暂性质以及数据缺乏持久性，这意味着需要采用不同的方法来确保用户体验和性能不会因为持久性桌面上所需的活动而受到损害。当有组织策略或用于外部数据输入（例如电子邮件、文件入口、外部网页浏览）时，端点安全代理会安装在 WorkSpaces 应用程序映像中。

### 移除唯一标识符
<a name="removing-unique-iidentifiers"></a>

端点安全代理可能具有全局唯一标识符 (GUID)，必须在实例集实例创建过程中重置该标识符。供应商有关于使用映像安装产品的说明，这将确保为从映像生成的每个实例生成一个新的 GUID。

为确保不会生成 GUID，请在运行 WorkSpaces 应用程序助手生成映像之前安装端点安全代理作为最后一个操作。

### 性能优化
<a name="performance-optimization"></a>

端点安全供应商提供可优化 WorkSpaces 应用程序性能的交换机和设置。设置因供应商而异，可以在他们的文档中找到，通常可在有关 VDI 的章节中找到。一些常见设置包括但不限于：
+ 关闭启动扫描以确保最大限度地缩短实例创建、启动和登录时间
+ 关闭计划的扫描以防止不必要的扫描
+ 关闭签名缓存以防止文件枚举
+ 启用 VDI 优化的 IO 设置
+ 应用程序为确保性能而需要排除的项目

端点安全供应商提供了虚拟桌面环境的使用说明，用于优化性能。
+ 趋势科技 Office Scan [支持虚拟桌面基础架构-Apex One/OfficeScan (tren](https://success.trendmicro.com/solution/1055260-best-practice-for-setting-up-virtual-desktop-infrastructure-vdi-in-officescan) dmicro.com)
+ CrowdStrike 以及[如何在数据中心安装 CrowdStrike 猎鹰](https://www.crowdstrike.com/blog/tech-center/install-falcon-datacenter/)
+ Sophos 和 [Sophos Central Endpoint：如何安装在金色映像上以避免重复的身份](https://support.sophos.com/support/s/article/KB-000035040?language=en_US)和 [Sophos Central：在虚拟桌面环境中安装 Windows 端点的最佳实践](https://support.sophos.com/support/s/article/KB-000039009?language=en_US)
+ McAfee 以及在[虚拟桌面基础架构系统上配置和部署McAfee 代理](https://kc.mcafee.com/corporate/index?page=content&id=KB87654)
+ Microsoft 端点安全和[为非永久性 VDI 计算机配置 Microsoft Defender 防病毒软件 — Microsoft 科技社区](https://techcommunity.microsoft.com/t5/microsoft-defender-for-endpoint/configuring-microsoft-defender-antivirus-for-non-persistent-vdi/ba-p/1489633)

### 扫描排除项
<a name="scanning-exclusions"></a>

 如果在 WorkSpaces 应用程序实例中安装了安全软件，则安全软件不得干扰以下进程。

 *表 6 — WorkSpaces 应用程序进程安全软件不得干扰以下进程。*


|  **服务**  |  **进程**  | 
| --- | --- | 
|  AmazonCloudWatchAgent  |  “C:\\Program Files\\ Amazon\\AmazonCloudWatchAgent\\ start-amazon-cloudwatch-agent.exe”  | 
|  AmazonSSMAgent  |  "C:\\Program Files\\Amazon\\SSM\\amazon-ssm-agent.exe" | 
|  NICE DCV  |  "C:\\Program Files\\NICE\\DCV\\Server\\bin\\dcvserver.exe" "C:\\Program Files\\NICE\\DCV\\Server\\bin\\dcvagent.exe" | 
|  WorkSpaces 应用程序  |  “C:\\ProgramFiles\\ Amazon\\ AppStream 2\\StorageConnector\\StorageConnector.exe” <br /> 在文件夹 "C:\\Program Files\\Amazon\\Photon\\"<br /> “。 \\ 代理\\PhotonAgent.exe”<br /> ".\\Agent\\s5cmd.exe"<br /> ".\\WebServer\\PhotonAgentWebServer.exe"<br /> ".\\CustomShell\\PhotonWindowsAppSwitcher.exe"<br /> ".\\CustomShell\\PhotonWindowsCustomShell.exe"<br /> ".\\CustomShell\\PhotonWindowsCustomShellBackground.exe"  | 

### 文件夹
<a name="folders"></a>

 如果在 WorkSpaces 应用程序实例中安装了安全软件，则该软件不得干扰以下文件夹：

**Example**  

```
    C:\Program Files\Amazon\* 
    C:\ProgramData\Amazon\* 
    C:\Program Files (x86)\AWS Tools\* 
    C:\Program Files (x86)\AWS SDK for .NET\* 
    C:\Program Files\NICE\* 
    C:\ProgramData\NICE\* 
    C:\AppStream\* 
    C:\Program Files\Internet Explorer\* 
    C:\Program Files\nodejs\
```

### 端点安全控制台清洁
<a name="endpoint-security-console-hygiene"></a>

每当用户在空闲和断开连接超时之后进行连接时，Amazon A WorkSpaces pplications 都会创建新的唯一实例。这些实例将具有唯一的名称，并将在端点安全管理控制台中构建。将超过 4 天或更长时间（或更短时间，具体取决于 WorkSpaces 应用程序会话超时）的未使用过期计算机设置为删除，可以最大限度地减少控制台中过期实例的数量。

## 网络排除项
<a name="network-exclusions"></a>

 WorkSpaces 应用程序实例中的任何安全/防火墙或防病毒解决方案都不应阻止 WorkSpaces 应用程序管理网络范围 (`198.19.0.0/16`) 以及以下端口和地址。

 *表 7 — WorkSpaces 应用程序中的端口流式传输实例安全软件不得干扰* 


|  **端口**： |   **使用情况**   | 
| --- | --- | 
|  8300、3128  |  它用于建立流式连接  | 
|  8000  |  它用于通过 WorkSpaces 应用程序管理流式传输实例  | 
|  8443  |  它用于通过 WorkSpaces 应用程序管理流式传输实例  | 
|  53  |  DNS  | 

 *表 8- WorkSpaces 应用程序托管服务地址安全软件不得干扰* 


|  **端口**： |  **使用情况**  | 
| --- | --- | 
|  169.254.169.123  |  NTP  | 
|  169.254.169.249  |  NVIDIA 网格许可服务  | 
|  169.254.169.250  |  KMS  | 
|  169.254.169.251  |  KMS  | 
|  169.254.169.253  |  DNS  | 
|  169.254.169.254  |  元数据  | 

## 保护 WorkSpaces 应用程序会话
<a name="securing-an-appstream-session"></a>

### 限制应用程序和操作系统的控制
<a name="limiting-application-and-operating-system-controls"></a>

 WorkSpaces 应用程序使管理员能够准确指定哪些应用程序可以在应用程序流模式下从网页启动。但是，这并不能保证只能运行指定的应用程序。

 Windows实用程序和应用程序可以通过其他方式通过操作系统启动。 AWS 建议使用 [https://aws.amazon.com/blogs/desktop-and-application-streaming/using-microsoft-applocker-to-manage-application-experience-on-amazon-appstream-2-0/](https://aws.amazon.com/blogs/desktop-and-application-streaming/using-microsoft-applocker-to-manage-application-experience-on-amazon-appstream-2-0/) 来确保只有你的组织需要的应用程序才能运行。必须修改默认规则，因为它们授予所有人访问关键系统目录的路径权限。

**注意**  
 Windows Server 2016 和 2019 要求运行 Windows 应用程序身份服务才能强制执行 AppLocker 规则。《应用程序[管理指南》详细介绍了使用 Micro AppLocker soft 从 WorkSpaces WorkSpaces 应用程序访问应用程序。](https://docs.aws.amazon.com/appstream2/latest/developerguide/data-protection.html#application-access)

 对于加入 Active Directory 域的实例集实例，请使用组策略对象 (GPO) 提供用户和系统设置，以保护用户的应用程序和资源访问权限。

## 防火墙和路由
<a name="firewalls-and-routing"></a>

 创建 WorkSpaces 应用程序队列时，必须分配子网和安全组。子网已指定了网络访问控制列表 (NACL) 和路由表。在启动新的映像生成器或创建新实例集时，您[最多可以关联五个安全组](https://docs.aws.amazon.com/appstream2/latest/developerguide/managing-network-security-groups.html)。安全组最多可以继承[现有安全组的五个指定设置](https://docs.aws.amazon.com/appstream2/latest/developerguide/managing-network-security-groups.html)。对于每个安全组，您需要添加规则以控制进出实例的出站和入站网络数据流

网络 ACL (NACL) 是 VPC 的一个可选安全层，可作为防火墙来控制进出子网的流量。您可以设置 NACL，使其规则与您的安全组相似，以便为您的 VPC 添加额外安全层。有关安全组和 NACL 之间的差别的更多信息，请参见[安全组和 NACL 比较页面](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Security.html#VPC_Security_Comparison)。

在设计和应用安全组和 NACL 规则时，请考虑最小权限的 AWS Well-Architected 最佳实践。*最低权限*的原则是只授予完成任务所需的权限。

对于拥有将本地环境连接到 AWS（通过 AWS Direct Connect）的高速专用网络的客户，您可以考虑使用 WorkSpaces 应用程序的 VPC 终端节点，这意味着流媒体流量将通过您的私有网络连接而不是通过公共互联网进行路由。有关此主题的更多信息，请参阅本文档的 WorkSpaces 应用程序流接口 VPC 终端节点部分。

## 数据丢失防护
<a name="data-loss-prevention"></a>

我们将介绍两种数据丢失防护。

### 客户端到 WorkSpaces 应用程序实例的数据传输控制
<a name="client-to-AppStream-instance-data-transfer-controls"></a>

 *表 9 — 数据传入和传出控制指南* 


|  **设置**  |  **Options**  |  **指南**  | 
| --- | --- | --- | 
|  剪贴板  |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/whitepapers/latest/best-practices-for-deploying-amazon-appstream-2/security-1.html)  |  禁用此设置不会禁用会话中的复制和粘贴。如果需要将数据复制到会话中，请选择“仅粘贴到远程会话”，以最大限度地减少数据泄露的可能性。 | 
|  文件传输  |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/whitepapers/latest/best-practices-for-deploying-amazon-appstream-2/security-1.html)  |  避免启用此设置以防止数据泄露。 | 
|  打印到本地设备  |  [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/whitepapers/latest/best-practices-for-deploying-amazon-appstream-2/security-1.html)  |  如果需要打印，请使用由您的组织控制和监控的网络映射打印机。 | 

 思考一下现有组织数据传输解决方案相对于堆栈设置的优势。这些配置并不是为了取代全面的安全数据传输解决方案而设计的。

## 控制来自 WorkSpaces 应用程序实例的出口流量
<a name="controlling-egress-traffic"></a>

在担心数据丢失的地方，重要的是要掩盖用户进入其 WorkSpaces 应用程序实例后可以访问的内容。网络出口（或传出）路径是什么样子？ 通常要求最终用户在其 WorkSpaces 应用程序实例内访问公共互联网，因此需要考虑在网络路径中放置 WebProxy 或内容过滤解决方案。其他注意事项包括本地防病毒应用程序和 WorkSpaces 应用程序实例内的其他端点安全措施（有关更多信息，请参阅 “端点安全和防病毒” 部分）。

## 使用 AWS 务
<a name="using-aws-services"></a>

### AWS Identity and Access Management
<a name="aws-identity-and-access-management"></a>

 使用 IAM 角色访问 AWS 服务，并在与之关联的 IAM 策略中具体说明，是一种最佳实践，它规定只有 WorkSpaces 应用程序会话中的用户才能访问服务，而无需管理其他证书。遵循在[https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html#best-practices-for-using-iam-role-with-streaming-instances](https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html#best-practices-for-using-iam-role-with-streaming-instances)。

 创建 [https://docs.aws.amazon.com/appstream2/latest/developerguide/s3-iam-policy.html](https://docs.aws.amazon.com/appstream2/latest/developerguide/s3-iam-policy.html)，这些存储桶是为了在主文件夹和应用程序设置中保留用户数据而创建的。这[https://docs.aws.amazon.com/appstream2/latest/developerguide/s3-iam-policy.html#s3-iam-policy-restricted-access](https://docs.aws.amazon.com/appstream2/latest/developerguide/s3-iam-policy.html#s3-iam-policy-restricted-access)进行访问。

### VPC 端点
<a name="vpc-endpoints-1"></a>

 VPC 终端节点可在您的 VPC 与支持的 AWS 服务以及由提供支持的 VPC 终端节点服务之间建立私有连接 AWS PrivateLink。 AWS PrivateLink 是一种允许您使用私有 IP 地址私密访问服务的技术。VPC 和其他服务之间的通信不会离开 Amazon 网络。如果仅 AWS 服务需要访问公共互联网，则 VPC 终端节点将完全取消对 NAT 网关和互联网网关的要求。

 在自动化例程或开发人员需要对应用程序进行 API 调用的环境中，为 WorkSpaces 应用程序 [https://docs.aws.amazon.com/appstream2/latest/developerguide/access-api-cli-through-interface-vpc-endpoint.html](https://docs.aws.amazon.com/appstream2/latest/developerguide/access-api-cli-through-interface-vpc-endpoint.html)。 WorkSpaces 例如，如果私有子网中有 EC2 实例没有公共互联网访问权限，则可以使用 WorkSpaces 应用程序 API 的 VPC 终端节点来调用 WorkSpaces 应用程序 API 操作，例如 [https://docs.aws.amazon.com/appstream2/latest/APIReference/API_CreateStreamingURL.html](https://docs.aws.amazon.com/appstream2/latest/APIReference/API_CreateStreamingURL.html)。下图显示了一个示例设置，其中 Lambda 函数和 EC2 实例使用 WorkSpaces 应用程序 API 和流式 VPC 终端节点。

![VPC 端点的参考架构图](http://docs.aws.amazon.com/zh_cn/whitepapers/latest/best-practices-for-deploying-amazon-appstream-2/images/vpc-endpoint.jpeg)


 *VPC 端点* 

 流式传输 VPC 端点允许您通过 VPC 端点流式传输会话。流式接口端点用于维护 VPC 内的流式传输流量。流式传输流量包括像素、USB、用户输入、音频、剪贴板、文件上传和下载以及打印机流量。要使用 VPC 终端节点，必须在 WorkSpaces 应用程序堆栈中启用 VPC 终端节点设置。相比从互联网访问能力有限的地点通过公共互联网流式传输用户会话，这可以作为一种替代方案，并且它可以通过 Direct Connect 实例进行访问。通过 VPC 端点流式传输用户会话需要满足以下条件：
+  与接口端点关联的安全组必须允许从用户连接的 IP 地址范围对端口 `443` (TCP) 和端口 `1400–1499` (TCP) 进行入站访问。
+  子网的网络访问控制列表必须允许从短暂网络端口 `1024-65535` (TCP) 到用户连接的 IP 地址范围的出站流量。
+  需要互联网连接才能对用户进行身份验证并交付 WorkSpaces 应用程序运行所需的 Web 资产。

 要详细了解如何使用 WorkSpaces 应用程序限制 AWS 服务流量，请参阅有关[https://docs.aws.amazon.com/appstream2/latest/developerguide/creating-streaming-from-interface-vpc-endpoints.html](https://docs.aws.amazon.com/appstream2/latest/developerguide/creating-streaming-from-interface-vpc-endpoints.html)的管理指南。

 当需要完全的公共互联网访问时，最好在映像生成器上禁用 Internet Explorer 增强安全配置 (ESC)。有关更多信息，请参阅[https://docs.aws.amazon.com/appstream2/latest/developerguide/customize-fleets.html#customize-fleets-disable-ie-esc](https://docs.aws.amazon.com/appstream2/latest/developerguide/customize-fleets.html#customize-fleets-disable-ie-esc)的 WorkSpaces 应用程序管理指南。