本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
的身份和访问管理 WorkSpaces
默认情况下,IAM用户没有 WorkSpaces 资源和操作权限。要允许IAM用户管理 WorkSpaces 资源,您必须创建一个明确授予其权限的IAM策略,并将该策略附加到需要这些权限的IAM用户或群组。
注意
Amazon WorkSpaces 不支持将IAM凭证配置到 WorkSpace (例如使用实例配置文件)。
要提供访问权限,请为您的用户、组或角色添加权限:
-
IAM通过身份提供商管理的用户:
创建适用于身份联合验证的角色。按照《IAM用户指南》中为第三方身份提供商创建角色(联合)中的说明进行操作。
-
IAM用户:
-
创建您的用户可以担任的角色。按照《用户指南》中为IAM用户创建角色中的IAM说明进行操作。
-
(不推荐使用)将策略直接附加到用户或将用户添加到用户组。按照《用户指南》中向用户(控制台)添加权限中的IAM说明进行操作。
-
以下是用于以下内容的额外资源IAM:
-
有关IAM策略的更多信息,请参阅《IAM用户指南》指南中的策略和权限。
-
有关的更多信息IAM,请参阅 Ident ity and Access Management (IAM)
和《IAM用户指南》。 -
有关IAM权限策略中使用的 WorkSpaces特定资源、操作和条件上下文密钥的更多信息,请参阅《IAM用户指南》 WorkSpaces中的 Amazon 操作、资源和条件密钥。
-
有关可帮助您创建IAM策略的工具,请参阅 Amazon 策略生成器
。您还可以使用IAM策略模拟器来测试策略是允许还是拒绝特定请求 Amazon.
内容
策略示例
重要
“ 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
-
登录 Amazon Web Services Management Console 然后打开IAM控制台,网址为https://console.aws.amazon.com/iam/
。 -
在左侧的导航窗格中,选择角色。
-
选择 Create role(创建角色)。
-
在 “选择可信实体类型” 下,选择 “其他” Amazon 账户。
-
对于账户 ID,请输入没有连字符或空格的账户 ID。
-
对于选项,请勿指定多因素身份验证 (MFA)。
-
选择下一步: 权限。
-
在附加权限策略页面上,选择 Amazon 托管策略AmazonWorkSpacesServiceAccessAmazonWorkSpacesSelfServiceAccess、和AmazonWorkSpacesPoolServiceAccess。有关这些托管策略的更多信息,请参阅Amazon 的托管策略 WorkSpaces。
-
在设置权限边界下,建议您不要使用权限边界,因为可能会与附加到此角色的策略发生冲突。此类冲突可能会阻止角色的某些必要权限。
-
选择下一步:标签。
-
在 Add tags (optional) (添加标签(可选)) 页面上,根据需要添加标签。
-
选择下一步:审核。
-
在审核页面上,对于角色名称,输入
workspaces_DefaultRole
。 -
(可选)对于角色描述,请输入描述。
-
请选择 Create Role(创建角色)。
-
在 workspaces_ DefaultRole 角色的 “摘要” 页面上,选择 “信任关系” 选项卡。
-
在信任关系选项卡上,选择编辑信任关系。
-
在编辑信任关系页面上,将现有策略语句替换为以下语句。
{ "Statement": [ { "Effect": "Allow", "Principal": { "Service": "workspaces.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
选择更新信任策略。
创建 AmazonWorkSpacesPCAAccess服务角色
在用户使用基于证书的身份验证方式登录之前,您必须先验证名为 AmazonWorkSpacesPCAAccess
的角色是否存在。此角色是在您使用目录上启用基于证书的身份验证时创建的 Amazon Web Services Management Console,并授予亚马逊访问 WorkSpaces权限 Amazon Private CA 代表您提供的资源。如果由于您未使用控制台管理基于证书的身份验证而导致此角色不存在,则您可以使用以下步骤创建此角色。
要创建 AmazonWorkSpacesPCAAccess服务角色,请使用 Amazon CLI
-
使用以下文本创建一个
AmazonWorkSpacesPCAAccess.json
名为的JSON文件。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "prod.euc.ecm.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
根据需要调整
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