适用于 的 Identity and Access ManagementAmazon WorkSpaces - Amazon WorkSpaces
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

适用于 的 Identity and Access ManagementAmazon WorkSpaces

默认情况下,IAM 用户无权管理 Amazon WorkSpaces 资源和操作。要允许 IAM 用户管理 Amazon WorkSpaces 资源,您必须创建一个 IAM 策略以明确向他们授予权限,并将该策略附加到需要这些权限的 IAM 用户或组。有关 IAM 策略的更多信息,请参阅 指南中的策略和权限。IAM 用户指南

Amazon WorkSpaces 还创建了一个 IAM 角色来允许 Amazon WorkSpaces 服务访问所需资源。

注意

Amazon WorkSpaces 不支持将 IAM 凭证预置到 WorkSpace(例如使用实例配置文件)。

有关 IAM 的更多信息,请参阅 Identity and Access Management (IAM)IAM 用户指南您可以在 WorkSpaces 中的 Amazon WorkSpaces 的操作、资源和条件键中找到特定于 的资源、操作和条件上下文键以在 IAM 权限策略中使用。IAM 用户指南

有关可帮助您创建 IAM 策略的工具,请参阅 AWS 策略生成器. 您还可以使用 IAM Policy Simulator 测试策略是允许还是拒绝对 AWS 的特定请求。

例 1:执行所有 Amazon WorkSpaces 任务

以下策略语句将授予 IAM 用户执行所有 Amazon WorkSpaces 任务的权限,包括创建和管理目录。它还授予运行快速设置过程的权限。

注意,尽管在使用 API 和命令行工具时 Amazon WorkSpaces 完全支持 ActionResource 元素,但您必须将它们都设置为“*”才能成功使用 Amazon WorkSpaces 控制台。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "workspaces:*", "ds:*", "iam:PassRole", "iam:GetRole", "iam:CreateRole", "iam:PutRolePolicy", "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", "workdocs:RegisterDirectory", "workdocs:DeregisterDirectory", "workdocs:AddUserToGroup" ], "Resource": "*" } ] }

例 2:执行 WorkSpace 特定的任务

以下策略语句授予 IAM 用户执行 WorkSpace 特定任务的权限,例如启动和删除 WorkSpaces。 在策略语句中,ds:* 操作授予广泛的权限 — 完全控制账户中的所有目录服务对象。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "workspaces:*", "ds:*", "iam:PutRolePolicy" ], "Resource": "*" } ] }

要同时授予用户在 Amazon WorkDocs 中为用户启用 Amazon WorkSpaces 的权限,请添加下例所示的 workdocs 操作。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "workspaces:*", "ds:*", "workdocs:AddUserToGroup" ], "Resource": "*" } ] }

要同时授予用户使用启动 WorkSpaces 向导的权限,请添加 kms 操作,如以下示例所示。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "workspaces:*", "ds:*", "workdocs:AddUserToGroup", "kms:ListAliases", "kms:ListKeys" ], "Resource": "*" } ] }

创建 workspaces_DefaultRole 角色

您必须先创建 WorkSpaces_Defaultrole 角色(如果此角色不存在),然后才能使用 API 注册目录。

