

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

# 亚马逊的安全 WorkSpaces
<a name="security"></a>

云安全 AWS 是重中之重。作为 AWS 客户，您可以受益于专为满足大多数安全敏感型组织的要求而构建的数据中心和网络架构。

安全是双方共同承担 AWS 的责任。[责任共担模式](https://aws.amazon.com/compliance/shared-responsibility-model/)将其描述为云*的*安全性和云*中*的安全性：
+ **云安全** — AWS 负责保护在云中运行 AWS 服务的基础架构 AWS 云。 AWS 还为您提供可以安全使用的服务。作为[AWS 合规计划合规计划合规计划合](https://aws.amazon.com/compliance/programs/)的一部分，第三方审计师定期测试和验证我们安全的有效性。要了解适用于亚马逊的合规计划 WorkSpaces，请参阅合规计划[范围内的AWS 服务按合规计划](https://aws.amazon.com/compliance/services-in-scope/)。
+ **云端安全**-您的责任由您使用的 AWS 服务决定。您还需要对其他因素负责，包括您的数据的敏感性、您公司的要求以及适用的法律法规。

本文档可帮助您了解在使用时如何应用分担责任模型 WorkSpaces。以下主题向您展示如何进行配置 WorkSpaces 以满足您的安全和合规性目标。您还将学习如何使用其他 AWS 服务来帮助您监控和保护您的 WorkSpaces 资源。

**Topics**
+ [Amazon WorksPaces 中的数据保护](data-protection.md)
+ [的身份和访问管理 WorkSpaces](workspaces-access-control.md)
+ [Amazon WorkSpaces 的合规性验证](compliance-validation.md)
+ [Amazon WorkSpaces 中的故障恢复能力](disaster-recovery-resiliency.md)
+ [Amazon 的基础设施安全 WorkSpaces](infrastructure-security.md)
+ [WorkSpaces 中的更新管理](update-management.md)

# Amazon WorksPaces 中的数据保护
<a name="data-protection"></a>

AWS[责任共担模式](https://aws.amazon.com/compliance/shared-responsibility-model/)适用于 Amazon WorkSpaces 中的数据保护。如该模式中所述，AWS 负责保护运行所有 AWS 云 的全球基础结构。您负责维护对托管在此基础结构上的内容的控制。您还负责您所使用的 AWS 服务 的安全配置和管理任务。有关数据隐私的更多信息，请参阅[数据隐私常见问题](https://aws.amazon.com/compliance/data-privacy-faq/)。有关欧洲数据保护的信息，请参阅 *AWS Security Blog* 上的 [AWS Shared Responsibility Model and GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) 博客文章。

出于数据保护目的，建议您保护 AWS 账户 凭证并使用 AWS IAM Identity Center 或 AWS Identity and Access Management（IAM）设置单个用户。这样，每个用户只获得履行其工作职责所需的权限。还建议您通过以下方式保护数据：
+ 对每个账户使用多重身份验证（MFA）。
+ 使用 SSL/TLS 与 AWS 资源进行通信。我们要求使用 TLS 1.2，建议使用 TLS 1.3。
+ 使用 AWS CloudTrail 设置 API 和用户活动日记账记录。有关使用 CloudTrail 跟踪来捕获 AWS 活动的信息，请参阅《AWS CloudTrail 用户指南》**中的[使用 CloudTrail 跟踪](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html)。
+ 使用 AWS 加密解决方案以及 AWS 服务中的所有默认安全控制。
+ 使用高级托管安全服务（例如 Amazon Macie），它有助于发现和保护存储在 Amazon S3 中的敏感数据。
+ 如果在通过命令行界面或 API 访问 AWS 时需要经过 FIPS 140-3 验证的加密模块，请使用 FIPS 端点。有关可用的 FIPS 端点的更多信息，请参阅[《美国联邦信息处理标准（FIPS）第 140-3 版》](https://aws.amazon.com/compliance/fips/)。

强烈建议您切勿将机密信息或敏感信息（如您客户的电子邮件地址）放入标签或自由格式文本字段（如**名称**字段）。这包括处理 WorkSpaces 或其他 AWS 服务时使用控制台、API、AWS CLI 或 AWS SDK。在用于名称的标签或自由格式文本字段中输入的任何数据都可能会用于计费或诊断日志。如果您向外部服务器提供网址，强烈建议您不要在网址中包含凭证信息来验证对该服务器的请求。

有关 WorkSpaces 和 FIPS 端点加密的更多信息，请参阅[为个人配置 FedRAMP 授权或国防部 SRG 合规性 WorkSpaces](fips-encryption.md)。

## 静态加密
<a name="encryption-rest"></a>

您可以从 AWS Key Management Service 使用 AWS KMS 密钥来加密 WorkSpaces 的存储卷。有关更多信息，请参阅 [WorkSpaces 以 WorkSpaces 个人身份加密](encrypt-workspaces.md)。

当您创建使用加密卷的 WorkSpaces 时，WorkSpaces 将使用 Amazon Elastic Block Store (Amazon EBS) 创建和管理这些卷。EBS 通过行业标准的 AES-256 算法，利用数据密钥加密您的卷。有关更多信息，请参阅《Amazon EC2 用户指南》**中的 [Amazon EBS 加密](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html)。

## 传输中加密
<a name="encryption-transit"></a>

对于 PCoIP，传输中数据使用 TLS 1.2 加密和 SigV4 请求签名进行加密。PCoIP 协议使用带有 AES 加密的加密的 UDP 流量来传输像素。通过端口 4172（TCP 和 UDP）的流连接使用 AES-128 和 AES-256 密码进行加密，但加密默认为 128 位。您可以将此默认值更改为 256 位，方法是：使用适用于 Windows WorkSpaces 的**配置 PCoIP 安全设置**组策略设置，或修改 Amazon Linux WorkSpaces `pcoip-agent.conf` 文件中的 **PCoIP 安全设置**。

要详细了解 Amazon WorkSpaces 的组策略管理，请参阅[WorkSpaces 在 WorkSpaces 个人版中管理你的 Windows](group_policy.md) 中的[配置 PCo IP 安全设置](group_policy.md#gp_security)。要详细了解如何修改 `pcoip-agent.conf` 文件，请参阅 Teradici 文档中的[控制 PCo IP 代理在 Amazon Linux 上的行为 WorkSpaces](manage_linux_workspace.md#pcoip_agent_linux)和 [PCoIP 安全设置](https://www.teradici.com/web-help/pcoip_agent/standard_agent/linux/21.03/admin-guide/configuring/configuring/#pcoip-security-settings)。

对于 DCV，在流式传输和控制传输中数据时通过 AES-256 加密算法，针对 UDP 流量使用 TLS 1.3 加密技术进行加密，针对 TCP 流量使用 TLS 1.2 加密技术进行加密。

# 的身份和访问管理 WorkSpaces
<a name="workspaces-access-control"></a>

默认情况下，IAM 用户没有 WorkSpaces 资源和操作权限。要允许 IAM 用户管理 WorkSpaces 资源，您必须创建明确授予他们权限的 IAM 策略，并将该策略附加到需要这些权限的 IAM 用户或群组。

**注意**  
Amazon WorkSpaces 不支持将 IAM 凭证配置到 WorkSpace （例如使用实例配置文件）。

要提供访问权限，请为您的用户、组或角色添加权限：
+ 中的用户和群组 AWS IAM Identity Center：

  创建权限集合。按照《AWS IAM Identity Center 用户指南》**中[创建权限集](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)的说明进行操作。
+ 通过身份提供商在 IAM 中托管的用户：

  创建适用于身份联合验证的角色。按照《IAM 用户指南》**中[针对第三方身份提供商创建角色（联合身份验证）](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html)的说明进行操作。
+ IAM 用户：
  + 创建您的用户可以担任的角色。按照《IAM 用户指南》**中[为 IAM 用户创建角色](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html)的说明进行操作。
  + （不推荐使用）将策略直接附加到用户或将用户添加到用户组。按照《IAM 用户指南》**中[向用户添加权限（控制台）](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)中的说明进行操作。

以下是 IAM 的其他资源：
+ 有关 IAM 策略的更多信息，请参阅《IAM 用户指南》**中的[策略和权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)。
+ 有关 IAM 的更多信息，请参阅[身份和访问管理 (IAM)](https://aws.amazon.com/iam) 和 [https://docs.aws.amazon.com/IAM/latest/UserGuide/](https://docs.aws.amazon.com/IAM/latest/UserGuide/)。
+ 有关在 IAM 权限策略中使用的 WorkSpaces特定资源、操作和条件上下文密钥的更多信息，请参阅 IA *M 用户指南 WorkSpaces*中的 A [mazon 操作、资源和条件密钥](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonworkspaces.html)。
+ 有关可帮助您创建 IAM 策略的工具，请参阅 [AWS 策略生成器](https://aws.amazon.com/blogs/aws/aws-policy-generator/)。您还可以使用 [IAM Policy Simulator](https://docs.aws.amazon.com/IAM/latest/UsingPolicySimulatorGuide/) 来测试策略是允许还是拒绝对 AWS的特定请求。

**Topics**
+ [策略示例](#workspaces-example-iam-policies)
+ [在 IAM 策略中指定 WorkSpaces 资源](#wsp_iam_resource)
+ [创建工作空间\$1 角色 DefaultRole](#create-default-role)
+ [创建 AmazonWorkSpacesPCAAccess 服务角色](#create-pca-access-role)
+ [AWS 的托管策略 WorkSpaces](managed-policies.md)
+ [对流媒体实例的访问权限 WorkSpaces 和脚本](using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.md)
+ [Amazon WorkSpaces 控制台操作权限参考](wsp-console-permissions-ref.md)

## 策略示例
<a name="workspaces-example-iam-policies"></a>

以下示例显示了政策声明，您可以使用这些声明来控制 IAM 用户对 Amazon 的权限 WorkSpaces。

### 示例 1：授予执行 WorkSpaces 个人和池任务的访问权限
<a name="perform-workspaces-personal-pools-tasks"></a>

以下政策声明授予 IAM 用户执行 WorkSpaces个人和池任务的权限。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ds:*",
                "workspaces:*",
                "application-autoscaling:DeleteScalingPolicy",
                "application-autoscaling:DeleteScheduledAction",
                "application-autoscaling:DeregisterScalableTarget",
                "application-autoscaling:DescribeScalableTargets",
                "application-autoscaling:DescribeScalingActivities",
                "application-autoscaling:DescribeScalingPolicies",
                "application-autoscaling:DescribeScheduledActions",
                "application-autoscaling:PutScalingPolicy",
                "application-autoscaling:PutScheduledAction",
                "application-autoscaling:RegisterScalableTarget",
                "cloudwatch:DeleteAlarms",
                "cloudwatch:DescribeAlarms",
                "cloudwatch:PutMetricAlarm",
                "ec2:AssociateRouteTable",
                "ec2:AttachInternetGateway",
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:CreateInternetGateway",
                "ec2:CreateNetworkInterface",
                "ec2:CreateRoute",
                "ec2:CreateRouteTable",
                "ec2:CreateSecurityGroup",
                "ec2:CreateSubnet",
                "ec2:CreateTags",
                "ec2:CreateVpc",
                "ec2:DeleteNetworkInterface",
                "ec2:DeleteSecurityGroup",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeInternetGateways",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeRouteTables",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcs",
                "ec2:RevokeSecurityGroupEgress",
                "ec2:RevokeSecurityGroupIngress",
                "iam:AttachRolePolicy",
                "iam:CreatePolicy",
                "iam:CreateRole",
                "iam:GetRole",
                "iam:ListRoles",
                "iam:PutRolePolicy",
                "kms:ListAliases",
                "kms:ListKeys",
                "secretsmanager:ListSecrets",
                "tag:GetResources",
                "sso-directory:SearchUsers",
                "sso:CreateApplication",
                "sso:DeleteApplication",
                "sso:DescribeApplication",
                "sso:DescribeInstance",
                "sso:GetApplicationGrant",
                "sso:ListInstances",
                
                "sso:PutApplicationAssignmentConfiguration",
                "sso:PutApplicationAuthenticationMethod",
                "sso:PutApplicationGrant"
            ],
            "Resource": "*"
        },
        {
            "Sid": "iamPassRole",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "workspaces.amazonaws.com"
                }
            }
        }
    ]
}
```

------

### 示例 2：授予执行 WorkSpaces 个人任务的权限
<a name="perform-workspaces-personal-tasks"></a>

以下政策声明授予 IAM 用户执行所有 WorkSpaces 个人任务的权限。

尽管在使用 API `Action` 和命令行工具时，Amazon WorkSpaces 完全支持和`Resource`元素，但要 WorkSpaces 从中使用 Amazon AWS 管理控制台，IAM 用户必须拥有以下操作和资源的权限：
+ 行动：`"ds:*"`
+ 资源：`"Resource": "*"`

以下示例策略说明如何允许 IAM 用户使用 WorkSpaces 来自的 Amazon AWS 管理控制台。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "workspaces:*",
        "ds:*",
        "iam:GetRole",
        "iam:CreateRole",
        "iam:PutRolePolicy",
        "iam:CreatePolicy",
        "iam:AttachRolePolicy",
        "iam:ListRoles",
        "kms:ListAliases",
        "kms:ListKeys",
        "ec2:CreateVpc",
        "ec2:CreateSubnet",
        "ec2:CreateNetworkInterface",
        "ec2:CreateInternetGateway",
        "ec2:CreateRouteTable",
        "ec2:CreateRoute",
        "ec2:CreateTags",
        "ec2:CreateSecurityGroup",
        "ec2:DescribeInternetGateways",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeRouteTables",
        "ec2:DescribeVpcs",
        "ec2:DescribeSubnets",
        "ec2:DescribeNetworkInterfaces",
        "ec2:DescribeAvailabilityZones",
        "ec2:AttachInternetGateway",
        "ec2:AssociateRouteTable",
        "ec2:AuthorizeSecurityGroupEgress",
        "ec2:AuthorizeSecurityGroupIngress",
        "ec2:DeleteSecurityGroup",
        "ec2:DeleteNetworkInterface",
        "ec2:RevokeSecurityGroupEgress",
        "ec2:RevokeSecurityGroupIngress",
        "secretsmanager:ListSecrets",
        "sso-directory:SearchUsers",
        "sso:CreateApplication",
        "sso:DeleteApplication",
        "sso:DescribeApplication",
        "sso:DescribeInstance",
        "sso:GetApplicationGrant",
        "sso:ListInstances",
        
        "sso:PutApplicationAssignmentConfiguration",
        "sso:PutApplicationAuthenticationMethod",
        "sso:PutApplicationGrant"
      ],
      "Resource": "*"
    },
    {
      "Sid": "iamPassRole",
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "iam:PassedToService": "workspaces.amazonaws.com"
        }
      }
    }
  ]
}
```

------

### 示例 3：授予执行资源 WorkSpaces 池任务的权限
<a name="perform-workspaces-pools-tasks"></a>

以下政策声明授予 IAM 用户执行所有 P WorkSpaces ools 任务的权限。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "workspaces:*",
                "application-autoscaling:DeleteScalingPolicy",
                "application-autoscaling:DeleteScheduledAction",
                "application-autoscaling:DeregisterScalableTarget",
                "application-autoscaling:DescribeScalableTargets",
                "application-autoscaling:DescribeScalingActivities",
                "application-autoscaling:DescribeScalingPolicies",
                "application-autoscaling:DescribeScheduledActions",
                "application-autoscaling:PutScalingPolicy",
                "application-autoscaling:PutScheduledAction",
                "application-autoscaling:RegisterScalableTarget",
                "cloudwatch:DeleteAlarms",
                "cloudwatch:DescribeAlarms",
                "cloudwatch:PutMetricAlarm",
                "ec2:CreateSecurityGroup",
                "ec2:CreateTags",
                "ec2:DescribeInternetGateways",
                "ec2:DescribeRouteTables",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcs",
                "iam:AttachRolePolicy",
                "iam:CreatePolicy",
                "iam:CreateRole",
                "iam:GetRole",
                "iam:ListRoles",
                "iam:PutRolePolicy",
                "secretsmanager:ListSecrets",
                "tag:GetResources"
            ],
            "Resource": "*"
        },
        {
            "Sid": "iamPassRole",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "workspaces.amazonaws.com"
                }
            }
        },
        {
            "Action": "iam:CreateServiceLinkedRole",
            "Effect": "Allow",
            "Resource": "arn:aws:iam::*:role/aws-service-role/workspaces.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_WorkSpacesPool",
            "Condition": {
                "StringLike": {
                    "iam:AWSServiceName": "workspaces.application-autoscaling.amazonaws.com"
                }
            }
        }
    ]
}
```

------

### 示例 4：为 BYO WorkSpaces L 执行所有任务 WorkSpaces
<a name="perform-byol-workspaces-tasks"></a>

以下政策声明授予 IAM 用户执行所有 WorkSpaces任务的权限，包括创建自带许可证 (BYOL) WorkSpaces 所需的 Amazon EC2 任务。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ds:*",
                "workspaces:*",
                "ec2:AssociateRouteTable",
                "ec2:AttachInternetGateway",
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:CreateInternetGateway",
                "ec2:CreateNetworkInterface",
                "ec2:CreateRoute",
                "ec2:CreateRouteTable",
                "ec2:CreateSecurityGroup",
                "ec2:CreateSubnet",
                "ec2:CreateTags",
                "ec2:CreateVpc",
                "ec2:DeleteNetworkInterface",
                "ec2:DeleteSecurityGroup",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeImages",
                "ec2:DescribeInternetGateways",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeRouteTables",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcs",
                "ec2:ModifyImageAttribute",
                "ec2:RevokeSecurityGroupEgress",
                "ec2:RevokeSecurityGroupIngress",
                "iam:CreateRole",
                "iam:GetRole",
                "iam:PutRolePolicy",
                "kms:ListAliases",
                "kms:ListKeys"
            ],
            "Resource": "*"
        },
        {
            "Sid": "iamPassRole",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "workspaces.amazonaws.com"
                }
            }
        }
    ]
}
```

