Acceso a escritorios de WorkSpaces y scripts en instancias de transmisión - Amazon WorkSpaces

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Acceso a escritorios de WorkSpaces y scripts en instancias de transmisión

Las aplicaciones y los scripts que se ejecutan en instancias de transmisión de WorkSpaces deben incluir credenciales de AWS en sus solicitudes a la API de AWS. Puede crear un rol de IAM para administrar estas credenciales. Un rol de IAM especifica un conjunto de permisos que puede utilizar para el acceso a los recursos de AWS. Sin embargo, este rol no se asocia de manera exclusiva a una persona. En su lugar, puede asumirlo cualquier usuario que lo necesite.

Puede aplicar un rol de IAM en una instancia de transmisión de WorkSpaces. Cuando la instancia de streaming cambia al rol (lo asume), el rol proporciona credenciales de seguridad temporales. La aplicación o los scripts utilizan estas credenciales para realizar acciones de la API y tareas de administración en la instancia de streaming. WorkSpaces administra automáticamente el cambio a las credenciales temporales.

Prácticas recomendadas para el uso de los roles de IAM con instancias de transmisión de WorkSpaces

Al utilizar los roles de IAM con instancias de transmisión de WorkSpaces, le recomendamos que siga estas prácticas:

  • Limite los permisos que concede a los recursos y las acciones de la API de AWS.

    Siga los principios de privilegios mínimos al crear y asociar las políticas de IAM a los roles de IAM asociados a las instancias de transmisión de WorkSpaces. Cuando utilice una aplicación o un script que requiera de acceso a los recursos o las acciones de la API de AWS, determine las acciones y los recursos específicos necesarios. A continuación, cree políticas que permitan a la aplicación o al script realizar únicamente tales acciones. Para obtener más información, consulte Concesión de mínimos privilegios en la Guía del usuario de IAM.

  • Cree un rol de IAM para cada recurso de WorkSpaces.

    La creación de un rol de IAM único para cada recurso de WorkSpaces es una práctica que sigue los principios de privilegios mínimos. Esto también le permite modificar los permisos de un recurso sin que ello afecte a otros recursos.

  • Límite dónde se pueden utilizar las credenciales.

    Las políticas de IAM le permiten definir las condiciones en las que el rol de IAM se puede utilizar para acceder a un recurso. Por ejemplo, puede incluir condiciones para especificar un rango de direcciones IP desde el que pueden proceder las solicitudes. Esto impide que las credenciales se utilicen fuera de su entorno. Para obtener más información, consulte Utilizar condiciones de política para mayor seguridad en la Guía del usuario de IAM.

Configuración de un rol de IAM existente para utilizarlo con instancias de transmisión de WorkSpaces

En este tema se describe cómo configurar un rol de IAM existente para utilizarlo con WorkSpaces.

Requisitos previos 

El rol de IAM que desee utilizar con WorkSpaces debe cumplir los siguientes requisitos previos:

  • El rol de IAM debe estar en la misma cuenta de Amazon Web Services que la instancia de transmisión de WorkSpaces.

  • El rol de IAM no puede ser un rol de servicio.

  • La política de relación de confianza asociada al rol de IAM debe incluir el servicio de WorkSpaces como entidad principal. Una entidad principal es una entidad de AWS que puede realizar acciones y obtener acceso a los recursos. La política también debe incluir la acción sts:AssumeRole. Esta configuración de política define WorkSpaces como una entidad de confianza.

  • Si va a aplicar el rol de IAM a WorkSpaces, este servicio debe ejecutar una versión del agente de WorkSpaces publicada a partir del 3 de septiembre de 2019. Si va a aplicar el rol de IAM a WorkSpaces, este servicio debe utilizar una imagen que utilice una versión del agente publicada en la misma fecha o con posterioridad.

Habilitación de la entidad principal del servicio de WorkSpaces para que asuma un rol de IAM existente

Para realizar los siguientes pasos, debe iniciar sesión en la cuenta como un usuario de IAM que tenga los permisos necesarios para enumerar y actualizar los roles de IAM. Si no tiene los permisos necesarios, pida al administrador de su cuenta de Amazon Web Services que realice estos pasos en su cuenta o que le conceda los permisos requeridos.

  1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. Seleccione Roles en el panel de navegación.

  3. En la lista de roles de su cuenta, elija el nombre del rol que desee modificar.

  4. Elija la pestaña Relaciones de confianza y, a continuación, Editar relación de confianza.

  5. En Policy Document (Documento de política), compruebe que la política de relación de confianza incluya la acción sts:AssumeRole para la entidad principal del servicio workspaces.amazonaws.com:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "workspaces.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  6. Cuando haya terminado de editar la política de confianza, elija Update Trust Policy (Actualizar política de confianza) para guardar los cambios.

  7. El rol de IAM que haya seleccionado se mostrará en la consola de WorkSpaces. Este rol concede permisos a las aplicaciones y los scripts para realizar acciones de la API y tareas de administración en las instancias de streaming.

