

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

# 亚马逊 WorkSpaces 应用程序的身份和访问管理
<a name="controlling-access"></a>

您的安全证书可以识别您的身份， AWS 并允许您无限制地使用您的 AWS 资源，例如您的 WorkSpaces 应用程序资源。您可以使用 WorkSpaces 应用程序和 AWS Identity and Access Management (IAM) 的功能允许其他用户、服务和应用程序使用您的 WorkSpaces 应用程序资源，而无需共享您的安全证书。

您可以使用 IAM 来控制其他用户如何使用您的 Amazon Web Services 账户中的资源，也可以使用安全组来控制对您的 WorkSpaces 应用程序流式传输实例的访问权限。您可以允许完全使用或限制使用您的 WorkSpaces 应用程序资源。

**Topics**
+ [

# 对流实例的网络访问
](network-access-to-streaming-instances.md)
+ [

# 使用 AWS 托管策略和关联角色管理管理员对 WorkSpaces 应用程序资源的访问权限
](controlling-administrator-access-with-policies-roles.md)
+ [

# 使用 IAM 策略管理管理员对 Application Auto Scaling 的访问权限
](autoscaling-iam-policy.md)
+ [

# 使用 IAM 策略管理管理员对主文件夹和应用程序设置持久性 Amazon S3 存储桶的访问权限
](s3-iam-policy.md)
+ [

# 使用 IAM 角色向在应用程序流实例上 WorkSpaces 运行的应用程序和脚本授予权限
](using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.md)
+ [

# SELinux 在红帽企业 Linux 和 Rocky Linux
](selinux.md)
+ [

# 亚马逊应用程序中基于 Cookie 的身份验证 WorkSpaces
](cookie-auth.md)

# 对流实例的网络访问
<a name="network-access-to-streaming-instances"></a>

安全组充当状态防火墙，控制允许哪些流量到达您的流实例。启动 WorkSpaces 应用程序流式处理实例时，将其分配给一个或多个安全组。然后，添加规则至每个控制实例流量的安全组。您可以随时修改安全组的规则。新规则会自动应用于该安全组分配到的所有实例。

有关更多信息，请参阅 [Amazon WorkSpaces 应用程序中的安全组](managing-network-security-groups.md)。

# 使用 AWS 托管策略和关联角色管理管理员对 WorkSpaces 应用程序资源的访问权限
<a name="controlling-administrator-access-with-policies-roles"></a>

默认情况下，IAM 用户没有创建或修改 WorkSpaces 应用程序资源或使用 WorkSpaces 应用程序 API 执行任务所需的权限。这意味着这些用户无法在 WorkSpaces 应用程序控制台中或使用 WorkSpaces 应用程序 AWS CLI 命令来执行这些操作。如需允许 IAM 用户创建或修改资源并执行任务，请将 IAM 策略附加到需要这些权限的 IAM 用户或组。

在将策略附加到一个用户、用户组或 IAM 角色时，它会授权或拒绝用户使用指定资源执行指定任务。

**Topics**
+ [

# AWS 访问 WorkSpaces 应用程序资源所需的托管策略
](managed-policies-required-to-access-appstream-resources.md)
+ [

# WorkSpaces 应用程序、Application Auto Scaling 和 Certificate M AWS anager 私有 CA 所需的角色
](roles-required-for-appstream.md)
+ [

# 检查 AmazonAppStreamServiceAccess 服务角色和策略
](controlling-access-checking-for-iam-service-access.md)
+ [

# 检查 ApplicationAutoScalingForAmazonAppStreamAccess 服务角色和策略
](controlling-access-checking-for-iam-autoscaling.md)
+ [

# 检查 `AWSServiceRoleForApplicationAutoScaling_AppStreamFleet` 服务相关角色和策略
](controlling-access-checking-for-iam-service-linked-role-application-autoscaling-appstream-fleet.md)
+ [

# 检查 AmazonAppStreamPCAAccess 服务角色和策略
](controlling-access-checking-for-AppStreamPCAAccess.md)

# AWS 访问 WorkSpaces 应用程序资源所需的托管策略
<a name="managed-policies-required-to-access-appstream-resources"></a>

