Gerenciamento de identidade e acesso para o WorkSpaces - Amazon WorkSpaces

Gerenciamento de identidade e acesso para o WorkSpaces

Por padrão, os usuários do IAM não têm permissões para recursos e operações do WorkSpaces. Para permitir que os usuários do IAM gerenciem os recursos do WorkSpaces, é necessário criar uma política do IAM que conceda explicitamente permissões a eles e vincular a política aos usuários ou grupos do IAM que precisam dessas permissões.

nota

O Amazon WorkSpaces não oferece suporte ao provisionamento de credenciais do IAM em um WorkSpace (como com um perfil de instância).

Para conceder acesso, adicione as permissões aos seus usuários, grupos ou perfis:

A seguir estão os recursos adicionais para o IAM:

Exemplo de política

Os exemplos a seguir mostram declarações de políticas que é possível usar para controlar as permissões que os usuários do IAM têm para o Amazon WorkSpaces.

A declaração de política a seguir concede a um usuário do IAM permissão para executar tarefas pessoais e de pools do WorkSpaces Personal.

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

A declaração de política a seguir concede a um usuário do IAM permissão para executar todas as tarefas do WorkSpaces Personal.

Embora o Amazon WorkSpaces ofereça suporte total aos elementos Action e Resource ao usar a API e ferramentas de linha de comando, para usar o Amazon WorkSpaces a partir do Console de gerenciamento da AWS, um usuário do IAM deve ter permissões para as seguintes ações e recursos:

  • Ações: "ds:*"

  • Recursos: "Resource": "*"

O exemplo de política a seguir mostra como permitir que um usuário do IAM use o Amazon WorkSpaces a partir do Console de gerenciamento da 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" } } } ] }

A declaração de política a seguir concede a um usuário do IAM permissão para executar todas as tarefas do WorkSpaces Pools, incluindo a criação e o gerenciamento de diretórios.

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

A declaração de política a seguir concede a um usuário do IAM permissão para realizar todas as tarefas do WorkSpaces, incluindo as tarefas do Amazon EC2 necessárias para criar traga a sua própria licença (BYOL) WorkSpaces.

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

Especificar recursos do WorkSpaces em uma política do IAM

Para especificar um recurso do WorkSpaces no elemento Resource da declaração de política, use o nome do recurso da Amazon (ARN) do recurso. Você controla o acesso aos recursos do WorkSpaces permitindo ou negando permissões para usar as ações de API especificadas no elemento Action da declaração de política do IAM. O WorkSpaces define ARNs para WorkSpaces, pacotes, grupos de IP e diretórios.

Um ARN do WorkSpace tem a sintaxe mostrada no exemplo a seguir.

arn:aws:workspaces:region:account_id:workspace/workspace_identifier
região

A região em que o WorkSpace está (por exemplo, us-east-1).

account_id

O ID da conta da AWS, sem hífens (por exemplo, 123456789012).

workspace_identifier

O ID do WorkSpace (por exemplo, ws-a1bcd2efg).

Veja a seguir o formato do elemento Resource de uma declaração de política que identifica um WorkSpace específico.

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

É possível usar o caractere curinga * para especificar todos os WorkSpaces que pertencem a uma conta específica em determinada região.

Um ARN do WorkSpace Pool tem a sintaxe mostrada no exemplo a seguir.

arn:aws:workspaces:region:account_id:workspacespool/workspacespool_identifier
região

A região em que o WorkSpace está (por exemplo, us-east-1).

account_id

O ID da conta da AWS, sem hífens (por exemplo, 123456789012).

espaço de trabalho_pool_identifier

O ID do WorkSpace Pool (por exemplo, ws-a1bcd2efg).

Veja a seguir o formato do elemento Resource de uma declaração de política que identifica um WorkSpace específico.

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

É possível usar o caractere curinga * para especificar todos os WorkSpaces que pertencem a uma conta específica em determinada região.

Um ARN de certificado do WorkSpace tem a sintaxe mostrada no exemplo a seguir.

arn:aws:workspaces:region:account_id:workspacecertificate/workspacecertificateidentifier
região

A região em que o WorkSpace está (por exemplo, us-east-1).

account_id

O ID da conta da AWS, sem hífens (por exemplo, 123456789012).