------

## 在 IAM 策略中指定 WorkSpaces 资源
<a name="wsp_iam_resource"></a>

要在政策声明的`Resource`元素中指定 WorkSpaces 资源，请使用该资源的 Amazon 资源名称 (ARN)。您可以通过允许或拒绝使用您的 IAM 策略声明`Action`元素中指定的 API 操作来控制对 WorkSpaces 资源的访问权限。 WorkSpaces 定义 ARNs 分发包 WorkSpaces、IP 组和目录。

### WorkSpace ARN
<a name="wsp_arn_syntax"></a>

 WorkSpace ARN 的语法如下例所示。

```
arn:aws:workspaces:region:account_id:workspace/workspace_identifier
```

*region*  
所在 WorkSpace 的区域（例如，`us-east-1`）。

*account\$1id*  
 AWS 账户的 ID，不带连字符（例如，`123456789012`）。

*workspace\$1identifier*  
的 ID WorkSpace （例如，`ws-a1bcd2efg`）。

以下是标识特定`Resource`内容的策略声明元素的格式 WorkSpace。

```
"Resource": "arn:aws:workspaces:region:account_id:workspace/workspace_identifier"
```

您可以使用`*`通配符指定 WorkSpaces 属于特定区域中特定账户的所有账户。

### WorkSpace 池 ARN
<a name="wsp_pools_arn_syntax"></a>

 WorkSpace 池 ARN 的语法如下例所示。