要提供对 WorkSpaces 应用程序的完全管理或只读访问权限，您必须将以下 AWS 托管策略之一附加到需要这些权限的 IAM 用户或群组。*AWS 托管策略* 是由 AWS创建和管理的独立策略。有关更多信息，请参阅《IAM 用户指南》**中的 [AWS 托管式策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。

**注意**  
在中 AWS，IAM 角色用于向 AWS 服务授予权限，使其能够访问 AWS 资源。附加到角色的策略决定了服务可以访问哪些 AWS 资源以及它可以用这些资源做什么。对于 WorkSpaces 应用程序，除了拥有**AmazonAppStreamFullAccess**策略中定义的权限外，您的 AWS 账户中还必须拥有所需的角色。有关更多信息，请参阅 [WorkSpaces 应用程序、Application Auto Scaling 和 Certificate M AWS anager 私有 CA 所需的角色](roles-required-for-appstream.md)。

**AmazonAppStreamFullAccess**  
此托管策略提供对 WorkSpaces 应用程序资源的完全管理访问权限。要通过 AWS 命令行界面 (AWS CLI)、 AWS SDK 或 AWS 管理控制台管理 WorkSpaces 应用程序资源和执行 API 操作，您必须拥有此策略中定义的权限。  
如果您以 IAM 用户身份登录 WorkSpaces 应用程序控制台，则必须将此策略附加到您的 AWS 账户。如果通过控制台联合身份验证登录，则必须将此策略附加到用于联合身份验证的 IAM 角色。  
要查看此策略的权限，请参阅[AmazonAppStreamFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonAppStreamFullAccess.html)。

**AmazonAppStreamReadOnlyAccess**  
此基于身份的策略向用户授予查看和监控 WorkSpaces 应用程序资源及相关服务配置的只读权限。用户可以访问 WorkSpaces 应用程序控制台来查看流媒体应用程序、队列状态、使用情况报告和相关资源，但不能进行任何更改。该策略还包括支持 IAM、Application Auto Scaling 等服务以及 CloudWatch 启用全面监控和报告功能所需的读取权限。  
要查看此策略的权限，请参阅[AmazonAppStreamReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonAppStreamReadOnlyAccess.html)。

 WorkSpaces 应用程序控制台使用另一项操作来提供无法通过 AWS CLI 或 AWS SDK 提供的功能。**AmazonAppStreamFullAccess**和**AmazonAppStreamReadOnlyAccess**策略均为以下操作提供权限。


| Action | 说明 | 访问级别 | 
| --- | --- | --- | 
| DescribeImageBuilders | 授予权限以检索描述一个或多个指定映像生成器的列表（如果提供了映像生成器名称）。否则，将描述账户中的所有映像生成器。 | 读取 | 

**AmazonAppStreamPCAAccess**  
此托管策略提供对 AWS AWS 账户中 Certifice Manager 私有 CA 资源的完全管理权限，以进行基于证书的身份验证。  
要查看此策略的权限，请参阅[AmazonAppStreamPCAAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonAppStreamPCAAccess.html)。

**AmazonAppStreamServiceAccess**  
此托管策略是 WorkSpaces 应用程序服务角色的默认策略。  
此角色权限策略允许 WorkSpaces 应用程序完成以下操作：  
+ 在您的账户中为 WorkSpaces 应用程序队列使用子网时， WorkSpaces 应用程序能够描述子网 VPCs、和可用区，并创建和管理与这些子网中的队列实例关联的所有弹性网络接口的生命周期。这其中还包括将这些子网中的安全组和 IP 地址连接到这些弹性网络接口的功能。
+ 使用 UPP 和等功能时 HomeFolders， WorkSpaces 应用程序能够在账户中创建和管理 Amazon S3 存储桶、对象及其生命周期、策略和加密配置。这些存储桶包含以下命名前缀：
  + `"arn:aws:s3:::appstream2-36fb080bb8-",`
  + `"arn:aws:s3:::appstream-app-settings-",`
  + `"arn:aws:s3:::appstream-logs-"`
要查看此策略的权限，请参阅[AmazonAppStreamServiceAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonAppStreamServiceAccess.html)。

**ApplicationAutoScalingForAmazonAppStreamAccess**  
此托管策略允许应用程序自动缩放。 WorkSpaces   
要查看此策略的权限，请参阅[ApplicationAutoScalingForAmazonAppStreamAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/ApplicationAutoScalingForAmazonAppStreamAccess.html)。

**AWSApplicationAutoscalingAppStreamFleetPolicy**  
此托管策略授予应用程序 Auto Scaling 访问 WorkSpaces 应用程序和的权限 CloudWatch 。  
要查看此策略的权限，请参阅[AWSApplicationAutoscalingAppStreamFleetPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSApplicationAutoscalingAppStreamFleetPolicy.html)。

## WorkSpaces AWS 托管策略的应用程序更新
<a name="security-iam-awsmanpol-updates"></a>



查看自该服务开始跟踪 WorkSpaces 应用程序 AWS 托管策略变更以来这些更新的详细信息。要获得有关此页面更改的自动提示，请订阅 [Amazon WorkSpaces 应用程序的文档历史记录](doc-history.md) 页面上的 RSS 源。




| 更改 | 描述 | 日期 | 
| --- | --- | --- | 
|  AmazonAppStreamServiceAccess — 改变  |   为`"ec2:DescribeImages"`策略 JSON 策略文档添加了允许权限  | 2025 年 11 月 17 日 | 
|  AmazonAppStreamReadOnlyAccess — 改变  |   已从 JSON 策略文档中移除 `"appstream:Get*",`  | 2025 年 10 月 22 日 | 
|  WorkSpaces 应用程序开始跟踪更改  |  WorkSpaces 应用程序开始跟踪其 AWS 托管策略的更改  | 2022 年 10 月 31 日 | 

# WorkSpaces 应用程序、Application Auto Scaling 和 Certificate M AWS anager 私有 CA 所需的角色
<a name="roles-required-for-appstream"></a>

在中 AWS，IAM 角色用于向 AWS 服务授予权限，使其能够访问 AWS 资源。附加到角色的策略决定了服务可以访问哪些 AWS 资源以及它可以用这些资源做什么。对于 WorkSpaces 应用程序，除了拥有**AmazonAppStreamFullAccess**策略中定义的权限外，您的 AWS 账户中还必须具有以下角色。

**Topics**
+ [

## AmazonAppStreamServiceAccess
](#AmazonAppStreamServiceAccess)
+ [

## ApplicationAutoScalingForAmazonAppStreamAccess
](#ApplicationAutoScalingForAmazonAppStreamAccess)
+ [

## AWSServiceRoleForApplicationAutoScaling\$1AppStreamFleet
](#AWSServiceRoleForApplicationAutoScaling_AppStreamFleet)
+ [

## AmazonAppStreamPCAAccess
](#AppStreamPCAAccess)

## AmazonAppStreamServiceAccess
<a name="AmazonAppStreamServiceAccess"></a>

此角色是一个服务角色，在您开始使用 AWS 区域中的 WorkSpaces 应用程序时会自动为您创建。有关服务角色的更多信息，请参阅 *IAM 用户指南*中的[创建角色以向 AWS 服务委派权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。

在创建 WorkSpaces 应用程序资源时， WorkSpaces 应用程序服务通过担任此角色来代表您对其他 AWS 服务进行 API 调用。要创建实例集，您的账户中必须具有此角色。如果此角色不在您的 AWS 账户中，并且未附加所需的 IAM 权限和信任关系策略，则无法创建 WorkSpaces 应用程序队列。

有关更多信息，请参阅[检查 AmazonAppStreamServiceAccess 服务角色和策略](controlling-access-checking-for-iam-service-access.md)以检查**AmazonAppStreamServiceAccess**服务角色是否存在以及附加的策略是否正确。

**注意**  
此服务角色的权限可以不同于第一个开始使用 WorkSpaces 应用程序的用户。有关该角色权限的详细信息，请参阅中的 “AmazonAppStreamServiceAccess” [AWS 访问 WorkSpaces 应用程序资源所需的托管策略](managed-policies-required-to-access-appstream-resources.md)。

## ApplicationAutoScalingForAmazonAppStreamAccess
<a name="ApplicationAutoScalingForAmazonAppStreamAccess"></a>

此角色是一个服务角色，在您开始使用 AWS 区域中的 WorkSpaces 应用程序时会自动为您创建。有关服务角色的更多信息，请参阅 *IAM 用户指南*中的[创建角色以向 AWS 服务委派权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。

自动缩放是 WorkSpaces 应用程序队列的一项功能。要配置扩展策略，您的 AWS 账户中必须具有此服务角色。如果此服务角色不在您的 AWS 账户中，并且未附加所需的 IAM 权限和信任关系策略，则无法扩展 WorkSpaces 应用程序队列。

有关更多信息，请参阅 [检查 ApplicationAutoScalingForAmazonAppStreamAccess 服务角色和策略](controlling-access-checking-for-iam-autoscaling.md)。

## AWSServiceRoleForApplicationAutoScaling\$1AppStreamFleet
<a name="AWSServiceRoleForApplicationAutoScaling_AppStreamFleet"></a>

此角色是自动为您创建的服务相关角色。有关更多信息，请参阅《Application Auto Scaling 用户指南》**中的[服务相关角色](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-service-linked-roles.html)。

Application Auto Scaling 使用服务相关角色代表您执行自动扩展。*服务相关角色是直接链接*到 AWS 服务的 IAM 角色。此角色包括该服务代表您调用其他 AWS 服务所需的所有权限。

有关更多信息，请参阅 [检查 `AWSServiceRoleForApplicationAutoScaling_AppStreamFleet` 服务相关角色和策略](controlling-access-checking-for-iam-service-linked-role-application-autoscaling-appstream-fleet.md)。

## AmazonAppStreamPCAAccess
<a name="AppStreamPCAAccess"></a>

此角色是一个服务角色，在您开始使用 AWS 区域中的 WorkSpaces 应用程序时会自动为您创建。有关服务角色的更多信息，请参阅 *IAM 用户指南*中的[创建角色以向 AWS 服务委派权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。

基于证书的身份验证是加入 Microsoft Active Directory 域的 WorkSpaces 应用程序队列的一项功能。要启用和使用基于证书的身份验证，您的 AWS 账户中必须具有此服务角色。如果此服务角色不在您的 AWS 账户中，并且未附加所需的 IAM 权限和信任关系策略，则无法启用或使用基于证书的身份验证。

有关更多信息，请参阅 [检查 AmazonAppStreamPCAAccess 服务角色和策略](controlling-access-checking-for-AppStreamPCAAccess.md)。

# 检查 AmazonAppStreamServiceAccess 服务角色和策略
<a name="controlling-access-checking-for-iam-service-access"></a>

完成此节中的步骤以检查 **AmazonAppStreamServiceAccess** 服务角色是否存在以及是否附加了正确的策略。如果此角色不在您的账户中且必须创建，则您或具有所需权限的管理员必须执行相应步骤才能开始使用您的 Amazon Web Services 账户中的 WorkSpaces 应用程序。

**检查 IA AmazonAppStreamServiceAccess M 服务角色是否存在**

1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 在导航窗格中，选择**角色**。

1. 在搜索框中，键入 ama **zonappstreamservic** e 以缩小要选择的角色列表范围，然后选择。**AmazonAppStreamServiceAccess**如果此角色已列出，请选择它以查看角色 **Summary (摘要)** 页面。

1. 在**权限**选项卡上，确认 **AmazonAppStreamServiceAccess** 权限策略是否已附加。

1. 返回角色 **Summary (摘要)** 页面。

1. 在**信任关系**选项卡上，选择**显示策略文档**，然后确认 **AmazonAppStreamServiceAccess** 信任关系策略是否已附加并遵循正确的格式。如果是这样的话，则信任关系配置正确。选择**取消**并关闭 IAM 控制台。

## AmazonAppStreamServiceAccess 信任关系政策
<a name="controlling-access-service-access-trust-policy"></a>

**AmazonAppStreamServiceAccess**信任关系策略必须包括 WorkSpaces 应用程序服务作为委托人。*委托*人是 AWS 可以执行操作和访问资源的实体。此策略还必须包括 `sts:AssumeRole` 操作。以下策略配置将 WorkSpaces 应用程序定义为可信实体。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
      "Service": "appstream.amazonaws.com"
    },
    "Action": "sts:AssumeRole"
    }
  ]
}
```

------

# 检查 ApplicationAutoScalingForAmazonAppStreamAccess 服务角色和策略
<a name="controlling-access-checking-for-iam-autoscaling"></a>

完成此节中的步骤以检查 **ApplicationAutoScalingForAmazonAppStreamAccess** 服务角色是否存在以及是否附加了正确的策略。如果此角色不在您的账户中且必须创建，则您或具有所需权限的管理员必须执行相应步骤才能开始使用您的 Amazon Web Services 账户中的 WorkSpaces 应用程序。

**检查 ApplicationAutoScalingForAmazonAppStreamAccessIAM 服务角色是否存在**

1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 在导航窗格中，选择**角色**。

1. 在搜索框中，键入 **applicationautoscaling** 以缩小要选择的角色列表的范围，然后选择 **ApplicationAutoScalingForAmazonAppStreamAccess**。如果此角色已列出，请选择它以查看角色 **Summary (摘要)** 页面。

1. 在**权限**选项卡上，确认 **ApplicationAutoScalingForAmazonAppStreamAccess** 权限策略是否已附加。

1. 返回角色 **Summary (摘要)** 页面。

1. 在**信任关系**选项卡上，选择**显示策略文档**，然后确认 **ApplicationAutoScalingForAmazonAppStreamAccess** 信任关系策略是否已附加并遵循正确的格式。如果是这样的话，则信任关系配置正确。选择**取消**并关闭 IAM 控制台。

## ApplicationAutoScalingForAmazonAppStreamAccess 信任关系策略
<a name="controlling-access-autoscaling-trust-policy"></a>

**ApplicationAutoScalingForAmazonAppStreamAccess** 信任关系策略必须包含 Application Auto Scaling 服务作为主体。此策略还必须包括 `sts:AssumeRole` 操作。以下策略配置将 Application Auto Scaling 定义为可信实体。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "application-autoscaling.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

# 检查 `AWSServiceRoleForApplicationAutoScaling_AppStreamFleet` 服务相关角色和策略
<a name="controlling-access-checking-for-iam-service-linked-role-application-autoscaling-appstream-fleet"></a>

完成此节中的步骤以检查 `AWSServiceRoleForApplicationAutoScaling_AppStreamFleet` 服务相关角色是否存在以及是否附加了正确的策略。如果此角色不在您的账户中且必须创建，则您或具有所需权限的管理员必须执行相应步骤才能开始使用您的 Amazon Web Services 账户中的 WorkSpaces 应用程序。

**检查 `AWSServiceRoleForApplicationAutoScaling_AppStreamFleet` IAM 服务相关角色是否存在**

1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 在导航窗格中，选择**角色**。

1. 在搜索框中，键入 **applicationautoscaling** 以缩小要选择的角色列表的范围，然后选择 `AWSServiceRoleForApplicationAutoScaling_AppStreamFleet`。如果此角色已列出，请选择它以查看角色 **Summary (摘要)** 页面。

1. 在**权限**选项卡上，确认 `AWSApplicationAutoscalingAppStreamFleetPolicy` 权限策略是否已附加。

1. 返回 **Role (角色)** 摘要页面。

1. 在**信任关系**选项卡上，选择**显示策略文档**，然后确认 `AWSServiceRoleForApplicationAutoScaling_AppStreamFleet` 信任关系策略是否已附加并遵循正确的格式。如果是这样的话，则信任关系配置正确。选择**取消**并关闭 IAM 控制台。

## AWSServiceRoleForApplicationAutoScaling\$1AppStreamFleet 信任关系政策
<a name="controlling-access-application-autoscaling-appstream-fleet-trust-policy"></a>

`AWSServiceRoleForApplicationAutoScaling_AppStreamFleet` 信任关系策略必须包括 **appstream.application-autoscaling.amazonaws.com** 作为主体。此策略还必须包括 `sts:AssumeRole` 操作。以下策略配置将 **appstream.application-autoscaling.amazonaws.com** 定义为可信实体。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "appstream.application-autoscaling.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

# 检查 AmazonAppStreamPCAAccess 服务角色和策略
<a name="controlling-access-checking-for-AppStreamPCAAccess"></a>

完成此节中的步骤以检查 **AmazonAppStreamPCAAccess** 服务角色是否存在以及是否附加了正确的策略。如果此角色不在您的账户中且必须创建，则您或具有所需权限的管理员必须执行相应步骤才能开始使用您的 Amazon Web Services 账户中的 WorkSpaces 应用程序。

**检查 IA AmazonAppStream PCAAccess M 服务角色是否存在**

1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 在导航窗格中，选择**角色**。

1. 在搜索框中，键入 **appstreampca** 以缩小要选择的角色列表范围，然后选择。**AmazonAppStreamPCAAccess**如果此角色已列出，请选择它以查看角色 **Summary (摘要)** 页面。

1. 在**权限**选项卡上，确认 **AmazonAppStreamPCAAccess ** 权限策略是否已附加。

1. 返回 **Role (角色)** 摘要页面。

1. 在**信任关系**选项卡上，选择**显示策略文档**，然后确认 **AmazonAppStreamPCAAccess ** 信任关系策略是否已附加并遵循正确的格式。如果是这样的话，则信任关系配置正确。选择**取消**并关闭 IAM 控制台。

## AmazonAppStreamPCAAccess 信任关系政策
<a name="controlling-access-amazonappstreampcaaccess-trust-policy"></a>

**AmazonAppStreamPCAAccess**信任关系政策必须将 prod.euc.ecm.amazonaws.com 列为委托人。此策略还必须包括 `sts:AssumeRole` 操作。以下策略配置将 ECM 定义为可信实体。

**使用 AWS CLI 创建 AmazonAppStreamPCAAccess 信任关系策略**

1. 使用以下文本创建名为 `AmazonAppStreamPCAAccess.json` 的 JSON 文件。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "prod.euc.ecm.amazonaws.com"
                   ]
               },
               "Action": "sts:AssumeRole",
               "Condition": {}
           }
       ]
   }
   ```

------

1. 根据需要调整`AmazonAppStreamPCAAccess.json`路径并运行以下 AWS CLI 命令来创建信任关系策略并附加 AmazonAppStreamPCAAccess 托管策略。有关托管策略的更多信息，请参阅 [AWS 访问 WorkSpaces 应用程序资源所需的托管策略](managed-policies-required-to-access-appstream-resources.md)。

   ```
   aws iam create-role --path /service-role/ --role-name AmazonAppStreamPCAAccess --assume-role-policy-document file://AmazonAppStreamPCAAccess.json
   ```

   ```
   aws iam attach-role-policy —role-name AmazonAppStreamPCAAccess —policy-arn arn:aws:iam::aws:policy/AmazonAppStreamPCAAccess
   ```

# 使用 IAM 策略管理管理员对 Application Auto Scaling 的访问权限
<a name="autoscaling-iam-policy"></a>

通过 WorkSpaces 应用程序、Amazon CloudWatch 和应用程序 Auto Scaling 的组合，可以实现队列的自动扩展 APIs。 WorkSpaces 应用程序队列是使用 WorkSpaces 应用程序创建的，警报是使用创建的，扩展策略是使用 A CloudWatch pplication Auto Scaling 创建的。

除了拥有[AmazonAppStreamFullAccess](managed-policies-required-to-access-appstream-resources.md)策略中定义的权限外，访问队列扩展设置的 IAM 用户还必须拥有支持动态扩展的服务所需的权限。IAM 用户必须具有使用以下示例策略中的操作的权限。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
          "appstream:*",
          "application-autoscaling:*",
          "cloudwatch:DeleteAlarms",
          "cloudwatch:DescribeAlarmsForMetric",
          "cloudwatch:DisableAlarmActions",
          "cloudwatch:DescribeAlarms",
          "cloudwatch:EnableAlarmActions",
          "cloudwatch:ListMetrics",
          "cloudwatch:PutMetricAlarm",
          "iam:ListRoles"
      ],
      "Resource": "*"
    },
    {
      "Sid": "iamPassRole",
      "Effect": "Allow",
      "Action": [
          "iam:PassRole"
      ],
      "Resource": "*",
      "Condition": {
         "StringEquals": {
             "iam:PassedToService": "application-autoscaling.amazonaws.com"
          }
      }
    }
  ]
}
```

------

您还可以创建自己的 IAM 策略，以设置对 Application Auto Scaling API 的调用的更具体权限。有关更多信息，请参阅 *Application Auto Scaling 用户指南*中的[身份验证和访问控制](https://docs.aws.amazon.com/autoscaling/application/userguide/auth-and-access-control.html)。

# 使用 IAM 策略管理管理员对主文件夹和应用程序设置持久性 Amazon S3 存储桶的访问权限
<a name="s3-iam-policy"></a>

以下示例显示如何使用 IAM 策略管理对用于主文件夹和应用程序设置持久性的 Amazon S3 存储桶的访问权限。

**Topics**
+ [

# 删除用于主文件夹和应用程序设置持久性的 Amazon S3 存储桶
](s3-iam-policy-delete.md)
+ [

# 限制管理员访问用于主文件夹和应用程序设置持久性的 Amazon S3 存储桶
](s3-iam-policy-restricted-access.md)

# 删除用于主文件夹和应用程序设置持久性的 Amazon S3 存储桶
<a name="s3-iam-policy-delete"></a>

WorkSpaces 应用程序在其创建的存储桶中添加 Amazon S3 存储桶策略，以防止这些存储桶被意外删除。要删除 S3 存储桶，必须先删除 S3 存储桶策略。下面是必须删除的用于主文件夹和应用程序设置持久性的存储桶策略。

**主文件夹策略**

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "PreventAccidentalDeletionOfBucket",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:DeleteBucket",
      "Resource": "arn:aws:s3:::appstream2-36fb080bb8-region-code-123456789012-without-hyphens"
    }
  ]
}
```

