Gestión de identidades y accesos para WorkSpaces - Amazon WorkSpaces

Gestión de identidades y accesos para WorkSpaces

De forma predeterminada, los usuarios de IAM no tienen permisos para los recursos y operaciones de WorkSpaces. Para permitir a los usuarios de IAM administrar los recursos de WorkSpaces, debe crear una política de IAM que les conceda explícitamente permisos, y asociar la política a los usuarios o grupos de IAM que requieran esos permisos.

nota

Amazon WorkSpaces no admite el aprovisionamiento de credenciales de IAM en un WorkSpace ( por ejemplo, con un perfil de instancia).

Para dar acceso, agregue permisos a los usuarios, grupos o roles:

A continuación se enumeran recursos adicionales de IAM:

Ejemplos de políticas

Los siguientes ejemplos muestran instrucciones de política que puede utilizar para controlar los permisos que tienen los usuarios de IAM para Amazon WorkSpaces.

La siguiente instrucción de política concede a un usuario de IAM permiso para realizar tareas de WorkSpaces Personal y WorkSpaces Pools.

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

La siguiente instrucción de política concede a un usuario de IAM permiso para realizar todas las tareas de WorkSpaces Personal.

Aunque Amazon WorkSpaces es totalmente compatible con los elementos Action y Resource al utilizar la API y las herramientas de línea de comandos, para utilizar Amazon WorkSpaces desde la consola de administración de Consola de administración de AWS, un usuario de IAM debe tener permisos para las siguientes acciones y recursos:

  • Acciones: "ds:*"

  • Recursos: "Resource": "*"

El siguiente ejemplo de política muestra cómo permitir que un usuario de IAM utilice Amazon WorkSpaces desde Consola de administración de 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" } } } ] }

La siguiente instrucción de política concede a un usuario de IAM permiso para realizar todas las tareas de WorkSpaces Pools.

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

La siguiente declaración de política concede a un usuario de IAM permiso para realizar todas las tareas de WorkSpaces, incluidas las tareas de Amazon EC2 necesarias para crear WorkSpaces de traiga su propia licencia (BYOL).

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 los recursos de WorkSpaces en una política de IAM

Para especificar un recurso de en el elemento Resource de la instrucción de la política, utilice el nombre de recurso de Amazon (ARN). Puede controlar el acceso a sus recursos WorkSpaces permitiendo o denegando permisos para utilizar las acciones API que se especifican en el elemento Action de su instrucción de política IAM. WorkSpaces define los ARN para WorkSpaces, paquetes, grupos de IP y directorios.

Los ARN de WorkSpace tienen la sintaxis que se muestra en el ejemplo siguiente.

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

La región en la que se encuentra el WorkSpace (por ejemplo, us-east-1).

id_cuenta

El ID de la cuenta de AWS, sin guiones (por ejemplo, 123456789012).

identificador_espacio_trabajo

El ID del WorkSpace (por ejemplo, ws-a1bcd2efg).

Este es el formato del elemento Resource de una instrucción de política que identifica un WorkSpace específico:

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

Puede utilizar el carácter comodín * para especificar todos los WorkSpaces que pertenecen a una cuenta específica en una región específica.

Un ARN del grupo de WorkSpaces Pools tiene la sintaxis que se muestra en el ejemplo siguiente.

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

La región en la que se encuentra el WorkSpace (por ejemplo, us-east-1).

id_cuenta

El ID de la cuenta de AWS, sin guiones (por ejemplo, 123456789012).

workspacespool_identifier

El ID del grupo de WorkSpaces Pools (por ejemplo, ws-a1bcd2efg).

Este es el formato del elemento Resource de una instrucción de política que identifica un WorkSpace específico:

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

Puede utilizar el carácter comodín * para especificar todos los WorkSpaces que pertenecen a una cuenta específica en una región específica.

Los ARN de un certificado de WorkSpace tienen la sintaxis que se muestra en el ejemplo siguiente.

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

La región en la que se encuentra el WorkSpace (por ejemplo, us-east-1).

id_cuenta

El ID de la cuenta de AWS, sin guiones (por ejemplo, 123456789012).

