

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

# 选择桌面视图或应用程序视图
<a name="choosing-desktop-view-or-application-view"></a>

 决定选择应用程序视图还是桌面视图对性能或成本没有影响。在任何给定时间，每个 WorkSpaces 应用程序队列只能访问一个视图。您可以更改**流视图**选项。请计划在非高峰工作时段进行此更改，因为更改流视图需要重启实例集。

 流视图没有单独的最佳实践。流视图选项的影响概括如下：
+  管理员可通过**使用情况报告**功能报告应用程序的详细使用情况 
+  最终用户的整体体验和工作流程（例如，完整的桌面是否可以满足使用案例的需求，还是只查看应用程序就足够了？）。

## 桌面视图
<a name="desktop-view"></a>

 对于所有用户工作流程都在会话中执行的使用案例，桌面视图可通过将所有应用程序集中在一个环境中来简化用户体验。如需部署超过 3-5 个需要与操作系统 (OS) 集成的应用程序，桌面视图可以提供更一致的用户体验。当维护两个独立且不同的环境时，桌面视图非常实用。例如，用户可以同时访问生产和预生产桌面环境，验证布局、配置和应用程序访问权限的更改。

 WorkSpaces 应用程序使用情况报告为 “桌面视图” 创建每日应用程序报告。应用程序的结果输出只是 “桌面”，直接映射到 WorkSpaces 应用程序会话。有关更多信息，请参阅本文档的[**监控用户使用情况**](monitoring.md#monitoring-user-usage)部分。

## 纯应用程序视图
<a name="applications-only-view"></a>

 当应用程序堆栈旨在提供一些间歇性需要的 WorkSpaces 应用程序时，“仅限应用程序” 视图也很有效。在自助服务终端环境中，通过应用程序视图可提供安全锁定的应用程序交付。在 “应用程序视图” 中，“ WorkSpaces 应用程序” 将默认的 Windows 外壳替换为自定义外壳。此自定义 shell 仅显示正在运行的应用程序，从而最大限度地减少了操作系统的攻击面。

 对于使用 WorkSpaces 应用程序来增强现有组织桌面环境的用例，首选 “仅限应用程序” 视图。在本[*机应用程序模式*](https://docs.aws.amazon.com/appstream2/latest/developerguide/client-system-requirements-feature-support.html#feature-support-native-application-mode)下部署 WorkSpaces 应用程序 Windows Client，允许充分使用键盘快捷键，从而最大限度地减少用户困惑。

 Amazon WorkSpaces 应用程序使用情况报告会为应用程序视图创建每日应用程序报告。要更精细地报告应用程序和运行使用情况，可以考虑使用第三方解决方案从操作系统级别报告。你可以在报告模式下使用微软，也可以考虑 AppLocker 中提供的解决方案，例如 Liquidware 的 [*Stratus*](https://aws.amazon.com/marketplace/pp/prodview-ghxb36werkone) phere UX。 AWS Marketplace

## AWS Identity and Access Management 角色配置
<a name="identity-and-access-management-role-configuration"></a>

如果工作负载要求 WorkSpaces 应用程序最终用户从其会话中访问其他 AWS 服务，则最佳做法是通过使用 [AWS Identity and Access Management (IAM) 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)来委派访问权限。通过[实例集级别的分配](https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html#how-to-use-iam-role-with-streaming-instances)，可以将 IAM 角色直接附加到最终用户的会话。有关在 WorkSpaces 应用程序中使用 IAM 角色的其他最佳实践，请参阅[管理员指南的此部分](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)。

### 使用静态凭证
<a name="using-static-credentials"></a>

某些工作负载可能需要静态输入 IAM 访问密钥，而不是从附加的角色继承而来。获取这些凭证有两种方法。第一种方法是将访问密钥存储在 AWS 服务中，然后向最终用户授予明确的 IAM 访问权限，以从服务中提取该特定值。使用 [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/tutorials_basic.html) 或 [AWS SSM 参数存储](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-su-create.html)是访问密钥存储机制的两个示例。第二种方法是使用 WorkSpaces 应用程序凭据提供程序来访问附加角色的访问密钥。这可以通过调用凭证提供程序并解析访问密钥和私有密钥的输出信息来完成。 PowerShell 下面是如何执行此操作的示例。

```
$CMD = 'C:\Program Files\Amazon\Photon\PhotonRoleCredentialProvider\PhotonRoleCredentialProvider.exe'
$role = 'Machine'

$output = & $CMD --role=$role
$parsed = $output | ConvertFrom-Json

$access_key = $parsed.AccessKeyId
$secret_key = $parsed.SecretAccessKey
$session_token = $parsed.SessionToken
```

### 保护您的 WorkSpaces 应用程序 S3 存储桶
<a name="protecting-appstream-bucket"></a>

如果您的 WorkSpaces 应用程序工作负载配置了主文件夹 and/or 应用程序持久性，则最佳做法是保护存储永久数据的 Amazon S3 存储桶，防止未经授权的访问或意外删除。第一层保护是添加 Amazon S3 存储桶策略，以[避免存储桶被意外删除](https://docs.aws.amazon.com/appstream2/latest/developerguide/s3-iam-policy.html#s3-iam-policy-delete)。第二层保护是添加符合最低权限原则的存储桶策略。要遵循这一原则，可以只[允许必要的各方访问存储桶](https://docs.aws.amazon.com/appstream2/latest/developerguide/s3-iam-policy.html#s3-iam-policy-restricted-access)。