------

**应用程序设置持久性策略**

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "PreventAccidentalDeletionOfBucket",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:DeleteBucket",
      "Resource": "arn:aws:s3:::appstream-app-settings-region-code-123456789012-without-hyphens-unique-identifier"
     }
   ]
}
```

------

 有关更多信息，请参阅《Amazon Simple Storage Service 用户指南》**中的[删除或清空存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-or-empty-bucket.html)。

# 限制管理员访问用于主文件夹和应用程序设置持久性的 Amazon S3 存储桶
<a name="s3-iam-policy-restricted-access"></a>

默认情况下，可以访问 WorkSpaces 应用程序创建的 Amazon S3 存储桶的管理员可以查看和修改用户主文件夹和永久应用程序设置中的内容。要限制管理员对包含用户文件的 S3 存储桶的访问，我们建议根据以下模板应用 S3 存储桶访问策略：

```
{
  "Sid": "RestrictedAccess",
  "Effect": "Deny",
  "NotPrincipal": 
  {
    "AWS": [
      "arn:aws:iam::account:role/service-role/AmazonAppStreamServiceAccess",
      "arn:aws:sts::account:assumed-role/AmazonAppStreamServiceAccess/PhotonSession",
      "arn:aws:iam::account:user/IAM-user-name"
    ]
  },
    "Action": "s3:*",
    "Resource": "arn:aws:s3:::home-folder-or-application-settings-persistence-s3-bucket-region-account"
  }
 ]
}
```

此策略仅允许指定用户和 WorkSpaces 应用程序服务访问 S3 存储桶。对于应具备访问权限的每个 IAM 用户，复制下面的行：

```
"arn:aws:iam::account:user/IAM-user-name"
```

在以下示例中，策略允许除 IAM 用户 marymajor 和 johnstiles 之外的任何用户访问主文件夹 S3 存储桶。它还允许账户编号为 123456789012 的美国西部 AWS 地区（俄勒冈州）访问 WorkSpaces 应用程序服务。

```
{
  "Sid": "RestrictedAccess",
  "Effect": "Deny",
  "NotPrincipal": 
  {
    "AWS": [
      "arn:aws:iam::123456789012:role/service-role/AmazonAppStreamServiceAccess",
      "arn:aws:sts::123456789012:assumed-role/AmazonAppStreamServiceAccess/PhotonSession",
      "arn:aws:iam::123456789012:user/marymajor",
      "arn:aws:iam::123456789012:user/johnstiles"
    ]
  },
    "Action": "s3:*",
    "Resource": "arn:aws:s3:::appstream2-36fb080bb8-us-west-2-123456789012"
  }
 ]
}
```

# 使用 IAM 角色向在应用程序流实例上 WorkSpaces 运行的应用程序和脚本授予权限
<a name="using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances"></a>

在应用程序流式处理实例上运行的 WorkSpaces 应用程序和脚本必须在 AWS API 请求中包含 AWS 凭据。您可以创建一个 IAM 角色来管理这些凭证。IAM 角色指定了一组可用于访问 AWS 资源的权限。但是，此角色并非与一个人唯一关联。相反，任何需要它的人都可以代入该角色。

您可以将 IAM 角色应用于 WorkSpaces 应用程序流式处理实例。当流实例切换到（代入）角色时，该角色提供临时安全凭证。您的应用程序或脚本使用这些凭据在流媒体实例上执行 API 操作和管理任务。 WorkSpaces 应用程序会为您管理临时凭证切换。

**Topics**
+ [

# 将 IAM 角色与 WorkSpaces 应用程序流媒体实例配合使用的最佳实践
](best-practices-for-using-iam-role-with-streaming-instances.md)
+ [

# 配置现有 IAM 角色以用于 WorkSpaces 应用程序流式处理实例
](configuring-existing-iam-role-to-use-with-streaming-instances.md)
+ [

# 如何创建用于 WorkSpaces 应用程序流式处理实例的 IAM 角色
](how-to-create-iam-role-to-use-with-streaming-instances.md)
+ [

# 如何将 IAM 角色用于 WorkSpaces 应用程序流式处理实例
](how-to-use-iam-role-with-streaming-instances.md)

# 将 IAM 角色与 WorkSpaces 应用程序流媒体实例配合使用的最佳实践
<a name="best-practices-for-using-iam-role-with-streaming-instances"></a>

当您将 IAM 角色用于 WorkSpaces 应用程序流式处理实例时，我们建议您遵循以下做法：
+ 限制您授予 AWS API 操作和资源的权限。

  在创建 IAM 策略并将其附加到与 WorkSpaces 应用程序流媒体实例关联的 IAM 角色时，请遵循最低权限原则。当您使用需要访问 AWS API 操作或资源的应用程序或脚本时，请确定所需的特定操作和资源。然后，创建允许应用程序或脚本仅执行这些操作的策略。有关更多信息，请参阅 *IAM 用户指南*中的[授予最低权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)。
+ 为每个 WorkSpaces 应用程序资源创建一个 IAM 角色。

  为每个 WorkSpaces 应用程序资源创建唯一的 IAM 角色是一种遵循最低权限原则的做法。这样做还允许您修改一个资源的权限，而不会影响其他资源。
+ 限制可以使用凭证的位置。

  通过 IAM 策略，您可以定义可使用 IAM 角色访问资源的条件。例如，您可以包含条件以指定请求可以来自的 IP 地址范围。这样做可以防止在您的环境之外使用凭证。有关更多信息，请参阅《IAM 用户指南》**中的[使用策略条件来增强安全性](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#use-policy-conditions)。

# 配置现有 IAM 角色以用于 WorkSpaces 应用程序流式处理实例
<a name="configuring-existing-iam-role-to-use-with-streaming-instances"></a>

本主题介绍如何配置现有 IAM 角色，以便您可以将其与映像生成器和实例集流实例一起使用。

**先决条件**

您要与 WorkSpaces 应用程序映像生成器或队列流式传输实例一起使用的 IAM 角色必须满足以下先决条件：
+ IAM 角色必须与 WorkSpaces 应用程序流媒体实例位于同一个 Amazon Web Services 账户中。
+ IAM 角色不能是服务角色。
+ 附加到 IAM 角色的信任关系策略必须包括 WorkSpaces 应用程序服务作为委托人。*委托*人是 AWS 可以执行操作和访问资源的实体。该策略还必须包括 `sts:AssumeRole` 操作。此策略配置将 WorkSpaces 应用程序定义为可信实体。

  
+ 如果您将 IAM 角色应用于映像生成器，则映像生成器必须运行 2019 年 9 月 3 日当天或之后发布的 WorkSpaces 应用程序代理版本。如果要将 IAM 角色应用于一个实例集，则该实例集必须使用一个映像，该映像使用在同一日期或之后发布的代理版本。有关更多信息，请参阅 [WorkSpaces 应用程序代理发行说明](agent-software-versions.md)。

**使 WorkSpaces 应用程序服务委托人能够代入现有 IAM 角色**

要执行以下步骤，您必须以具有列出和更新 IAM 角色所需权限的 IAM 用户身份登录账户。如果您没有所需的权限，则要求您的 Amazon Web Services 账户管理员在您的账户中执行这些步骤或授予您所需权限。

1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 在导航窗格中，选择**角色**。

1. 在您的账户的角色列表中，选择要修改的角色的名称。

1. 选择 **信任关系** 选项卡，然后选择 **编辑信任关系**。

1. 在**策略文档**下，验证信任关系策略是否包含 `appstream.amazonaws.com` 服务主体的 `sts:AssumeRole` 操作：

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": [
             "appstream.amazonaws.com"
           ]
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1. 在编辑完信任策略后，请选择**更新信任策略**以保存所做更改。

1. 您选择的 IAM 角色将显示在 WorkSpaces 应用程序控制台中。此角色授予对应用程序和脚本的权限，以便在流实例上执行 API 操作和管理任务。

# 如何创建用于 WorkSpaces 应用程序流式处理实例的 IAM 角色
<a name="how-to-create-iam-role-to-use-with-streaming-instances"></a>

本主题介绍了如何创建新 IAM 角色，以便用于映像生成器和实例集流实例。

1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 在导航窗格中，选择**角色**，然后选择**创建角色**。

1. 对于**Select type of trusted entity（选择受信任实体的类型）**，选择 **AWS service（服务）**。

1. 从 AWS 服务列表中选择 “**WorkSpaces 应用程序**”。

1. 在 **“选择您的用例”** 下，“**WorkSpaces WorkSpaces 应用程序-允许应用程序实例代表您调用 AWS 服务**” 已被选中。选择**下一步: 权限**。

1. 如果可能，选择要用作权限策略的策略，或选择 **Create policy**（创建策略）以打开新的浏览器选项卡并从头开始创建新策略。有关更多信息，请参阅《IAM 用户指南》**中[创建 IAM 策略（控制台）](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-start)过程的步骤 4。

   在您创建策略后，关闭该选项卡并返回到您的原始选项卡。选中您希望 WorkSpaces 应用程序拥有的权限策略旁边的复选框。

1. （可选）设置权限边界。这是一项高级功能，可用于服务角色，但不可用于服务相关角色。有关更多信息，请参阅《IAM 用户指南》**中的 [IAM 实体的权限边界](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)。

1. 选择**下一步：标签**。您可以选择附加标签作为键值对。有关更多信息，请参阅《IAM 用户指南》**中的[标记 IAM 用户和角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html)。

1. 选择**下一步：审核**。

1. 对于**角色名称**，请键入在 Amazon Web Services 账户中唯一的角色名称。由于其他 AWS 资源可能会引用该角色，因此您无法在角色创建后对其名称进行编辑。

1. 对于 **Role description (角色描述)**，请保留默认角色描述或键入新角色描述。

1. 检查该角色，然后选择**创建角色**。

# 如何将 IAM 角色用于 WorkSpaces 应用程序流式处理实例
<a name="how-to-use-iam-role-with-streaming-instances"></a>

创建 IAM 角色后，可以在启动映像生成器或创建实例集时将其应用于映像生成器或实例集流实例。您也可以将 IAM 角色应用到现有实例集。有关在启动映像生成器时如何应用 IAM 角色的信息，请参阅[启动映像生成器来安装和配置流应用程序](tutorial-image-builder-create.md)。有关在创建实例集时如何应用 IAM 角色的信息，请参阅[在 Amazon WorkSpaces 应用程序中创建舰队](set-up-stacks-fleets-create.md)。

当您将 IAM 角色应用于映像生成器或队列流式传输实例时， WorkSpaces 应用程序会检索临时证书并在该实例上创建 **appstream\$1machine\$1role 凭证配置文件**。临时凭证有效期为 1 小时，每小时检索一次新凭证。以前的凭证不会过期，因此只要它们有效，您就可以使用它们。您可以使用您选择的语言使用 AWS 命令行界面 (CL AWS I)、 AWS 工具或 AWS SDK，以编程方式使用凭证配置文件来调用 AWS 服务。 PowerShell

当您进行 API 调用时，请将 **appstream\$1machine\$1role** 指定为凭证配置文件。否则，由于权限不足，操作将失败。

WorkSpaces 在预配置流式处理实例时，应用程序将扮演指定的角色。由于 WorkSpaces 应用程序使用连接到您的 VPC 的弹性网络接口进行 AWS API 调用，因此您的应用程序或脚本必须等待弹性网络接口可用后才能进行 AWS API 调用。如果在弹性网络接口可用之前进行 API 调用，则调用将失败。

以下示例演示如何使用 **appstream\$1machine\$1role** 凭证配置文件描述流实例（EC2 实例）和创建 Boto 客户端。Boto 是适用于 Python 的 Amazon Web Services（AWS）SDK。

**使用 AWS CLI 描述流式处理实例（EC2 实例）**

```
aws ec2 describe-instances --region us-east-1 --profile appstream_machine_role
```

**使用以下 AWS 工具描述流式处理实例（EC2 实例） PowerShell**

您必须使用适用于 3.3.563.1 或更高 PowerShell 版本的 AWS 工具，以及适用于.NET 的 Amazon Web Services SDK 版本 3.3.103.22 或更高版本。[您可以从 PowerShell网站的 AWS 工具中下载适用于 Windows 的工具安装程序，其中包括适用于.NET 的 AWS 工具 PowerShell 和适用于.NET 的 Amazon Web Ser AWS vices SDK。](https://aws.amazon.com/powershell/)

```
Get-EC2Instance -Region us-east-1 -ProfileName appstream_machine_role
```

**使用适用于 Python 的 AWS 软件开发工具包创建 Boto 客户端**

```
session = boto3.Session(profile_name='appstream_machine_role')
```

# SELinux 在红帽企业 Linux 和 Rocky Linux
<a name="selinux"></a>

默认情况下，对于由红帽企业 Linux `enabled` 和 Rocky Linux 提供支持的 WorkSpaces 应用程序映像生成器和流媒体实例，安全增强型 Linux (SELinux) 设置为`enforcing`模式。在`enforcing`模式下，会强制执行权限拒绝。 SELinux 是内核功能和实用程序的集合，用于为内核的主要子系统提供强大、灵活的强制访问控制 (MAC) 架构。

SELinux 提供了一种增强的机制，用于根据保密和完整性要求强制信息分离。这种信息分离减少了篡改和绕过应用程序安全机制的威胁，也限制了恶意或有缺陷的应用程序可能导致的损害。

SELinux 包括一组安全策略配置文件示例，旨在满足日常安全目标。有关 SELinux 特性和功能的更多信息，请参阅[什么是 SELinux](https://www.redhat.com/en/topics/linux/what-is-selinux)？

# 亚马逊应用程序中基于 Cookie 的身份验证 WorkSpaces
<a name="cookie-auth"></a>

WorkSpaces 应用程序使用浏览器 Cookie 对直播会话进行身份验证，并允许用户无需每次都重新输入登录凭据即可重新连接到活动会话。每种身份验证场景的身份验证令牌都存储在浏览器 Cookie 中。虽然 Cookie 是许多在线服务所必需的，但它们可能会面临 Cookie 被盗的风险。我们强烈建议您采取主动措施来防范 Cookie 被盗，例如为您用户的设备实施强大的端点保护解决方案。此外，为了减轻 Cookie 被盗事件的潜在影响，我们建议您考虑以下措施：
+ **强制执行单会话限制**：对于您的 WorkSpaces 应用程序 Windows 映像，请在下`HKEY_USERS\S-1-5-18\Software\GSettings\com\nicesoftware\dcv\session-management`创建一个注册表项，名称**max-concurrent-clients**设置为 1，以便一次只允许一个连接。这会将并发会话的数量限制为一个，并阻止对活动会话进行镜像。有关更多信息，请参阅 [session-management Parameters](https://docs.aws.amazon.com/dcv/latest/adminguide/config-param-ref.html#session_management)。
+ **强制会话到期并重新进行身份验证**
  + 减少该 SessionDuration 值，使身份验证令牌在用户成功启动直播会话后过期。在 SessionDuration 到期后重复使用身份验证 Cookie 需要用户重新进行身份验证。 SessionDuration 指定在要求重新进行身份验证之前，用户的联合流媒体会话可以保持活动状态的最长时间。默认值为 60 分钟。有关更多信息，请参阅 [步骤 5：为 SAML 身份验证响应创建断言](external-identity-providers-setting-up-saml.md#external-identity-providers-create-assertions)。
  + 为了最大限度地提高安全性，用户应使用工具栏正确结束会话（终止会话），而不是关闭流式传输窗口。通过工具栏结束会话会同时终止用户会话和流式传输实例。这要求在未来访问时重新进行身份验证，以防止滥用 Cookie。如果用户在没有结束会话的情况下关闭流式传输窗口，则会话和实例将在可配置的断开连接超时时间（以分钟为单位）内保持活动状态。断开连接超时必须是 1 到 5760 之间的数字，默认值为 15 分钟。为防止滥用非活动会话，我们建议设置一个较短的断开连接超时时间。有关更多信息，请参阅 [在 Amazon WorkSpaces 应用程序中创建舰队](set-up-stacks-fleets-create.md)。
+ 将@@ ** WorkSpaces 应用程序流式传输访问权限限制在您的 IP 范围内**：我们建议您实施基于 IP 的 IAM 策略。这样可以确保只能从 IP 地址属于授权 IP 范围的客户端访问 WorkSpaces 应用程序会话。即使客户端的 IP 地址位于授权范围之外的用户提供了其他有效的身份验证 Cookie（可能是从其他用户那里盗取的），其发起的所有连接尝试也都将被拒绝。有关更多信息，请参阅[限制对您的 IP 范围的 Amazon AppStream 2.0 应用程序的访问权限](https://aws.amazon.com/blogs/desktop-and-application-streaming/limit-access-to-stream-amazon-appstream-2-0-applications-to-your-ip-ranges/)。
+ **添加其他身份验证**：要启动加入域的流式传输实例，您可以将 WorkSpaces 应用程序始终在线和按需 Windows 队列以及映像生成器加入到 Microsoft Active Directory 中的域，并使用现有的 Active Directory 域（基于云或本地）。在执行基于 SAML 的初始身份验证后，系统将提示您的用户提供其域凭据，以便针对组织域进行额外的身份验证。有关更多信息，请参阅 [将活动目录与 WorkSpaces 应用程序配合使用](active-directory.md)。

 如果您有任何疑虑或需要帮助，请联系 [AWS 支持 中心](https://console.aws.amazon.com/support/home#/)。