workspacecertificate_identifier

O ID do certificado do WorkSpace (por exemplo, ws-a1bcd2efg).

Veja a seguir o formato do elemento Resource de uma declaração de política que identifica um certificado do WorkSpace específico.

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

É possível usar o caractere curinga * para especificar todos os WorkSpaces que pertencem a uma conta específica em determinada região.

Um ARN de imagem do WorkSpace tem a sintaxe mostrada no exemplo a seguir.

arn:aws:workspaces:region:account_id:workspaceimage/image_identifier
região

A região em que a imagem do WorkSpace está (por exemplo, us-east-1).

account_id

O ID da conta da AWS, sem hífens (por exemplo, 123456789012).

bundle_identifier

O ID da imagem do WorkSpace (por exemplo, wsi-a1bcd2efg).

Veja a seguir o formato do elemento Resource de uma declaração de política que identifica uma imagem específica.

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

É possível usar o caractere curinga * para especificar todas as imagens que pertencem a uma conta específica em determinada região.

Um ARN de pacote tem a sintaxe mostrada no exemplo a seguir.

arn:aws:workspaces:region:account_id:workspacebundle/bundle_identifier
região

A região em que o WorkSpace está (por exemplo, us-east-1).

account_id

O ID da conta da AWS, sem hífens (por exemplo, 123456789012).

bundle_identifier

O ID do pacote do WorkSpace (por exemplo, wsb-a1bcd2efg).

Veja a seguir o formato do elemento Resource de uma declaração de política que identifica um pacote específico.

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

É possível usar o caractere curinga * para especificar todos os pacotes que pertencem a uma conta específica em determinada região.

Um ARN de grupo IP tem a sintaxe mostrada no exemplo a seguir.

arn:aws:workspaces:region:account_id:workspaceipgroup/ipgroup_identifier
região

A região em que o WorkSpace está (por exemplo, us-east-1).

account_id

O ID da conta da AWS, sem hífens (por exemplo, 123456789012).

ipgroup_identifier

O ID do grupo de IP (por exemplo, wsipg-a1bcd2efg).

Veja a seguir o formato do elemento Resource de uma declaração de política que identifica um grupo de IP específico.

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

É possível usar o caractere curinga * para especificar todos os grupos de IP que pertencem a uma conta específica determinada região.

Um ARN de diretório tem a sintaxe mostrada no exemplo a seguir.

arn:aws:workspaces:region:account_id:directory/directory_identifier
região

A região em que o WorkSpace está (por exemplo, us-east-1).

account_id

O ID da conta da AWS, sem hífens (por exemplo, 123456789012).

directory_identifier

O ID do diretório (por exemplo, d-12345a67b8).

Veja a seguir o formato do elemento Resource de uma declaração de política que identifica um diretório específico.

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

É possível usar o caractere curinga * para especificar todos os diretórios que pertencem a uma conta específica em determinada região.

Um ARN de alias de conexão tem a sintaxe mostrada no exemplo a seguir.

arn:aws:workspaces:region:account_id:connectionalias/connectionalias_identifier
região

A região em que o alias da conexão está (por exemplo, us-east-1).

account_id

O ID da conta da AWS, sem hífens (por exemplo, 123456789012).

connectionalias_identifier

O ID do alias de conexão (por exemplo, wsca-12345a67b8).

Veja a seguir o formato do elemento Resource de uma declaração de política que identifica um alias de conexão específico.

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

É possível usar o caractere curinga * para especificar todos os alias de conexão que pertencem a uma conta específica em determinada região.

Você não pode especificar um ARN de recurso com as seguintes ações de API:

  • AssociateIpGroups

  • CreateIpGroup

  • CreateTags

  • DeleteTags

  • DeleteWorkspaceImage

  • DescribeAccount

  • DescribeAccountModifications

  • DescribeIpGroups

  • DescribeTags

  • DescribeWorkspaceDirectories

  • DescribeWorkspaceImages

  • DescribeWorkspaces

  • DescribeWorkspacesConnectionStatus

  • DisassociateIpGroups

  • ImportWorkspaceImage

  • ListAvailableManagementCidrRanges

  • ModifyAccount

