的身份和访问管理 WorkSpaces - Amazon WorkSpaces
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

的身份和访问管理 WorkSpaces

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

注意

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

要提供访问权限,请为您的用户、组或角色添加权限:

以下是用于以下内容的额外资源IAM:

策略示例

重要

“ WorkSpaces 池” 功能不适用于北京和宁夏区域。

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

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

{ "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", "workdocs:AddUserToGroup", "workdocs:DeregisterDirectory", "workdocs:RegisterDirectory", "sso-directory:SearchUsers", "sso:CreateApplication", "sso:DeleteApplication", "sso:DescribeApplication", "sso:DescribeInstance", "sso:GetApplicationGrant", "sso:ListInstances", "sso:PutApplicationAssignment", "sso:PutApplicationAssignmentConfiguration", "sso:PutApplicationAuthenticationMethod", "sso:PutApplicationGrant" ], "Resource": "*" }, { "Sid": "iamPassRole", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "workspaces.amazonaws.com" } } } ] }

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

尽管亚马逊在使用Action和命令行工具时 WorkSpaces 完全支持API和Resource元素,但要 WorkSpaces 从中使用亚马逊 Amazon Web Services Management Console,则IAM用户必须拥有以下操作和资源的权限:

  • 操作:workspaces:*""ds:*"

  • 资源:"Resource": "*"

以下示例策略展示了如何允许IAM用户通过以下方式使用 Amazon WorkSpaces Amazon Web Services Management Console.

{ "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", "workdocs:RegisterDirectory", "workdocs:DeregisterDirectory", "workdocs:AddUserToGroup", "secretsmanager:ListSecrets", "sso-directory:SearchUsers", "sso:CreateApplication", "sso:DeleteApplication", "sso:DescribeApplication", "sso:DescribeInstance", "sso:GetApplicationGrant", "sso:ListInstances", "sso:PutApplicationAssignment", "sso:PutApplicationAssignmentConfiguration", "sso:PutApplicationAuthenticationMethod", "sso:PutApplicationGrant" ], "Resource": "*" }, { "Sid": "iamPassRole", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "workspaces.amazonaws.com" } } } ] }

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

{ "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" } } } ] }

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

{ "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", "workdocs:AddUserToGroup", "workdocs:DeregisterDirectory", "workdocs:RegisterDirectory" ], "Resource": "*" }, { "Sid": "iamPassRole", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "workspaces.amazonaws.com" } } } ] }

在IAM策略中指定 WorkSpaces 资源

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

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

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

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

account_id

的身份证 Amazon 帐户,不带连字符(例如,123456789012)。

workspace_identifier

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

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

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

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

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

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

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

account_id

的身份证 Amazon 帐户,不带连字符(例如,123456789012)。

工作空间池_标识符

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

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

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

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

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

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

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

account_id

的身份证 Amazon 帐户,不带连字符(例如,123456789012)。

bundle_identifier

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

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

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

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

捆绑包ARN的语法如下例所示。

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

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

account_id

的身份证 Amazon 帐户,不带连字符(例如,123456789012)。

bundle_identifier

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

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

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

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

IP 组ARN的语法如下例所示。

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

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

account_id

的身份证 Amazon 帐户,不带连字符(例如,123456789012)。

ipgroup_identifier

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

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

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

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

目录ARN的语法如下例所示。

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

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

account_id

的身份证 Amazon 帐户,不带连字符(例如,123456789012)。

directory_identifier

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

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

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

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

连接别名的ARN语法如下例所示。

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

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

account_id

的身份证 Amazon 帐户,不带连字符(例如,123456789012)。

connectionalias_identifier

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

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

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

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

您不能通过以下API操作来指定资源ARN:

  • AssociateIpGroups

  • CreateIpGroup

  • CreateTags

  • DeleteTags

  • DeleteWorkspaceImage

  • DescribeAccount

  • DescribeAccountModifications

  • DescribeIpGroups

  • DescribeTags

  • DescribeWorkspaceDirectories

  • DescribeWorkspaceImages

  • DescribeWorkspaces

  • DescribeWorkspacesConnectionStatus

  • DisassociateIpGroups

  • ImportWorkspaceImage

  • ListAvailableManagementCidrRanges

  • ModifyAccount

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

"Resource": "*"

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

  • AssociateConnectionAlias

  • CopyWorkspaceImage

  • DisassociateConnectionAlias

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

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

创建工作空间_ 角色 DefaultRole

在使用注册目录之前API,必须验证名为的角色是否workspaces_DefaultRole存在。此角色由 “快速设置” 创建,或者如果您 WorkSpace 使用 Amazon Web Services Management Console,并授予亚马逊访问特定内容的 WorkSpaces 权限 Amazon 代表您提供的资源。如果此角色不存在,您可以使用以下程序创建它。

创建 workspaces_ 角色 DefaultRole
  1. 登录 Amazon Web Services Management Console 然后打开IAM控制台,网址为https://console.aws.amazon.com/iam/

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

  3. 选择 Create role(创建角色)。

  4. “选择可信实体类型” 下,选择 “其他” Amazon 账户

  5. 对于账户 ID,请输入没有连字符或空格的账户 ID。

  6. 对于选项,请勿指定多因素身份验证 (MFA)。

  7. 选择下一步: 权限

  8. 附加权限策略页面上,选择 Amazon 托管策略AmazonWorkSpacesServiceAccessAmazonWorkSpacesSelfServiceAccess、和AmazonWorkSpacesPoolServiceAccess。有关这些托管策略的更多信息,请参阅Amazon 的托管策略 WorkSpaces

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

  10. 选择下一步:标签

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

  12. 选择下一步:审核

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

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

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

  16. 在 workspaces_ DefaultRole 角色的 “摘要” 页面上,选择 “信任关系” 选项卡。

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

  18. 编辑信任关系页面上,将现有策略语句替换为以下语句。

    { "Statement": [ { "Effect": "Allow", "Principal": { "Service": "workspaces.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  19. 选择更新信任策略

创建 AmazonWorkSpacesPCAAccess服务角色

在用户使用基于证书的身份验证方式登录之前,您必须先验证名为 AmazonWorkSpacesPCAAccess 的角色是否存在。此角色是在您使用目录上启用基于证书的身份验证时创建的 Amazon Web Services Management Console,并授予亚马逊访问 WorkSpaces权限 Amazon Private CA 代表您提供的资源。如果由于您未使用控制台管理基于证书的身份验证而导致此角色不存在,则您可以使用以下步骤创建此角色。

要创建 AmazonWorkSpacesPCAAccess服务角色,请使用 Amazon CLI
  1. 使用以下文本创建一个AmazonWorkSpacesPCAAccess.json名为的JSON文件。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "prod.euc.ecm.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. 根据需要调整AmazonWorkSpacesPCAAccess.json路径并运行以下命令 Amazon CLI 用于创建服务角色并附加AmazonWorkspacesPCAAccess托管策略的命令。

    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