```
arn:aws:workspaces:region:account_id:workspacespool/workspacespool_identifier
```

*region*  
所在 WorkSpace 的区域（例如，`us-east-1`）。

*account\$1id*  
 AWS 账户的 ID，不带连字符（例如，`123456789012`）。

*workspacespool\$1identifier*  
 WorkSpace 池的 ID（例如，`ws-a1bcd2efg`）。

以下是标识特定`Resource`内容的策略声明元素的格式 WorkSpace。

```
"Resource": "arn:aws:workspaces:region:account_id:workspacespool/workspacespool_identifier"
```

您可以使用`*`通配符指定 WorkSpaces 属于特定区域中特定账户的所有账户。

### ARN 证书
<a name="wsp_cert_arn_syntax"></a>

 WorkSpace 证书 ARN 的语法如下例所示。

```
arn:aws:workspaces:region:account_id:workspacecertificate/workspacecertificateidentifier
```

*region*  
所在 WorkSpace 的区域（例如，`us-east-1`）。

*account\$1id*  
 AWS 账户的 ID，不带连字符（例如，`123456789012`）。

*workspacecertificate\$1identifier*  
 WorkSpace 证书的 ID（例如，`ws-a1bcd2efg`）。

以下是标识特定 WorkSpace 证书的策略声明`Resource`元素的格式。

```
"Resource": "arn:aws:workspaces:region:account_id:workspacecertificate/workspacecertificate_identifier"
```

您可以使用`*`通配符指定 WorkSpaces 属于特定区域中特定账户的所有账户。

### 映像 ARN
<a name="image_arn_syntax"></a>

 WorkSpace 图片 ARN 的语法如下例所示。

```
arn:aws:workspaces:region:account_id:workspaceimage/image_identifier
```

*region*  
 WorkSpace 图像所在的区域（例如，`us-east-1`）。

*account\$1id*  
 AWS 账户的 ID，不带连字符（例如，`123456789012`）。

*bundle\$1identifier*  
 WorkSpace 图像的 ID（例如，`wsi-a1bcd2efg`）。

以下是用于标识某个特定映像的策略语句的 `Resource` 元素的格式。

```
"Resource": "arn:aws:workspaces:region:account_id:workspaceimage/image_identifier"
```

您可以使用 `*` 通配符来指定属于特定区域中特定账户的所有映像。

### 服务包 ARN
<a name="bundle_arn_syntax"></a>

服务包 ARN 具有以下示例中显示的语法。

```
arn:aws:workspaces:region:account_id:workspacebundle/bundle_identifier
```

*region*  
所在 WorkSpace 的区域（例如，`us-east-1`）。

*account\$1id*  
 AWS 账户的 ID，不带连字符（例如，`123456789012`）。

*bundle\$1identifier*  
 WorkSpace 捆绑包的 ID（例如，`wsb-a1bcd2efg`）。

以下是用于标识某个特定服务包的策略语句的 `Resource` 元素的格式。

```
"Resource": "arn:aws:workspaces:region:account_id:workspacebundle/bundle_identifier"
```

您可以使用 `*` 通配符来指定属于特定区域中特定账户的所有捆绑包。

### IP 组 ARN
<a name="ipgroup_arn_syntax"></a>

IP 组 ARN 具有以下示例中显示的语法。

```
arn:aws:workspaces:region:account_id:workspaceipgroup/ipgroup_identifier
```

*region*  
所在 WorkSpace 的区域（例如，`us-east-1`）。

*account\$1id*  
 AWS 账户的 ID，不带连字符（例如，`123456789012`）。

*ipgroup\$1identifier*  
IP 组的 ID（例如 `wsipg-a1bcd2efg`）。

以下是用于标识某个特定 IP 组的策略语句的 `Resource` 元素的格式。

```
"Resource": "arn:aws:workspaces:region:account_id:workspaceipgroup/ipgroup_identifier"
```

您可以使用 `*` 通配符来指定属于特定区域中特定账户的所有 IP 组。

### 目录 ARN
<a name="directory_arn_syntax"></a>

目录 ARN 具有以下示例中显示的语法。

```
arn:aws:workspaces:region:account_id:directory/directory_identifier
```

*region*  
所在 WorkSpace 的区域（例如，`us-east-1`）。

*account\$1id*  
 AWS 账户的 ID，不带连字符（例如，`123456789012`）。

*directory\$1identifier*  
目录的 ID（例如 `d-12345a67b8`）。

以下是用于标识某个特定目录的策略语句的 `Resource` 元素的格式。

```
"Resource": "arn:aws:workspaces:region:account_id:directory/directory_identifier"
```

您可以使用 `*` 通配符来指定属于特定区域中特定账户的所有目录。

### 连接别名 ARN
<a name="connection_alias_arn_syntax"></a>

连接别名 ARN 具有以下示例中显示的语法。

```
arn:aws:workspaces:region:account_id:connectionalias/connectionalias_identifier
```

*region*  
连接别名所在的区域（例如，`us-east-1`）。

*account\$1id*  
 AWS 账户的 ID，不带连字符（例如，`123456789012`）。

*connectionalias\$1identifier*  
连接别名的 ID（例如，`wsca-12345a67b8`）。

以下是用于标识某个特定连接别名的策略语句的 `Resource` 元素的格式。

```
"Resource": "arn:aws:workspaces:region:account_id:connectionalias/connectionalias_identifier"
```

您可以使用 `*` 通配符来指定属于特定区域中特定账户的所有连接别名。

### 不支持资源级权限的 API 操作
<a name="no-resource-level-permissions"></a>

您不能使用以下 API 操作指定资源 ARN：
+ `AssociateIpGroups`
+ `CreateIpGroup`
+ `CreateTags`
+ `DeleteTags`
+ `DeleteWorkspaceImage`
+ `DescribeAccount`
+ `DescribeAccountModifications`
+ `DescribeIpGroups`
+ `DescribeTags`
+ `DescribeWorkspaceDirectories`
+ `DescribeWorkspaceImages`
+ `DescribeWorkspaces`
+ `DescribeWorkspacesConnectionStatus`
+ `DisassociateIpGroups`
+ `ImportWorkspaceImage`
+ `ListAvailableManagementCidrRanges`
+ `ModifyAccount`

对于不支持资源级权限的 API 操作，必须指定以下示例中显示的资源语句。

```
"Resource": "*"
```

### 不支持对共享资源进行账号级限制的 API 操作
<a name="shared-resource-permissions"></a>

对于以下 API 操作，当资源不归账户所有时，您无法在资源 ARN 中指定账户 ID：
+ `AssociateConnectionAlias`
+ `CopyWorkspaceImage`
+ `DisassociateConnectionAlias`

对于这些 API 操作，只有当该账户拥有要处理的资源时，您才能在资源 ARN 中指定账户 ID。当账户不拥有资源时，您必须为账户 ID 指定 `*`，如以下示例中所示。

```
"arn:aws:workspaces:region:*:resource_type/resource_identifier"
```

## 创建工作空间\$1 角色 DefaultRole
<a name="create-default-role"></a>