创建 workspaces_DefaultRole 角色

  1. 登录 AWS 管理控制台 并通过以下网址打开 IAM 控制台 https://console.amazonaws.cn/iam/

  2. 在左侧的导航窗格中,选择角色.

  3. 选择创建角色.

  4. Select type of trusted entity (选择受信任实体的类型) 下,选择其他 AWS 账户.

  5. 对于 Account ID (账户 ID),输入不包含连字符或空格的账户 ID。

  6. 对于 Options,请勿指定 Multi-Factor Authentication (MFA) 。

  7. 选择 Next: Permissions (下一步: 权限).

  8. Attach permissions policies (附加权限策略) 页面上,选择 AWS 托管策略 AmazonWorkSpacesServiceAccessAmazonWorkSpacesSelfServiceAccess

  9. Set permissions boundary (设置权限边界) 下,我们建议您不要使用权限边界,因为可能会与附加到 workspaces_DefaultRole 角色的策略发生冲突。此类冲突可能会阻止角色的某些必要权限。

  10. 选择下一步: 标签.

  11. Add tags (optional) (添加标签(可选)) 页面上,根据需要添加标签。

  12. 选择 Next: Review.

  13. 审核页面上,对于角色名称,输入 workspaces_DefaultRole.

  14. (可选)对于 Role description (角色描述),输入描述。

  15. 选择 Create Role (创建角色).

  16. 在 workspaces_DefaultRole 角色的 DefaultRole 页面上,选择 Trust relationships 选项卡。

  17. 信任关系选项卡上,选择编辑信任关系.

  18. Edit Trust Relationship 页面上,使用以下语句替换现有策略语句。

    { "Statement": [ { "Effect": "Allow", "Principal": { "Service": "workspaces.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  19. 选择 Update Trust Policy.

在 Amazon WorkSpaces 策略中指定 IAM 资源

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

WorkSpace ARN

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

arn:aws:workspaces:region:account_id:workspace/workspace_identifier
区域

所在的区域(例如,WorkSpace)。us-east-1

account_id

AWS 账户的 ID,不含连字符 (例如,123456789012).

workspace_identifier

的 ID(例如,WorkSpace)。ws-a1bcd2efg

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

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

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

映像 ARN

映像 ARN 具有以下示例中显示的语法。WorkSpace

arn:aws:workspaces:region:account_id:workspaceimage/image_identifier
区域

映像所在的区域(例如,WorkSpace)。us-east-1

account_id

账户的 ID,不包含连字符(例如,AWS)。123456789012

bundle_identifier

映像的 ID(例如,WorkSpace)。wsi-a1bcd2efg

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

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

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

服务包 ARN

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

arn:aws:workspaces:region:account_id:workspacebundle/bundle_identifier
区域

所在的区域(例如,WorkSpace)。us-east-1

account_id

AWS 账户的 ID,不含连字符(例如,123456789012).

bundle_identifier

捆绑的 ID(例如,WorkSpace)。wsb-a1bcd2efg

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

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

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

IP 组 ARN

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

arn:aws:workspaces:region:account_id:workspaceipgroup/ipgroup_identifier
区域

所在的区域(例如,WorkSpace)。us-east-1

account_id

AWS 账户的 ID,不含连字符(例如,123456789012).

ipgroup_identifier

IP 组的 ID(例如 wsipg-a1bcd2efg).

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

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

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

目录 ARN

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

arn:aws:workspaces:region:account_id:directory/directory_identifier
区域

所在的区域(例如,WorkSpace)。us-east-1

account_id

AWS 账户的 ID,不含连字符(例如,123456789012).

directory_identifier

目录的 ID(例如 d-12345a67b8).

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

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

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

连接别名 ARN

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

arn:aws:workspaces:region:account_id:connectionalias/connectionalias_identifier
区域

连接别名所在的区域(例如,us-east-1)。

account_id

AWS 账户的 ID,不含连字符(例如,123456789012).

connectionalias_identifier

连接别名的 ID(例如,wsca-12345a67b8)。

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

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

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

不支持资源级权限的 API 操作

您不能使用以下 API 操作指定资源 ARN:

  • AssociateIpGroups

  • CreateIpGroup

  • CreateTags

  • DeleteTags

  • DeleteWorkspaceImage

  • DescribeAccount

  • DescribeAccountModifications

  • DescribeTags

  • DescribeWorkspaceDirectories

  • DescribeWorkspaceImages

  • DescribeWorkspaces

  • DescribeWorkspacesConnectionStatus

  • DisassociateIpGroups

  • ImportWorkspaceImage

  • ListAvailableManagementCidrRanges

  • ModifyAccount

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

"Resource": "*"

不支持共享资源的账户级限制的 API 操作

对于以下 API 操作,当资源不归账户所有时,您无法在资源 ARN 中指定账户 ID:

  • AssociateConnectionAlias

  • CopyWorkspaceImage

  • DisassociateConnectionAlias

对于这些 API 操作,只有在资源拥有要执行操作的资源时,才可以在资源 ARN 中指定账户 ID。当账户不拥有这些资源时,您必须为账户 ID 指定 *,如以下示例中所示。

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