workspacecertificate_identifier

El ID del certificado de WorkSpace (por ejemplo, ws-a1bcd2efg).

Este es el formato del elemento Resource de una instrucción de política que identifica un certificado de WorkSpace específico:

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

Puede utilizar el carácter comodín * para especificar todos los WorkSpaces que pertenecen a una cuenta específica en una región específica.

Un ARN de imagen WorkSpace tiene la sintaxis que se muestra en el siguiente ejemplo.

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

La región en la que se encuentra la imagen del WorkSpace (por ejemplo, us-east-1).

id_cuenta

El ID de la cuenta de AWS, sin guiones (por ejemplo, 123456789012).

identificador_paquete

El ID de la imagen WorkSpace (por ejemplo, wsi-a1bcd2efg).

Este es el formato del elemento Resource de una instrucción de política que identifica una imagen específica.

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

Puede utilizar el carácter comodín * para especificar todas las imágenes que pertenecen a una cuenta específica en una región específica.

Los ARN de los paquetes tienen la sintaxis que se muestra en el siguiente ejemplo.

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

La región en la que se encuentra el WorkSpace (por ejemplo, us-east-1).

id_cuenta

El ID de la cuenta de AWS, sin guiones (por ejemplo, 123456789012).

identificador_paquete

El ID del paquete de WorkSpace (por ejemplo, wsb-a1bcd2efg).

Este es el formato del elemento Resource de una instrucción de política que identifica un paquete específico.

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

Puede utilizar el comodín * para especificar todos los paquetes que pertenecen a una cuenta específica en una región específica.

Los ARN de los grupos de IP tienen la sintaxis que se muestra en el ejemplo siguiente.

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

La región en la que se encuentra el WorkSpace (por ejemplo, us-east-1).

id_cuenta

El ID de la cuenta de AWS, sin guiones (por ejemplo, 123456789012).

grupoip_identificador

ID del grupo de IP (por ejemplo, wsipg-a1bcd2efg).

Este es el formato del elemento Resource de una instrucción de política que identifica un grupo de IP específico.

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

Puede utilizar el carácter comodín * para especificar todos los grupos de IP que pertenecen a una cuenta específica en una región específica.

Los ARN de los directorios tienen la sintaxis que se muestra en el ejemplo siguiente.

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

La región en la que se encuentra el WorkSpace (por ejemplo, us-east-1).

id_cuenta

El ID de la cuenta de AWS, sin guiones (por ejemplo, 123456789012).

directorio_identificador

ID del directorio (por ejemplo, d-12345a67b8).

Este es el formato del elemento Resource de una instrucción de política que identifica un directorio específico.

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

Puede utilizar el carácter comodín para especificar todos los directorios que pertenecen a una cuenta específica en una región específica.

Un alias de conexión ARN tiene la sintaxis que se muestra en el siguiente ejemplo.

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

La región en la que se encuentra el alias de conexión (por ejemplo,us-east-1).

id_cuenta

El ID de la cuenta de AWS, sin guiones (por ejemplo, 123456789012).

connectionalias_identifier

El ID del alias de conexión (por ejemplo, wsca-12345a67b8).

Este es el formato del elemento Resource de una instrucción de política que identifica un alias de conexión específico.

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

Puede utilizar el carácter comodín * para especificar todos los alias de conexión que pertenecen a una cuenta específica en una región específica.

No puede especificar el ARN de un recurso con las siguientes acciones de API:

  • AssociateIpGroups

  • CreateIpGroup

  • CreateTags

  • DeleteTags

  • DeleteWorkspaceImage

  • DescribeAccount

  • DescribeAccountModifications

  • DescribeIpGroups

  • DescribeTags

  • DescribeWorkspaceDirectories

  • DescribeWorkspaceImages

  • DescribeWorkspaces

  • DescribeWorkspacesConnectionStatus

  • DisassociateIpGroups

  • ImportWorkspaceImage

  • ListAvailableManagementCidrRanges

  • ModifyAccount

En el caso de las acciones de la API que no admiten los permisos a nivel de recursos, debe especificar la instrucción de recursos que se muestra en el ejemplo siguiente.