在使用 API 注册目录之前，必须验证名为 `workspaces_DefaultRole` 的角色是否存在。此角色由快速设置创建，或者您 WorkSpace 使用启动时创建 AWS 管理控制台，它会向 Amazon 授予代表您访问特定 AWS 资源的 WorkSpaces 权限。如果此角色不存在，您可以使用以下程序创建它。

**创建 workspaces\$1 角色 DefaultRole**

1. 登录 AWS 管理控制台 并打开 IAM 控制台，网址为[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

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

1. 选择**创建角色**。

1. 在**选择受信任实体的类型**下，选择**其他 AWS 账户**。

1. 对于**账户 ID**，请输入没有连字符或空格的账户 ID。

1. 对于**选项**，请勿指定多重验证 (MFA)。

1. 选择**下一步: 权限**。

1. 在**附加权限策略**页面上，选择 AWS 托管策略**AmazonWorkSpacesServiceAccess**AmazonWorkSpacesSelfServiceAccess****、和**AmazonWorkSpacesPoolServiceAccess**。有关这些托管策略的更多信息，请参阅[AWS 的托管策略 WorkSpaces](managed-policies.md)。

1. 在**设置权限边界**下，建议您不要使用权限边界，因为可能会与附加到此角色的策略发生冲突。此类冲突可能会阻止角色的某些必要权限。

1. 选择**下一步：标签**。

1. 在 **Add tags (optional) (添加标签(可选))** 页面上，根据需要添加标签。

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

1. 在**审核**页面上，对于**角色名称**，输入 **workspaces\$1DefaultRole**。

1. （可选）对于**角色描述**，请输入描述。

1. 选择**创建角色**。

1. 在 workspaces\$1 DefaultRole 角色的 “**摘要**” 页面上，选择 “**信任**关系” 选项卡。

1. 在**信任关系**选项卡上，选择**编辑信任关系**。

1. 在**编辑信任关系**页面上，将现有策略语句替换为以下语句。

   ```
   {
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "workspaces.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

1. 选择**更新信任策略**。

## 创建 AmazonWorkSpacesPCAAccess 服务角色
<a name="create-pca-access-role"></a>

在用户使用基于证书的身份验证方式登录之前，您必须先验证名为 `AmazonWorkSpacesPCAAccess` 的角色是否存在。此角色是在您使用对目录启用基于证书的身份验证时创建的 AWS 管理控制台，它授予 Amazon 代表您访问 AWS 私有 CA 资源的 WorkSpaces权限。如果由于您未使用控制台管理基于证书的身份验证而导致此角色不存在，则您可以使用以下步骤创建此角色。

**要创建 AmazonWorkSpacesPCAAccess 服务角色，请使用 AWS CLI**

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

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

****  

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

------

1. 根据需要调整`AmazonWorkSpacesPCAAccess.json`路径并运行以下 AWS CLI 命令来创建服务角色并附加[AmazonWorkspacesPCAAccess](managed-policies.md#workspaces-pca-access)托管策略。

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

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

# AWS 的托管策略 WorkSpaces
<a name="managed-policies"></a>

与自己编写策略相比，使用 AWS 托管策略可以更轻松地向用户、群组和角色添加权限。创建仅为团队提供所需权限的 [IAM 客户托管策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)需要时间和专业知识。使用 AWS 托管策略快速入门。这些政策涵盖常见用例，可在您的 AWS 账户中使用。有关 AWS 托管策略的更多信息，请参阅 *IAM 用户指南*中的[AWS 托管策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。

AWS 服务维护和更新 AWS 托管策略。您无法更改 AWS 托管策略中的权限。服务偶尔可能会向 AWS 托管策略添加其他权限以支持新功能。此类更新会影响附加策略的所有身份（用户、组和角色）。当推出新功能或有新操作可用时，服务最有可能更新 AWS 托管策略。服务不会从 AWS 托管策略中移除权限，因此策略更新不会破坏您的现有权限。

此外，还 AWS 支持跨多个服务的工作职能的托管策略。例如，`ReadOnlyAccess` AWS 托管策略提供对所有 AWS 服务和资源的只读访问权限。当服务启动新特征时， AWS 会为新操作和资源添加只读权限。有关工作职能策略的列表和说明，请参阅 *IAM 用户指南*中的[适用于工作职能的AWS 托管式策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)。

## AWS 托管策略： AmazonWorkSpacesAdmin
<a name="workspaces-admin"></a>

**注意**  
列出的权限仅适用于 SDK，不适用于控制台。控制台需要 [Amazon WorkSpaces 控制台操作权限参考中列出的其他权限](wsp-console-permissions-ref.md)。

该政策允许访问Amazon的 WorkSpaces 管理操作。它提供以下权限：
+ `workspaces`-允许访问对 WorkSpaces 个人资源和资源 WorkSpaces 池资源执行管理操作。
+ `kms` - 允许访问列出和描述 KMS 密钥以及列出别名。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AmazonWorkSpacesAdmin",
            "Effect": "Allow",
            "Action": [
                "kms:DescribeKey",
                "kms:ListAliases",
                "kms:ListKeys",
                "workspaces:CreateTags",
                "workspaces:CreateWorkspaceImage",
                "workspaces:CreateWorkspaces",
                "workspaces:CreateWorkspacesPool",
                "workspaces:CreateStandbyWorkspaces",
                "workspaces:DeleteTags",
                "workspaces:DeregisterWorkspaceDirectory",
                "workspaces:DescribeTags",
                "workspaces:DescribeWorkspaceBundles",
                "workspaces:DescribeWorkspaceDirectories",
                "workspaces:DescribeWorkspaces",
                "workspaces:DescribeWorkspacesPools",
                "workspaces:DescribeWorkspacesPoolSessions",
                "workspaces:DescribeWorkspacesConnectionStatus",
                "workspaces:ModifyCertificateBasedAuthProperties",
                "workspaces:ModifySamlProperties",
                "workspaces:ModifyStreamingProperties",
                "workspaces:ModifyWorkspaceCreationProperties",
                "workspaces:ModifyWorkspaceProperties",
                "workspaces:RebootWorkspaces",
                "workspaces:RebuildWorkspaces",
                "workspaces:RegisterWorkspaceDirectory",
                "workspaces:RestoreWorkspace",
                "workspaces:StartWorkspaces",
                "workspaces:StartWorkspacesPool",
                "workspaces:StopWorkspaces",
                "workspaces:StopWorkspacesPool",
                "workspaces:TerminateWorkspaces",
                "workspaces:TerminateWorkspacesPool",
                "workspaces:TerminateWorkspacesPoolSession",
                "workspaces:UpdateWorkspacesPool"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## AWS 托管策略： AmazonWorkspacesPCAAccess
<a name="workspaces-pca-access"></a>

此托管策略允许访问您 AWS 账户中的 Certifice Manager 私有证书颁发机构（私有 CA）资源，以进行基于证书的身份验证。 AWS 它包含在 AmazonWorkSpacesPCAAccess 角色中，并提供以下权限：
+ `acm-pca`-允许访问 AWS 私有 CA 以管理基于证书的身份验证。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "acm-pca:IssueCertificate",
                "acm-pca:GetCertificate",
                "acm-pca:DescribeCertificateAuthority"
            ],
            "Resource": "arn:*:acm-pca:*:*:*",
            "Condition": {
                "StringLike": {
                    "aws:ResourceTag/euc-private-ca": "*"
                }
            }
        }
    ]
}
```

------

## AWS 托管策略： AmazonWorkSpacesSelfServiceAccess
<a name="workspaces-self-service-access"></a>

该政策允许用户访问 Amazon WorkSpaces 服务，以执行由用户发起的 WorkSpaces 自助操作。它包含在 `workspaces_DefaultRole` 角色中，它提供以下权限：
+ `workspaces`-允许用户访问自助 WorkSpaces 管理功能。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "workspaces:RebootWorkspaces",
                "workspaces:RebuildWorkspaces",
                "workspaces:ModifyWorkspaceProperties"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
```

------

## AWS 托管策略： AmazonWorkSpacesServiceAccess
<a name="workspaces-service-access"></a>

本政策允许客户账户访问亚马逊 WorkSpaces 服务，以启动 WorkSpace。它包含在 `workspaces_DefaultRole` 角色中，它提供以下权限：
+ `ec2`-允许访问管理与关联的 Amazon EC2 资源 WorkSpace，例如网络接口。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "ec2:CreateNetworkInterface",
                "ec2:DeleteNetworkInterface",
                "ec2:DescribeNetworkInterfaces"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}
```

------

## AWS 托管策略： AmazonWorkSpacesPoolServiceAccess
<a name="workspaces-pools-service-access"></a>

此策略用于 workspaces\$1DefaultRole，它 WorkSpaces 用于访问客户 AWS 账户中必需的 Pools 资源。 WorkSpaces 有关更多信息，请参阅 [创建工作空间\$1 角色 DefaultRole](workspaces-access-control.md#create-default-role)。它提供以下权限：
+ `ec2`-允许访问管理与 WorkSpaces 池关联的 Amazon EC2 资源 VPCs，例如子网、可用区、安全组和路由表。
+ `s3` - 允许访问权限以对日志、应用程序设置和主文件夹功能所需的 Amazon S3 存储桶执行操作。

------
#### [ Commercial AWS 区域 ]

以下政策 JSON 适用于广告 AWS 区域。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ProvisioningWorkSpacesPoolPermissions",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeVpcs",
                "ec2:DescribeSubnets",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeRouteTables",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "WorkSpacesPoolS3Permissions",
            "Effect": "Allow",
            "Action": [
                "s3:CreateBucket",
                "s3:ListBucket",
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject",
                "s3:GetObjectVersion",
                "s3:DeleteObjectVersion",
                "s3:GetBucketPolicy",
                "s3:PutBucketPolicy",
                "s3:PutEncryptionConfiguration"
            ],
            "Resource": [
                "arn:aws:s3:::wspool-logs-*",
                "arn:aws:s3:::wspool-app-settings-*",
                "arn:aws:s3:::wspool-home-folder-*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        }
    ]
}
```

------

------
#### [ AWS GovCloud (US) Regions ]

以下策略 JSON 适用于商业 AWS GovCloud (US) Regions。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ProvisioningWorkSpacesPoolPermissions",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeVpcs",
                "ec2:DescribeSubnets",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeRouteTables",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "WorkSpacesPoolS3Permissions",
            "Effect": "Allow",
            "Action": [
                "s3:CreateBucket",
                "s3:ListBucket",
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject",
                "s3:GetObjectVersion",
                "s3:DeleteObjectVersion",
                "s3:GetBucketPolicy",
                "s3:PutBucketPolicy",
                "s3:PutEncryptionConfiguration"
            ],
            "Resource": [
                "arn:aws-us-gov:s3:::wspool-logs-*",
                "arn:aws-us-gov:s3:::wspool-app-settings-*",
                "arn:aws-us-gov:s3:::wspool-home-folder-*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        }
    ]
}
```

------

------

## WorkSpaces AWS 托管策略的更新
<a name="updates-managed-policies"></a>

查看 WorkSpaces 自该服务开始跟踪这些更改以来 AWS 托管策略更新的详细信息。


| 更改 | 描述 | 日期 | 
| --- | --- | --- | 
| [AWS 托管策略： AmazonWorkSpacesPoolServiceAccess](#workspaces-pools-service-access) - 添加了新策略 | WorkSpaces 添加了一个新的托管策略，用于授予查看 Amazon EC2 VPCs 和相关资源以及查看和管理 Amazon S3 存储 WorkSpaces 池存储桶的权限。 | 2024 年 6 月 24 日 | 
| [AWS 托管策略： AmazonWorkSpacesAdmin](#workspaces-admin)：更新策略 | WorkSpaces 在 Amazon WorkSpacesAdmin 托管策略中为 WorkSpaces 池添加了多项操作，授予管理员管理 WorkSpace 池资源的权限。 | 2024 年 6 月 24 日 | 
| [AWS 托管策略： AmazonWorkSpacesAdmin](#workspaces-admin)：更新策略 | WorkSpaces 将workspaces:RestoreWorkspace操作添加到 Amazon WorkSpacesAdmin 托管策略中，授予管理员恢复 WorkSpaces权限。 | 2023 年 6 月 25 日 | 
| [AWS 托管策略： AmazonWorkspacesPCAAccess](#workspaces-pca-access) - 添加了新策略 | WorkSpaces 添加了一个新的托管策略，用于授予管理 AWS 私有 CA 以管理基于证书的身份验证的acm-pca权限。 | 2022 年 11 月 18 日 | 
| WorkSpaces 已开始跟踪更改 | WorkSpaces 开始跟踪其 WorkSpaces 托管策略的更改。 | 2021 年 3 月 1 日 | 

# 对流媒体实例的访问权限 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)
+ [配置现有 IAM 角色以用于 WorkSpaces 流式处理实例](#configuring-existing-iam-role-to-use-with-streaming-instances)
+ [如何创建用于 WorkSpaces 流媒体实例的 IAM 角色](#how-to-create-iam-role-to-use-with-streaming-instances)
+ [如何将 IAM 角色用于 WorkSpaces 流式处理实例](#how-to-use-iam-role-with-streaming-instances)

## 将 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 角色 WorkSpaces 必须满足以下先决条件：
+ IAM 角色必须与 WorkSpaces 流媒体实例位于同一个亚马逊 Web Services 账户中。
+ IAM 角色不能是服务角色。
+ 附加到 IAM 角色的信任关系策略必须将 WorkSpaces 服务作为委托人。*委托*人是AWS可以执行操作和访问资源的实体。该策略还必须包括 `sts:AssumeRole` 操作。此策略配置定义 WorkSpaces 为可信实体。

  
+ 如果您要将 IAM 角色应用于 WorkSpaces，则 WorkSpaces 必须运行在 2019 年 9 月 3 日当天或之后发布的 WorkSpaces 代理版本。如果您要将 IAM 角色应用于 WorkSpaces，则 WorkSpaces 必须使用使用在同一日期或之后发布的代理版本的映像。

**使 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. 在**策略文档**下，验证信任关系策略是否包含 `workspaces.amazonaws.com` 服务主体的 `sts:AssumeRole` 操作：

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": [
             "workspaces.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 角色以便您可以将其用于 WorkSpaces

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 角色后，您可以在启动 WorkSpaces 时将其应用于该角色 WorkSpaces。您也可以将 IAM 角色应用于现有角色 WorkSpaces。

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

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

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

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

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

```
aws ec2 describe-instances --region us-east-1 --profile workspaces_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 workspaces_machine_role
```

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

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

# Amazon WorkSpaces 控制台操作权限参考
<a name="wsp-console-permissions-ref"></a>

某些 Amazon WorkSpaces API 只能通过 AWS 管理控制台进行调用。它们不是公共 API，无法以编程方式调用，也未由任何 SDK 提供。这些 API 操作包括：
+ workspaces:DirectoryAccessManagement
+ workspaces:CreateRootClientCertificate
+ workspaces:UpdateRootClientCertificate
+ workspaces:DeleteRootClientCertificate
+ workspaces:DescribeConsent
+ workspaces:UpdateConsent

## WorkSpaces 控制台操作和必需的操作权限
<a name="wsp-console-operations"></a>

控制台使用额外 API 操作实现其功能，因此 WorkSpaces 公共 API 可能没有足够的权限。例如，有权通过 CLI/SDK 使用 [CreateWorkspaces](https://docs.aws.amazon.com/workspaces/latest/api/API_CreateWorkspaces.html) API 的用户在尝试在控制台上创建 WorkSpace 时可能会遇到错误，因为他们缺少选择或创建用户的某些权限。下表列出了仅在 WorkSpaces 控制台上可用的功能，以及允许用户使用控制台的这些特定部分所需的额外权限。

[策略示例](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspaces-access-control.html#workspaces-example-iam-policies)部分提供了对 Personal、Pools 和 BYOL WorkSpaces 执行所有 WorkSpaces 任务所需的权限列表。

或者，您也可以使用精细许可，应用最低权限许可来执行某项任务。

下表列出了依赖于 SDK 未提供的 API 的 WorkSpaces 控制台功能，以及允许用户使用控制台的这些特定部分所需的权限。这些是除了 SDK 提供的 API 所需的其他操作外还应添加的权限。


| WorkSpaces 控制台操作 | 所需的权限 | 
| --- | --- | 
|  [WorkSpaces 个人版快速设置](https://docs.aws.amazon.com/workspaces/latest/adminguide/managing-wsp-personal.html#getting-started)  |  workspaces:DirectoryAccessManagement ds:\$1 ec2:CreateVpc ec2:CreateSubnet ec2:CreateNetworkInterface ec2:CreateInternetGateway ec2:CreateRouteTable ec2:CreateRoute ec2:CreateTags ec2:CreateSecurityGroup ec2:DescribeInternetGateways ec2:DescribeSecurityGroups ec2:DescribeRouteTables ec2:DescribeVpcs ec2:DescribeSubnets ec2:DescribeNetworkInterfaces ec2:DescribeAvailabilityZones ec2:AttachInternetGateway ec2:AssociateRouteTable ec2:AuthorizeSecurityGroupIngress ec2:AuthorizeSecurityGroupEgress iam:CreateRole iam:GetRole iam:PutRolePolicy workspaces:DescribeAccount workspaces:DescribeWorkspaceDirectories workspaces:CreateWorkspaces workspaces:DescribeWorkspaces workspaces:RegisterWorkspaceDirectory workspaces:DescribeWorkspaceBundles workspaces:DescribeWorkspaces  | 
|  [将 WorkSpaces 个人版访问限定于受信任设备](https://docs.aws.amazon.com/workspaces/latest/adminguide/trusted-devices.html#configure-restriction)  |  workspaces:CreateRootClientCertificate workspaces:UpdateRootClientCertificate workspaces:DeleteRootClientCertificate ds:DescribeDirectories ec2:DescribeSubnets ec2:DescribeSecurityGroups workspaces:DescribeAccount workspaces:DescribeWorkspaceDirectories workspaces:DescribeTags workspaces:DescribeClientProperties workspaces:DescribeConnectClientAddins workspaces:DirectoryAccessManagement  | 
|  [在 WorkSpaces Personal 控制台中创建 WorkSpace](https://docs.aws.amazon.com/workspaces/latest/adminguide/create-workspaces-personal.html) – create/search/describe 目录服务目录用户  |  workspaces:DirectoryAccessManagement workspaces:DescribeAccount workspaces:CreateWorkspaces workspaces:DescribeWorkspaces workspaces:DescribeWorkspaceDirectories workspaces:DescribeWorkspaceBundles workspaces:DescribeTags workspaces:CreateTags workspaces:DescribeClientProperties kms:ListKeys kms:ListAliases kms:DescribeKey ds:DescribeTrusts ds:DescribeDirectories ec2:DescribeSubnets ec2:DescribeSecurityGroups  | 
|  [在 WorkSpaces Personal 中管理用户](https://docs.aws.amazon.com/workspaces/latest/adminguide/manage-workspaces-users.html) – 编辑用户并向用户发送邀请电子邮件  |  workspaces:DirectoryAccessManagement workspaces:DescribeAccount workspaces:DescribeWorkspaceDirectories workspaces:DescribeWorkspaces workspaces:DescribeTags workspaces:DescribeWorkspaceBundles workspaces:DescribeWorkspacesConnectionStatus workspaces:DescribeWorkspaceAssociations workspaces:DescribeWorkspaceSnapshots workspaces:DescribeWorkspaceImages workspaces:DescribeConnectionAliases  | 
|  [更新 WorkSpaces 个人版的 AD Connector 账户（AD Connector](https://docs.aws.amazon.com/workspaces/latest/adminguide/connect-account.html)  |  workspaces:DirectoryAccessManagement ds:DescribeDirectories ds:UpdateDirectory ec2:DescribeSubnets ec2:DescribeSecurityGroups workspaces:DescribeAccount workspaces:DescribeWorkspaceDirectories workspaces:DescribeTags workspaces:DescribeClientProperties workspaces:DescribeConnectClientAddins  | 
|  [为 WorkSpaces 个人版选择组织部门](https://docs.aws.amazon.com/workspaces/latest/adminguide/select-ou.html)  |  workspaces:DirectoryAccessManagement ds:DescribeDirectories ec2:DescribeSubnets ec2:DescribeSecurityGroups workspaces:DescribeAccount workspaces:DescribeWorkspaceDirectories workspaces:DescribeTags workspaces:DescribeClientProperties workspaces:DescribeConnectClientAddins workspaces:ModifyWorkspaceCreationProperties  | 
|  [启用 BYOL 账户](https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html) – 确认了解使用 BYOL WorkSpaces 的要求  |  workspaces:DescribeConsent workspaces:UpdateConsent workspaces:DescribeAccount workspaces:ListAccountLinks workspaces:DescribeWorkspaceBundles workspaces:DescribeWorkspaceImages workspaces:DescribeWorkspaceDirectories  | 

# Amazon WorkSpaces 的合规性验证
<a name="compliance-validation"></a>

作为多项 AWS 合规性计划的一部分，第三方审计员将评估 Amazon WorkSpaces 的安全性和合规性。其中包括 SOC、PCI、FedRAMP、HIPAA 及其他。

有关特定合规性计划范围内的 AWS 服务列表，请参阅[合规性计划范围内的 AWS 服务](https://aws.amazon.com/compliance/services-in-scope/)。有关常规信息，请参阅[AWS合规性计划](https://aws.amazon.com/compliance/programs/)。

您可以使用 AWS Artifact 下载第三方审计报告。有关更多信息，请参阅[在 AWS Artifact 中下载报告](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html)、。

有关 WorkSpaces 和 FedRAMP 文件的更多信息，请参阅[为个人配置 FedRAMP 授权或国防部 SRG 合规性 WorkSpaces](fips-encryption.md)。

您使用 WorkSpaces 的合规性责任取决于您数据的敏感度、您公司的合规性目标以及适用的法律法规。AWS 提供以下资源来帮助满足合规性：
+ [安全性与合规性快速入门指南](https://aws.amazon.com/quickstart/?awsf.quickstart-homepage-filter=categories%23security-identity-compliance) - 这些部署指南讨论了架构注意事项，并提供了在AWS上部署基于安全性和合规性的基准环境的步骤。
+ [Amazon Web Services 上的 HIPAA 安全性和合规性架构设计](https://docs.aws.amazon.com/pdfs/whitepapers/latest/architecting-hipaa-security-and-compliance-on-aws/architecting-hipaa-security-and-compliance-on-aws.pdf)– 此白皮书介绍了公司如何使用 AWS 创建符合 HIPAA 标准的应用程序。
+ [AWS合规性资源](https://aws.amazon.com/compliance/resources/) – 此业务手册和指南集合可能适用于您的行业和位置。
+ 《AWS Config 开发人员指南》**中的[使用规则评估资源](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) – AWS Config；评测您的资源配置对内部实践、行业指南和法规的遵循情况。
+ [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html) – 此AWS服务提供了AWS中安全状态的全面视图，可帮助您检查是否符合安全行业标准和最佳实操。

# Amazon WorkSpaces 中的故障恢复能力
<a name="disaster-recovery-resiliency"></a>

AWS 全球基础设施围绕 AWS 区域和可用区构建。区域提供多个在物理上独立且隔离的可用区，这些可用区通过延迟低、吞吐量高且冗余性高的网络连接在一起。利用可用区，您可以设计和操作在可用区之间无中断地自动实现故障转移的应用程序和数据库。与传统的单个或多个数据中心基础设施相比，可用区具有更高的可用性、容错能力和可扩展性。

有关 AWS 区域和可用区的更多信息，请参阅 [AWS全球基础设施](https://aws.amazon.com/about-aws/global-infrastructure/)。

Amazon WorkSpaces 还提供跨区域重定向，该功能可与域名系统 (DNS) 故障转移路由策略配合使用，以便在 WorkSpaces 用户的主 WorkSpaces 不可用时将其重定向到其他 AWS 区域的备用 WorkSpaces。有关更多信息，请参阅 [个人版跨区域重定向 WorkSpaces](cross-region-redirection.md)。

# Amazon 的基础设施安全 WorkSpaces
<a name="infrastructure-security"></a>

作为一项托管服务，Amazon WorkSpaces 受到 AWS 全球网络安全的保护。有关 AWS 安全服务以及如何 AWS 保护基础设施的信息，请参阅[AWS 云安全](https://aws.amazon.com/security/)。要使用基础设施安全的最佳实践来设计您的 AWS 环境，请参阅 S * AWS ecurity Pillar Well-Architected Fram* ework 中的[基础设施保护](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html)。

您可以使用 AWS 已发布的 API 调用 WorkSpaces 通过网络进行访问。客户端必须支持以下内容：
+ 传输层安全性协议（TLS）。我们要求使用 TLS 1.2，建议使用 TLS 1.3。
+ 具有完全向前保密（PFS）的密码套件，例如 DHE（临时 Diffie-Hellman）或 ECDHE（临时椭圆曲线 Diffie-Hellman）。大多数现代系统（如 Java 7 及更高版本）都支持这些模式。

**Topics**
+ [网络隔离](network-isolation.md)
+ [物理主机上的隔离](physical-isolation.md)
+ [凭据保护/基于虚拟化的安全 (VBS)](credential-guard-vbs.md)
+ [企业用户授权](authorization.md)
+ [创建接口 VPC 端点并进行流式传输](creating-streaming-vpc-endpoints.md)
+ [通过 VPC WorkSpaces 接口终端节点发出 Amazon API 请求](interface-vpc-endpoint.md)
+ [为 Amazon WorkSpaces 创建 VPC 端点策略](api-private-link-policy.md)
+ [将您的专用网络连接到 VPC](notebook-private-link-vpn.md)

# 网络隔离
<a name="network-isolation"></a>

虚拟私有云（VPC）是 AWS 云内您自己的逻辑隔离区域中的虚拟网络。您可以在 VPC 的私有子网中部署您的 WorkSpaces。有关更多信息，请参阅 [为 WorkSpaces 个人配置 VPC](amazon-workspaces-vpc.md)。

要仅允许来自特定地址范围（例如，来自您的企业网络）的流量，请更新 VPC 的安全组或使用 [IP 访问控制组](amazon-workspaces-ip-access-control-groups.md)。

您可以使用有效证书将 WorkSpace 访问限制为受信任的设备。有关更多信息，请参阅 [将 WorkSpaces 个人版访问限定于受信任设备](trusted-devices.md)。

# 物理主机上的隔离
<a name="physical-isolation"></a>

同一物理主机上的不同 WorkSpace 通过管理程序彼此隔离。这就好像它们位于单独的物理主机上。删除 WorkSpace 后，管理程序会在分配给新 WorkSpace 之前清理分配给它的内存（设置为零）。

# 凭据保护/基于虚拟化的安全 (VBS)
<a name="credential-guard-vbs"></a>

Windows WorkSpaces 可以利用凭据保护和基于虚拟化的安全 (VBS) 来提供基于硬件的隔离，并保护操作系统内的凭据。您可以通过组策略设置禁用 Credential Guard 或 VBS。

**重要**  
禁用 VBS 会降低 Windows WorkSpace 的安全状况。只有在特定性能或兼容性需要时才禁用 VBS。

**禁用 VBS 的安全影响**
+ **降低内核级保护**-操作系统内核变得更容易受到恶意代码的攻击。
+ **凭据被盗风险增加** — 攻击者可以更轻松地从 lsass.exe 进程中提取凭证。
+ **禁用代码完整性检查**-虚拟机管理程序强制代码完整性 (HVCI) 无法运行，允许未签名的驱动程序在内核模式下运行。
+ **漏洞利用的漏洞增加** — 系统变得更容易受到攻击，从而导致整个系统受损。
+ **丢失高级安全功能** — Windows Defender 凭据保护和系统防护等功能无法按预期运行。

# 企业用户授权
<a name="authorization"></a>

借助 WorkSpaces，可通过 Directory Service 管理目录。您可以为用户创建独立的托管目录。或者与现有 Active Directory 环境集成，这样用户就能使用他们当前的凭证无缝访问企业资源。有关更多信息，请参阅 [管理 WorkSpaces 个人版的目录](manage-workspaces-directory.md)。

要进一步控制对 WorkSpaces 的访问，请使用多重身份验证。有关更多信息，请参阅[如何为 AWS 服务启用多重身份验证](https://aws.amazon.com/blogs/security/how-to-enable-multi-factor-authentication-for-amazon-workspaces-and-amazon-quicksight-by-using-microsoft-ad-and-on-premises-credentials/)。

# 创建接口 VPC 端点并进行流式传输
<a name="creating-streaming-vpc-endpoints"></a>

Virtual Private Cloud (VPC) 是 Amazon Web Services Cloud 内您自己的逻辑隔离区域中的虚拟网络。如果您使用 Amazon Virtual Private Cloud 托管AWS资源，则可以在您的 VPC 和之间建立私有连接 WorkSpaces。您可以使用此连接实现 WorkSpaces 与您的 VPC 上的资源进行通信，而无需通过公共互联网。

接口终端节点由一项技术提供支持 AWSPrivateLink，该技术允许您使用私有 IP 地址将流式传输流量保持在您指定的 VPC 内。当您将带有 Di AWS rect Connect 或AWS虚拟专用网络隧道的 VPC 使用时，您可以将流式传输流量保留在您的网络中。

您可以使用AWS账户中的 VPC 终端节点来限制您的 Amazon VPC 之间和 WorkSpaces AWS网络之间的所有流式传输流量。创建终端节点后，请配置您的 WorkSpaces 目录以使用该终端节点。

## 先决条件和限制
<a name="vpc-prerequisites"></a>

在为设置 VPC 终端节点之前 WorkSpaces，请注意以下先决条件和限制。
+ 该功能目前支持 IPv4 或 IPv6 DNS 记录 IP 类型。不支持双堆栈 DNS 记录 IP 类型。
+ 您只能配置与您的目录相同AWS 账户的 VPC 终端节点。不支持其他AWS 账户中的 VPC 终端节点，包括共享终端节点 VPCs。
+ 该功能目前仅支持为 VPC 端点配置私有 DNS 名称。VPC 端点的私有 DNS 名称不可公开解析。
+ 该功能目前仅适用于 WorkSpaces 个人。 WorkSpaces 池不支持 VPC 终端节点进行流式传输。
+ VPC 终端节点功能仅适用于 WorkSpaces 使用 Amazon DCV。当您为目录配置 VPC 端点时，用户无法通过互联网从 Amazon DCV 进行流式传输。但是，在配置 VPC 终端节点期间，您可以为同一目录 WorkSpaces 中的 PCo IP 启用互联网流式传输。
+ 要维护 VPC 内的流式传输流量，请使用流式传输 VPC 端点。您的 WorkSpaces 客户需要互联网连接才能进行用户身份验证。在端口 443（包括 UDP 和 TCP）上启用出站访问以处理身份验证流量。此外，您必须根据所选的身份验证方法将所需的域和 IP 地址添加到允许列表中。有关每个类别的域的完整列表，请参阅[要添加到允许列表的域和 IP 地址](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspaces-port-requirements.html#whitelisted_ports)。
  + 验证码
  + 目录设置
  + 会话前智能卡身份验证端点（如果您使用智能卡）
  + 用户登录页面
  + WS 代理
  + WorkSpaces SAML 单点登录 (SSO) 的终端节点
+ 用户设备所连接的网络必须能够将流量路由到 VPC 端点。
+ 您 AWS 账户中的 IAM 用户或 IAM 角色必须具有 IAM 权限策略，才能执行 `ec2:DescribeVpcEndpoints` API 操作。
+ WorkSpaces 流式传输 VPC 终端节点目前不支持 FIPS 加密。如果您已经为目录启用了 FIPS 加密，则需要在配置 VPC 端点之前禁用 FIPS 加密。
+ AWS通过 VPC 终端节点进行流式传输时，全球加速器 (AGA) 集成不可用。
+ 为目录配置 VPC 端点后，为该目录指定的 IP 访问控制组将不再适用。

## 设置用于 WorkSpaces 流式传输的 VPC 终端节点
<a name="setting-up-vpc-endpoint"></a>

要设置用于 WorkSpaces 流式传输的 VPC 终端节点，请完成以下步骤：

### 步骤 1：创建安全组
<a name="create-security-group"></a>

在此步骤中，您将创建一个安全组，允许 WorkSpaces 客户端与您将要创建的 VPC 终端节点进行通信。

1. 在 Amazon EC2 控制台的导航窗格中，前往 “**网络和安全**”，然后转到 “**安全组**”。

1. 选择**创建安全组**。

1. 在**基本详细信息**下，输入以下信息：
   + 对于**安全组名称**，输入标识安全组的唯一名称。
   + 对于**描述**，输入一些描述安全组用途的文本。
   + 对于 **VPC**，选择 VPC 端点所在的 VPC。

1. 转至**入站规则**并选择**添加规则**，为 TCP 流量创建入站规则。

1. 输入以下信息：
   + 对于**类型**，选择“自定义 TCP”。
   + 对于**端口范围**，输入以下端口号：`443`、`4195`。
   + 对于**源类型**，选择“自定义”。
   + 对于**源** — 输入您的用户连接到 VPC 终端节点 IDs 的私有 IP CIDR 范围或其他安全组。确保允许来自 IPv4 或 IPv6 地址源的入站流量。

1. 对每个 CIDR 范围或安全组重复步骤 4 和 5。

1. 转至**入站规则**，选择**添加规则**，为 UDP 流量创建入站规则。

1. 输入以下信息：
   + 对于**类型**，选择**自定义 UDP**。
   + 对于**端口范围**，输入以下端口号：443、4195。
   + 对于**源类型**，选择**自定义**。
   + 对于**来源** — 输入在步骤 5 中 IDs 输入的相同私有 IP CIDR 范围或安全组。确保允许来自 IPv4 或 IPv6 地址源的入站流量。

1. 对每个 CIDR 范围或安全组重复步骤 7 和 8。

1. 选择**创建安全组**。

### 步骤 2：创建 VPC 端点
<a name="create-vpc-endpoint"></a>

在 Amazon VPC 中，VPC 终端节点允许您将自己的 VPC 连接到支持的AWS服务。在此示例中，您将配置 Amazon VPC，以便您的 WorkSpaces 用户可以从中进行流式传输 WorkSpaces。

1. 打开 [Amazon VPC 控制台](https://console.aws.amazon.com/vpc/)。

1. 在导航窗格中，依次选择**端点**、**创建端点**。

1. 选择**创建端点**。

1. 确保进行以下配置：
   + 对于**服务类别**，确保选中 **AWS 服务**。
   + **服务名称** — 选择 **com.amazonaws。 *Region*. Highlander。**
   + 对于 **VPC**，选择要在其中创建接口端点的 VPC。只要网络将流量路由到 VPC 终端节点，您就可以选择与具有 WorkSpaces 资源的 VPC 不同的 VPC。
   + 对于**启用私有 DNS 名称**，确保选中该复选框。如果您的用户使用网络代理访问流式实例，请禁用与私有端点相关联的域和 DNS 名称上的任何代理缓存。应允许通过代理使用 VPC 端点 DNS 名称。要成功解析 DNS 名称，必须使用 VPC 内的私有 DNS 服务器，这是因为公有 DNS 服务器无法解析 VPC 端点 DNS 名称。
   + **DNS 记录 IP 类型**-选择 IPv4 或 IPv6。目前不支持双堆栈 DNS 记录 IP 类型。如果您选择 Dualstack，您将无法 WorkSpaces 使用 VPC 终端节点进行流式传输。
   + 对于**子网**，选择要创建 VPC 端点的子网（可用区）。建议您至少选择两个子网。
   + **IP 地址类型** — 根据您选择 IPv4的子网支持的内容选择 IPv6 或 Dualstack。
   + 在**安全组面板**中，选择以前创建的安全组。

1. （可选）在**标签**面板中，可以创建一个或多个标签。

1. 选择**创建端点**。

在端点可供使用时，**状态**列中的值将变为**可用**。

### 步骤 3：配置 WorkSpaces 目录以使用 VPC 终端节点
<a name="configure-directory-vpc-endpoint"></a>

您需要将 WorkSpaces 目录配置为使用您为流媒体创建的 VPC 终端节点。

1. 在与 VPC 终端节点相同的AWS区域中打开[WorkSpaces 控制台](https://console.aws.amazon.com/workspaces/v2/home)。

1. 在**导航**窗格中，选择**目录**，然后

1. 选择您要使用的目录。

1. 转至 **VPC 端点**部分，然后选择**编辑**。

1. 在**编辑 VPC 端点**对话框的**流式传输端点**下，选择您创建的 VPC 端点。

1. 或者，您可以启用 “**允许拥有 PCo IP 的用户从互联网 WorkSpaces 进行直播”**。
**注意**  
启用后，您的用户就可以 WorkSpaces 通过公共互联网从他们 PCo的 IP 进行流式传输。否则，由 WorkSpaces 于 PCo IP 不支持 VPC 终端节点进行流式传输，因此目录中的 PCo IP WorkSpaces 将变得无法访问。

1. 选择**保存**。

新的流式传输会话的流量都将路由通过此 VPC 端点。但是，当前流式传输会话的流量将继续通过先前指定的端点进行路由。

**注意**  
指定了 VPC 终端节点后，拥有 DCV 的用户 WorkSpaces 无法使用公共互联网进行直播。

# 通过 VPC WorkSpaces 接口终端节点发出 Amazon API 请求
<a name="interface-vpc-endpoint"></a>

您可以通过虚拟私有云 (VPC) 中的[接口终端节点](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpce-interface.html)直接连接到 Amazon WorkSpaces API 终端节点，而不必通过互联网进行连接。当您使用 VPC 接口终端节点时，您的 VPC 和 Amazon WorkSpaces API 终端节点之间的通信将在 AWS 网络内完全安全地进行。

**注意**  
此功能只能用于连接 WorkSpaces API 端点。要 WorkSpaces 使用 WorkSpaces 客户端进行连接，需要互联网连接，如中所述[WorkSpaces 个人的 IP 地址和端口要求](workspaces-port-requirements.md)。

亚马逊 WorkSpaces API 终端节点支持由提供支持的[亚马逊虚拟私有云](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Introduction.html)（亚马逊 VPC）接口终端节点[AWS PrivateLink](https://aws.amazon.com/privatelink/)。每个 VPC 终端节点都由一个或多个[网络接口](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html)（也称为弹性网络接口或 ENIs）表示，其私有 IP 地址位于您的 VPC 子网中。

VPC 接口终端节点将您的 VPC 直接连接到 Amazon WorkSpaces API 终端节点，无需互联网网关、NAT 设备、VPN Direct Connect 连接或连接。您的 VPC 中的实例不需要公有 IP 地址即可与 Amazon WorkSpaces API 终端节点通信。

您可以使用 AWS 管理控制台 或 AWS Command Line Interface (AWS CLI) 命令创建连接到 Amazon WorkSpaces 的接口终端节点。有关说明，请参阅[创建接口端点](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpce-interface.html#create-interface-endpoint)。

*创建 VPC 终端节点后*，您可以使用以下示例 CLI 命令，这些命令使用`endpoint-url`参数指定 Amazon WorkSpaces API 终端节点的接口终端节点：

```
aws workspaces copy-workspace-image --endpoint-url VPC_Endpoint_ID.workspaces.Region.vpce.amazonaws.com

aws workspaces delete-workspace-image --endpoint-url VPC_Endpoint_ID.api.workspaces.Region.vpce.amazonaws.com

aws workspaces describe-workspace-bundles --endpoint-url VPC_Endpoint_ID.workspaces.Region.vpce.amazonaws.com  \
   --endpoint-name Endpoint_Name \
   --body "Endpoint_Body" \
   --content-type "Content_Type" \
       Output_File
```

如果为 VPC 端点启用专用 DNS 主机名，您不需要指定端点 URL。CLI 和亚马逊 SD WorkSpaces K 默认使用的亚马逊 WorkSpaces API DNS 主机名 (https://api.workspaces。 *Region*.amazonaws.com) 解析到您的 VPC 终端节点。

Amazon WorkSpaces API 终端节点在同时提供亚马逊 VP [C 和[亚马逊 WorkSpaces](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services)的所有 AWS 区域都支持 VPC](https://docs.aws.amazon.com/general/latest/gr/rande.html#vpc_region) 终端节点。Amazon WorkSpaces 支持在您的 VPC APIs 内向其所有[公共](https://docs.aws.amazon.com/workspaces/latest/api/welcome.html)用户发出呼叫。

要了解更多信息 AWS PrivateLink，请参阅[AWS PrivateLink 文档](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Introduction.html#what-is-privatelink)。有关 VPC 端点的价格，请参阅 [VPC 定价](https://aws.amazon.com/vpc/pricing/)。要了解有关 VPC 和端点的更多信息，请参阅 [Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html)。

要查看按地区划分 WorkSpaces 的 Amazon API 终端节点列表，请参阅 [WorkSpaces API 终端节点](workspaces-port-requirements.md#workspaces_api_endpoints)。

# 为 Amazon WorkSpaces 创建 VPC 端点策略
<a name="api-private-link-policy"></a>

您可以为 Amazon WorkSpaces 的 Amazon VPC 端点创建一个策略，用于指定以下内容：
+ 可执行操作的主体。
+ 可执行的操作。
+ 可对其执行操作的资源。

有关更多信息，请参阅《*Amazon VPC 用户指南*》中的[使用 VPC 端点控制对服务的访问](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html)。

**注意**  
联邦信息处理标准 (FIPS) Amazon WorkSpaces 端点不支持 VPC 端点策略。

以下示例 VPC 端点策略指定有权访问 VPC 接口端点的所有用户都可以调用名为 `ws-f9abcdefg` 的 Amazon WorkSpaces 托管端点。

```
{
     "Statement": [
         {
             "Action": "workspaces:*",
             "Effect": "Allow",
             "Resource": "arn:aws:workspaces:us-west-2:1234567891011:workspace/ws-f9abcdefg",
             "Principal": "*"
         }
     ]
}
```

在本例中，拒绝以下操作：
+ 调用除 `ws-f9abcdefg` 之外的 Amazon WorkSpaces 托管端点。
+ 对指定资源以外的任何资源执行操作（WorkSpace ID：`ws-f9abcdefg`）。

**注意**  
在本例中，用户仍然可以从 VPC 外部调用其他 Amazon WorkSpaces API 操作。要将 API 调用限制为 VPC 内的资源，请参阅 [的身份和访问管理 WorkSpaces](workspaces-access-control.md)，以了解有关使用基于身份的策略控制对 Amazon WorkSpaces API 端点的访问的信息。

# 将您的专用网络连接到 VPC
<a name="notebook-private-link-vpn"></a>

要通过您的 VPC 调用 Amazon WorkSpaces API，您必须从位于 VPC 中的实例进行连接，或者使用 AWS Virtual Private Network (Site-to-Site VPN) 或 Direct Connect 将您的专用网络连接到 VPC。相关信息，请参阅《Amazon虚拟私有云用户指南》**中的 [VPN 连接](https://docs.aws.amazon.com/vpc/latest/userguide/vpn-connections.html)。有关 AWS Direct Connect 的信息，请参阅《*Direct Connect 用户指南*》中的[创建连接](https://docs.aws.amazon.com/directconnect/latest/UserGuide/create-connection.html)。

# WorkSpaces 中的更新管理
<a name="update-management"></a>

建议您定期修补、更新和保护 WorkSpaces 上的操作系统和应用程序。您可以将 WorkSpaces 配置为在常规维护时段内进行更新，也可以自行更新。有关更多信息，请参阅 [WorkSpaces 个人版的维护](workspace-maintenance.md)。

对于 WorkSpaces 上的应用程序，您可以使用提供的任何自动更新服务，也可以遵循应用程序供应商提供的安装更新的建议。