Para ações de API que não oferecem suporte a permissões no nível de recurso, é necessário especificar a instrução de recurso mostrada no exemplo a seguir.

"Resource": "*"

Para as seguintes ações da API, você não pode especificar um ID de conta no ARN do recurso quando o recurso não é de propriedade da conta:

  • AssociateConnectionAlias

  • CopyWorkspaceImage

  • DisassociateConnectionAlias

Para essas ações da API, você pode especificar um ID de conta no ARN do recurso somente quando essa conta é a proprietária dos recursos a serem usados. Quando a conta não é a proprietária dos recursos, você deve especificar * para o ID da conta, conforme mostrado no exemplo a seguir.

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

Criar o perfil workspaces_DefaultRole

Antes de registrar um diretório usando a API, você deve verificar se existe um perfil chamado workspaces_DefaultRole. Esse perfil é criado pela Configuração Rápida ou se você iniciar um WorkSpace usando o Console de gerenciamento da AWS, e ela concede permissão ao Amazon WorkSpaces para acessar recursos AWS específicos em seu nome. Se esse perfil não existir, você poderá criá-lo usando o procedimento a seguir.

Como criar a função workspaces_DefaultRole
  1. Faça login no Console de gerenciamento da AWS e abra o console do IAM, em https://console.aws.amazon.com/iam/.

  2. No painel de navegação à esquerda, escolha Roles (Funções).

  3. Selecione Criar perfil.

  4. Em Selecionar tipo de entidade confiável, selecione Outra conta da AWS.

  5. Em Account ID (ID da conta), insira seu ID de conta sem hífens ou espaços.

  6. Em Options (Opções), não especifique a autenticação multifator (MFA).

  7. Escolha Próximo: Permissões.

  8. Na página Anexar políticas de permissões, selecione as políticas gerenciadas da AWS AmazonWorkSpacesServiceAccess, AmazonWorkSpacesSelfServiceAccess e AmazonWorkSpacesPoolServiceAccess. Para obter mais informações sobre políticas gerenciadas, consulte Políticas gerenciadas pela AWS para o WorkSpaces.

  9. Em Definir limite de permissões, recomendamos que você não use um limite de permissões devido ao potencial para conflitos com as políticas anexadas à esse perfil. Tais conflitos podem bloquear determinadas permissões necessárias para a função.

  10. Escolha Próximo: tags.

  11. Na página Add tags (optional) (Adicionar tags (opcional)), adicione tags se necessário.

  12. Selecione Próximo: revisar.

  13. Na página Revisar, em Nome da função, insira workspaces_DefaultRole.

  14. (Opcional ) Em Role description (Descrição da função), insira uma descrição.

  15. Selecione Criar função.

  16. Na página Summary (Resumo) da função workspaces_DefaultRole, escolha a guia Trust relationships (Relações de confiança).

  17. Na guia Trust relationships (Relações de confiança), escolha Edit trust relationship (Editar relação de confiança).

  18. Na página Edit Trust Relationship (Editar relação de confiança), substitua a declaração de política existente pela declaração a seguir.

    { "Statement": [ { "Effect": "Allow", "Principal": { "Service": "workspaces.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  19. Selecione Atualizar política de confiança.

Criar o perfil de serviço AmazonWorkSpacesPCAAccess

Antes que os usuários possam fazer login usando a autenticação baseada em certificado, você deve verificar se existe um perfil chamado AmazonWorkSpacesPCAAccess. Esse perfil é criado quando você habilita a autenticação baseada em certificado em um diretório usando o Console de gerenciamento da AWS. Ele concede permissão ao Amazon WorkSpaces para acessar recursos do CA Privada da AWS em seu nome. Se esse perfil não existir porque você não está usando o console para gerenciar a autenticação baseada em certificado, você poderá criá-lo usando o procedimento a seguir.

Como criar o perfil de serviço AmazonWorkSpacesPCAAccess usando a AWS CLI
  1. Crie um arquivo JSON denominado AmazonWorkSpacesPCAAccess.json com o texto a seguir.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "prod.euc.ecm.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. Ajuste o caminho AmazonWorkSpacesPCAAccess.json conforme necessário e execute os comandos AWS CLI a seguir para criar o perfil de serviço e anexar a política gerenciada 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