"Resource": "*"

Para las siguientes acciones de API, no puede especificar un ID de cuenta en el ARN del recurso cuando el recurso no es propiedad de la cuenta:

  • AssociateConnectionAlias

  • CopyWorkspaceImage

  • DisassociateConnectionAlias

Para estas acciones de la API, puedes especificar un ID de cuenta en el ARN del recurso solo cuando esa cuenta sea propietaria de los recursos sobre los que se va a actuar. Cuando la cuenta no es propietaria de los recursos, debe especificar * para el ID de cuenta, tal y como se muestra en el siguiente ejemplo.

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

Crear el rol workspaces_DefaultRole

Antes de poder registrar un directorio mediante la API, debe comprobar que existe un rol denominado workspaces_DefaultRole. Este rol se crea mediante la configuración rápida o si lanza un WorkSpace utilizando la Consola de administración de AWS, y concede a Amazon WorkSpaces permiso para acceder a recursos específicos de AWS en su nombre. Si este rol no existe, puede crearlo mediante el siguiente procedimiento.

Para crear el rol workspaces_DefaultRole
  1. Inicie sesión en la Consola de administración de AWS y abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación de la izquierda, seleccione Roles.

  3. Seleccione Crear rol.

  4. En Seleccione el tipo de entidad de confianza, elija Otra cuenta de AWS.

  5. En Account ID (ID de cuenta), escriba el ID de la cuenta sin guiones ni espacios.

  6. En Options (Opciones), no especifique multi-factor authentication (MFA).

  7. Elija Siguiente: permisos.

  8. En la página Asociar políticas de permisos, seleccione las políticas administradas de AWS AmazonWorkSpacesServiceAccess, AmazonWorkSpacesSelfServiceAccess y AmazonWorkSpacesPoolServiceAccess. Para obtener más información sobre estas políticas administradas, consulte Políticas administradas por AWS para WorkSpaces.

  9. En Establecer límite de permisos, se recomienda que no utilice un límite de permisos debido a la posibilidad de conflictos con las políticas asociadas a este rol. Estos conflictos podrían bloquear ciertos permisos necesarios para el rol.

  10. Elija Siguiente: etiquetas.

  11. En la página Add tags (optional) [Agregar etiquetas (opcional)], añada las etiquetas que correspondan.

  12. Elija Siguiente: Revisar.

  13. En la página Revisión, en Nombre del rol, ingrese workspaces_DefaultRole.

  14. (Opcional) En Role description (Descripción del rol), escriba una descripción.

  15. Seleccione Crear rol.

  16. En la página Summary (Resumen) del rol workspaces_DefaultRole, seleccione la pestaña Trust relationships (Relaciones de confianza).

  17. En la pestaña Trust relationships (Relaciones de confianza), elija Edit trust relationship (Editar relación de confianza).

  18. En la página Edit Trust Relationship (Editar relación de confianza), sustituya la instrucción de política existente por la siguiente instrucción.

    { "Statement": [ { "Effect": "Allow", "Principal": { "Service": "workspaces.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  19. Elija Actualizar política de confianza.

Crear el rol de servicio AmazonWorkSpacesPCAAccess

Antes de que los usuarios puedan iniciar sesión mediante la autenticación basada en certificados, debe comprobar que existe un rol denominado AmazonWorkSpacesPCAAccess. Este rol se crea cuando habilita la autenticación basada en certificados en un directorio mediante la Consola de administración de AWS, y concede a Amazon WorkSpaces permiso para acceder a los recursos de AWS Private CA en su nombre. Si este rol no existe porque no utiliza la consola para administrar la autenticación basada en certificados, puede crearlo mediante el siguiente procedimiento.

Para crear el rol de servicio AmazonWorkSpacesPCAAccess utilizando la AWS CLI
  1. Cree un archivo JSON llamado AmazonWorkSpacesPCAAccess.json con el siguiente texto.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "prod.euc.ecm.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  2. Ajuste la ruta de AmazonWorkSpacesPCAAccess.json según sea necesario y ejecute los siguientes comandos de la AWS CLI para crear el rol de servicio y asociar la política administrada 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