Cómo crear un rol de IAM para usarlo con instancias de transmisión de WorkSpaces

En este tema se describe cómo crear un nuevo rol de IAM para utilizarlo con WorkSpaces.

  1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación, seleccione Roles y luego seleccione Crear rol.

  3. En Seleccionar el tipo de entidad de confianza, elija Servicio de AWS.

  4. En la lista de servicios de AWS, elija WorkSpaces.

  5. En Seleccione su caso de uso, ya está seleccionada la opción WorkSpaces: permitir que las instancias de WorkSpaces llamen a los servicios de AWS en su nombre. Elija Siguiente: permisos.

  6. Si es posible, seleccione la política que desea utilizar para la política de permisos o elija Create policy (Crear política) para abrir una pestaña nueva del navegador y crear una política nueva desde cero. Para obtener más información, consulte el paso 4 del procedimiento Crear políticas de IAM (consola) en la Guía del usuario de IAM.

    Después de crear la política, cierre esa pestaña y vuelva a la pestaña original. Seleccione la casilla situada junto a las políticas de permisos que desea conceder a WorkSpaces.

  7. (Opcional) Configure un límite de permisos. Se trata de una característica avanzada que está disponible para los roles de servicio, pero no para los roles vinculados a servicios. Para obtener más información, consulte Límites de permisos para las entidades de IAM en la Guía del usuario de IAM.

  8. Elija Siguiente: etiquetas. Opcionalmente, puede asociar etiquetas como pares de clave-valor. Para obtener más información, consulte Etiquetado de usuarios y roles de IAM en la Guía del usuario de IAM.

  9. Elija Siguiente: Revisar.

  10. En Nombre de rol, escriba un nombre de rol único en su cuenta de Amazon Web Services. Dado que es posible que otros recursos de AWS hagan referencia al rol, no se puede editar el nombre del rol después de crearlo.

  11. En Role description (Descripción del rol), conserve la descripción del rol predeterminada o escriba una nueva.

  12. Revise el rol y, a continuación, elija Crear rol.

Cómo utilizar el rol de IAM con instancias de transmisión de WorkSpaces

Después de crear un rol de IAM, puede aplicarlo en WorkSpaces al iniciarlo. También puede aplicar un rol de IAM en los escritorios de WorkSpaces existentes.

Al aplicar un rol de IAM a WorkSpaces, WorkSpaces recupera las credenciales temporales y crea el perfil de credenciales workspaces_machine_role en la instancia. Las credenciales temporales son válidas durante 1 hora y las nuevas credenciales se recuperan cada hora. Las credenciales anteriores no vencen, por lo que puede utilizarlas mientras sean válidas. Puede utilizar el perfil de credenciales para llamar a los servicios de AWS mediante programación a través de la interfaz de la línea de comandos de la AWS (AWS CLI), las herramientas de AWS para PowerShell o el SDK de AWS con el lenguaje que prefiera.

Cuando realice llamadas a la API, especifique workspaces_machine_role como el perfil de credenciales. De lo contrario, la operación falla debido a los permisos insuficientes.

WorkSpaces asume el rol especificado mientras se aprovisiona la instancia de transmisión. Dado que WorkSpaces utiliza la interfaz de red elástica asociada a la VPC para las llamadas a la API de AWS, la aplicación o el script deben esperar a que la interfaz de red elástica esté disponible antes de realizar llamadas a la API de AWS. Si las llamadas a la API se realizan antes de que la interfaz de red elástica esté disponible, las llamadas fallan.

En los siguientes ejemplos se muestra cómo puede utilizar el perfil de credenciales workspaces_machine_role para describir las instancias de transmisión (instancias de EC2) y crear el cliente de Boto. Boto es el SDK de Amazon Web Services (AWS) para Python.

Describir las instancias de streaming (instancias EC2) mediante la AWS CLI

aws ec2 describe-instances --region us-east-1 --profile workspaces_machine_role

Describir las instancias de streaming (instancias EC2) mediante las herramientas de AWS para PowerShell

Debe utilizar AWS Tools for PowerShell versión 3.3.563.1 o posterior, con el SDK de Amazon Web Services para .NET versión 3.3.103.22 o posterior. Puede descargar el instalador de AWS Tools for Windows, que incluye AWS Tools for PowerShell y el SDK de Amazon Web Services para .NET, desde el sitio web de AWS Tools for PowerShell.

Get-EC2Instance -Region us-east-1 -ProfileName workspaces_machine_role

Creación del cliente de Boto mediante el SDK de AWS para Python

session = boto3.Session(profile_name=workspaces_machine_role')