

• El panel de AWS Systems Manager CloudWatch dejará de estar disponible después del 30 de abril de 2026. Los clientes pueden seguir utilizando la consola de Amazon CloudWatch para ver, crear y administrar sus paneles de Amazon CloudWatch, tal y como lo hacen actualmente. Para obtener más información, consulte la [documentación del panel de Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html). 

# Configuración de Session Manager
<a name="session-manager-getting-started"></a>

Antes de usar AWS Systems Manager Session Manager para conectarse a los nodos administrados de la cuenta, realice los pasos en los siguientes temas.

**Topics**
+ [Paso 1: completar los requisitos previos de Session Manager](session-manager-prerequisites.md)
+ [Paso 2: verificación o agregación de permisos de instancia para Session Manager](session-manager-getting-started-instance-profile.md)
+ [Paso 3: controlar el acceso de la sesión a los nodos administrados](session-manager-getting-started-restrict-access.md)
+ [Paso 4: configurar las preferencias de sesión](session-manager-getting-started-configure-preferences.md)
+ [Paso 5: (Opcional) Restringir el acceso a los comandos de una sesión](session-manager-restrict-command-access.md)
+ [Paso 6: (Opcional) Utilizar AWS PrivateLink para configurar un punto de enlace de la VPC para Session Manager](session-manager-getting-started-privatelink.md)
+ [Paso 7: (Opcional) Activar o desactivar los permisos administrativos de la cuenta ssm-user](session-manager-getting-started-ssm-user-permissions.md)
+ [Paso 8: (Opcional) Permitir y controlar permisos para conexiones de SSH mediante Session Manager](session-manager-getting-started-enable-ssh-connections.md)

# Paso 1: completar los requisitos previos de Session Manager
<a name="session-manager-prerequisites"></a>

Antes de utilizar Session Manager, asegúrese de que el entorno cumple los siguientes requisitos.


**Session ManagerRequisitos previos de**  

| Requisito | Descripción | 
| --- | --- | 
|  Sistemas operativos compatibles  |  Session Manager admite la conexión a instancias de Amazon Elastic Compute Cloud (Amazon EC2) y a equipos que no son de EC2 en su entorno [híbrido y multinube](operating-systems-and-machine-types.md#supported-machine-types) que utilizan el nivel de *instancias avanzadas*. Session Manager es compatible con las siguientes versiones de los sistemas operativos:  Session Manager admite instancias de EC2, dispositivos periféricos, servidores en las instalaciones y máquinas virtuales (VM) en su entorno [híbrido y multinube](operating-systems-and-machine-types.md#supported-machine-types) que utilizan el nivel de *instancias avanzadas*. Para obtener más información acerca de las instancias avanzadas, consulte [Configuración de los niveles de instancias](fleet-manager-configure-instance-tiers.md).   **Linux y **macOS****  Session Manager es compatible con todas las versiones de Linux y macOS que admite AWS Systems Manager. Para obtener más información, consulte [Sistemas operativos y tipos de equipos compatibles](operating-systems-and-machine-types.md).  ** Windows **  Session Manager admite Windows Server 2012 y versiones posteriores.  Microsoft Windows Server 2016 Nano no es compatible.   | 
|  SSM Agent  |  Como mínimo, debe estar instalada la versión 2.3.68.0 de AWS Systems Manager SSM Agent o una posterior en los nodos administrados a los que desee conectarse a través de sesiones.  Para utilizar la opción de cifrar los datos de la sesión con una clave creada en AWS Key Management Service (AWS KMS), el nodo administrado debe tener instalada la versión 2.3.539.0 de SSM Agent o una posterior.  Para utilizar perfiles de shell en una sesión, el nodo administrado debe tener instalada la versión 3.0.161.0 de SSM Agent o una posterior. Para iniciar una sesión de SSH o de reenvío de puertos de Session Manager, el nodo administrado debe tener instalada la versión 3.0.222.0 de SSM Agent o una posterior. Para transmitir datos de la sesión mediante los Registros de Amazon CloudWatch, el nodo administrado debe tener instalada la versión 3.0.284.0 de SSM Agent o una posterior. Para obtener información acerca de cómo determinar el número de versión que se ejecuta en una instancia, consulte [Verificación del número de versión de SSM Agent](ssm-agent-get-version.md). Para obtener más información acerca de la instalación manual o la actualización automática de SSM Agent, consulte [Uso de SSM Agent](ssm-agent.md).  Acerca de la cuenta ssm-user A partir de la versión 2.3.50.0 de SSM Agent, el agente crea una cuenta de usuario en el nodo administrado, con permisos raíz o de administrador, denominada `ssm-user`. (En las versiones anteriores a la 2.3.612.0, la cuenta se crea cuando SSM Agent se inicia o se reinicia. En la versión 2.3.612.0 y posteriores, la cuenta `ssm-user` se crea la primera vez que se inicia una sesión en el nodo administrado). Las sesiones se lanzan con las credenciales administrativas de esta cuenta de usuario. Para obtener más información acerca de cómo restringir el control administrativo para esta cuenta, consulte [Activación o desactivación de los permisos administrativos de la cuenta ssm-user](session-manager-getting-started-ssm-user-permissions.md).   ssm-user en controladores de dominio de Windows Server A partir de la versión 2.3.612.0 de SSM Agent, la cuenta `ssm-user` no se crea automáticamente en los nodos administrados que se utilizan como controladores de dominio de Windows Server. Para utilizar Session Manager en un equipo Windows Server que se utiliza como un controlador de dominio, debe crear la cuenta `ssm-user` de forma manual si ella aún no está presente y asignar permisos de administrador de dominio al usuario. En Windows Server, SSM Agent establece una nueva contraseña para la cuenta `ssm-user` cada vez que se inicia una sesión, por lo que no es necesario especificar ninguna contraseña cuando se crea la cuenta.   | 
|  Conectividad a puntos de enlace  |  Los nodos administrados a los que se conecta también deben permitir el tráfico saliente HTTPS (puerto 443) a los siguientes puntos de conexión: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/systems-manager/latest/userguide/session-manager-prerequisites.html) Para obtener más información, consulte los temas siguientes: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/systems-manager/latest/userguide/session-manager-prerequisites.html) Alternativamente, puede conectarse a los puntos de enlace necesarios mediante los puntos de enlace de la interfaz. Para obtener más información, consulte [Paso 6: (Opcional) Utilizar AWS PrivateLink para configurar un punto de enlace de la VPC para Session Manager](session-manager-getting-started-privatelink.md).  | 
|  AWS CLI  |  (Opcional) Si utiliza la AWS Command Line Interface (AWS CLI) para iniciar sus sesiones (en lugar de utilizar la consola de AWS Systems Manager o la consola de Amazon EC2), su equipo local debe tener instalada la versión 1.16.12 de la CLI o una posterior. Puede llamar a `aws --version` para comprobar la versión. Si necesita instalar o actualizar la CLI, consulte [Instalación de la AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) en la Guía del usuario de AWS Command Line Interface. Cada vez que se agregan herramientas nuevas a Systems Manager o se actualizan las herramientas existentes, se lanza una versión actualizada de SSM Agent. No utilizar la versión más reciente del agente puede impedir que el nodo administrado utilice diversas herramientas y características de Systems Manager. Por este motivo, se recomienda automatizar el proceso de mantener SSM Agent actualizado en los equipos. Para obtener más información, consulte [Automatización de las actualizaciones de SSM Agent](ssm-agent-automatic-updates.md). Suscríbase a la página [SSM Agent Release Notes](https://github.com/aws/amazon-ssm-agent/blob/mainline/RELEASENOTES.md) en GitHub para recibir notificaciones sobre las actualizaciones de SSM Agent. Además, si desea utilizar la CLI para administrar los nodos con Session Manager, debe instalar primero el complemento de Session Manager en su equipo local. Para obtener más información, consulte [Instalación del complemento de Session Manager para la AWS CLI](session-manager-working-with-install-plugin.md).  | 
|  Activación del nivel de instancias avanzadas (entornos [híbridos y multinube](operating-systems-and-machine-types.md#supported-machine-types))  |  Para conectarse a equipos que no son de EC2 mediante Session Manager, debe activar el nivel de instancias avanzadas en la Cuenta de AWS y la Región de AWS donde crea activaciones híbridas para registrar equipos que no son de EC2 como nodos administrados. El uso del nivel de instancias avanzadas conlleva un cargo. Para obtener más información acerca del nivel de instancias avanzadas, consulte [Configuración de los niveles de instancias](fleet-manager-configure-instance-tiers.md).  | 
|  Verificación de los permisos de rol de servicio de IAM (entornos [híbridos y multinube](operating-systems-and-machine-types.md#supported-machine-types))  |  Los nodos activados de manera híbrida utilizan el rol de servicio de AWS Identity and Access Management (IAM) especificado en la activación híbrida para comunicarse con las operaciones de la API de Systems Manager. Este rol de servicio debe contener los permisos necesarios para conectarse a los equipos [híbridos y multinube](operating-systems-and-machine-types.md#supported-machine-types) mediante Session Manager. Si el rol de servicio contiene la política administrada por AWS `AmazonSSMManagedInstanceCore`, ya se habrán proporcionado los permisos necesarios para Session Manager. Si descubre que el rol de servicio no contiene los permisos necesarios, debe anular el registro de la instancia administrada y registrarla con una nueva activación híbrida que utilice un rol de servicio de IAM con los permisos necesarios. Para obtener más información acerca de cómo se anula el registro de las instancias administradas, consulte [Anulación del registro de nodos administrados en un entorno híbrido y multinube](fleet-manager-deregister-hybrid-nodes.md). Para obtener más información sobre la creación de políticas de IAM con permisos de Session Manager, consulte [Paso 2: verificar o agregar permisos de instancia para Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started-instance-profile.html).  | 

# Paso 2: verificación o agregación de permisos de instancia para Session Manager
<a name="session-manager-getting-started-instance-profile"></a>

De forma predeterminada, AWS Systems Manager no tiene permiso para realizar acciones en sus instancias. Puede proporcionar permisos de instancia a nivel de cuenta mediante un rol de AWS Identity and Access Management (IAM) o a nivel de instancia mediante un perfil de instancia. Si su caso de uso lo permite, le recomendamos que conceda el acceso a nivel de cuenta mediante la configuración de administración de host predeterminada. Si ya completó la configuración de administración de host predeterminada para su cuenta mediante la política `AmazonSSMManagedEC2InstanceDefaultPolicy`, puede continuar con el siguiente paso. Para obtener más información sobre la configuración de administración de host predeterminada, consulte [Administración automática de instancias EC2 con la configuración de administración de hosts predeterminada](fleet-manager-default-host-management-configuration.md).

Como alternativa, puede usar perfiles de instancia para proporcionar los permisos necesarios a sus instancias. Un perfil de instancias pasa un rol de IAM a una instancia de Amazon EC2. Puede adjuntar un perfil de instancias de IAM a una instancia de Amazon EC2 en el momento de lanzarla, o bien, adjuntarlo a una instancia ya lanzada anteriormente. Para obtener más información, consulte [Uso de perfiles de instancia](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-usingrole-instanceprofile.html).

Para servidores en las instalaciones o máquinas virtuales, los permisos los proporciona el rol de servicio de IAM asociado a la activación híbrida utilizada para registrar los servidores en las instalaciones y las máquinas virtuales con Systems Manager. Los servidores locales y las máquinas virtuales no utilizan perfiles de instancia.

Si ya utiliza otras herramientas de Systems Manager, como Run Command o Parameter Store, es posible que ya se haya adjuntado a las instancias de Amazon EC2 un perfil de instancias con los permisos básicos necesarios para Session Manager. Si un perfil de instancias que contiene la política administrada por AWS `AmazonSSMManagedInstanceCore` ya se ha adjuntado a las instancias, los permisos necesarios para Session Manager ya se habrán proporcionado. Esto también aplica si el rol de servicio de IAM utilizado en la activación híbrida contiene la política administrada `AmazonSSMManagedInstanceCore`.

Sin embargo, en algunos casos, es posible que tenga que modificar los permisos asociados al perfil de instancia. Por ejemplo, si desea proporcionar un conjunto más limitado de permisos de instancia, si ha creado una política personalizada para su perfil de instancias o si desea utilizar el cifrado de Amazon Simple Storage Service (Amazon S3) o las opciones de cifrado de AWS Key Management Service (AWS KMS) para proteger los datos de la sesión. En estos casos, realice una de las siguientes operaciones para permitir que se realicen acciones de Session Manager en las instancias:
+  **Inserción de permisos de acciones de Session Manager en un rol de IAM personalizado** 

  Con el fin de agregar permisos para las acciones de Session Manager a un rol de IAM existente que no se base en la política predeterminada proporcionada por AWS `AmazonSSMManagedInstanceCore`, siga los pasos que se indican en [Adición de permisos de Session Manager a un rol de IAM existente](getting-started-add-permissions-to-existing-profile.md).
+  **Creación de un rol de IAM personalizado solo con permisos de Session Manager** 

  Para crear un rol de IAM que contenga permisos solo para las acciones de Session Manager, siga los pasos que se indican en [Creación de un rol de IAM personalizado para Session Manager](getting-started-create-iam-instance-profile.md).
+  **Creación y uso de un nuevo rol de IAM con permisos para todas las acciones de Systems Manager** 

  Para crear un rol de IAM para instancias administradas de Systems Manager que utilice una política predeterminada suministrada por AWS que conceda todos los permisos de Systems Manager, siga los pasos que se indican en [Configuración de permisos de instancia requeridos para Systems Manager](setup-instance-permissions.md).

**Topics**
+ [Adición de permisos de Session Manager a un rol de IAM existente](getting-started-add-permissions-to-existing-profile.md)
+ [Creación de un rol de IAM personalizado para Session Manager](getting-started-create-iam-instance-profile.md)

# Adición de permisos de Session Manager a un rol de IAM existente
<a name="getting-started-add-permissions-to-existing-profile"></a>

Utilice el siguiente procedimiento para agregar permisos de Session Manager a un rol de AWS Identity and Access Management (IAM) existente. Si agrega permisos a un rol existente, puede mejorar la seguridad de su entorno de computación sin tener que utilizar la política `AmazonSSMManagedInstanceCore` de AWS para los permisos de instancia.

**nota**  
Tenga en cuenta la siguiente información:  
Este procedimiento supone que el rol existente ya incluye otros permisos `ssm` de Systems Manager para las acciones a las que desea permitir el acceso. Esta política sola no es suficiente para utilizar Session Manager.
El siguiente ejemplo de política incluye una acción `s3:GetEncryptionConfiguration`. Esta acción es necesaria si elige la opción **Ejecutar cifrado de registros de S3** en las preferencias de registro de Session Manager.
Si se elimina el permiso `ssmmessages:OpenControlChannel` de las políticas asociadas a su perfil de instancia de IAM o al rol de servicio de IAM, el SSM Agent del nodo administrado pierde la conectividad con el servicio de Systems Manager en la nube. No obstante, después de que se elimina el permiso, puede pasar hasta 1 hora hasta que la conexión finaliza. Es el mismo comportamiento que cuando se elimina el rol de instancia de IAM o el rol de servicio de IAM.

**Para agregar permisos de Session Manager a un rol existente (consola)**

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/](https://console.aws.amazon.com/iam/).

1. Seleccione **Roles** en el panel de navegación.

1. Elija el nombre del rol al que le va a agregar los permisos.

1. Elija la pestaña **Permisos**.

1. Elija **Agregar permisos** y, a continuación, seleccione **Crear política insertada**.

1. Seleccione la pestaña **JSON**.

1. Reemplace la política predeterminada por el siguiente contenido. Reemplace *key-name* por el nombre de recurso de Amazon (ARN) de la clave de AWS Key Management Service (AWS KMS key) que desee utilizar.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ssmmessages:CreateControlChannel",
                   "ssmmessages:CreateDataChannel",
                   "ssmmessages:OpenControlChannel",
                   "ssmmessages:OpenDataChannel"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:GetEncryptionConfiguration"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-name"
           }
       ]
   }
   ```

------

   Para obtener más información acerca de cómo utilizar una clave de KMS para cifrar los datos de la sesión, consulte [Activación del cifrado de datos de sesión con claves de KMS (consola)](session-preferences-enable-encryption.md).

   Si no va a usar el cifrado de AWS KMS para los datos de la sesión, puede eliminar el siguiente contenido de la política.

   ```
   ,
           {
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt"
               ],
               "Resource": "key-name"
           }
   ```

1. Elija **Siguiente: etiquetas**.

1. (Opcional) Para agregar etiquetas, elija **Add tag** (Agregar etiqueta) e ingrese las etiquetas preferidas para la política.

1. Elija **Siguiente: Revisar**.

1. En la página **Review Policy (Revisar política)**, en **Name (Nombre)**, escriba un nombre para la política insertada, como **SessionManagerPermissions**.

1. (Opcional) En **Descripción**, escriba una descripción para la política. 

   Elija **Crear política**.

Para obtener información acerca de las acciones `ssmmessages`, consulte [Referencia: ec2messages, ssmmessages y otras operaciones de la API](systems-manager-setting-up-messageAPIs.md).

# Creación de un rol de IAM personalizado para Session Manager
<a name="getting-started-create-iam-instance-profile"></a>

Puede crear un rol de AWS Identity and Access Management (IAM) que conceda a Session Manager el permiso para realizar acciones en las instancias administradas de Amazon EC2. Además, puede incluir una política para conceder los permisos necesarios para los registros de la sesión que se enviarán a Amazon Simple Storage Service (Amazon S3) y a los Registros de Amazon CloudWatch.

Después de crear el rol de IAM, para obtener información sobre cómo adjuntar el rol a una instancia, consulte [Adjuntar o reemplazar un perfil de instancia](https://aws.amazon.com/premiumsupport/knowledge-center/attach-replace-ec2-instance-profile/) en el sitio web de AWS re:Post. Para obtener más información sobre los roles y los perfiles de instancia de IAM, consulte [Uso de perfiles de instancia](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) en la *Guía del usuario de IAM* y [Roles de IAM para Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html) en la *Guía del usuario de instancias de Linux de Amazon Elastic Compute Cloud*. Para obtener más información sobre cómo crear un rol de servicio de IAM para equipos locales, consulte [Creación del rol de servicio de IAM requerido para Systems Manager en entornos híbridos y multinube](https://docs.aws.amazon.com/systems-manager/latest/userguide/hybrid-multicloud-service-role.html).

**Topics**
+ [Creación de un rol de IAM con permisos mínimos de Session Manager (consola)](#create-iam-instance-profile-ssn-only)
+ [Creación de un rol de IAM con permisos para Session Manager, Amazon S3 y los Registros de CloudWatch (consola)](#create-iam-instance-profile-ssn-logging)

## Creación de un rol de IAM con permisos mínimos de Session Manager (consola)
<a name="create-iam-instance-profile-ssn-only"></a>

Utilice el siguiente procedimiento para crear un rol de IAM personalizado con una política que proporcione permisos solo para acciones de Session Manager en las instancias.

**Para crear un perfil de instancia con permisos mínimos de Session Manager (consola)**

1. Inicie sesión en Consola de administración de AWS y abra la consola IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de navegación, seleccione **Políticas** y, a continuación, **Crear política**. (Si aparece el botón **Get Started** [Comenzar], elíjalo y, a continuación, elija **Create Policy** [Crear política]).

1. Seleccione la pestaña **JSON**.

1. Reemplace el contenido predeterminado por la siguiente política. Para cifrar los datos de la sesión mediante AWS Key Management Service (AWS KMS), reemplace *key-name* por el nombre de recurso de Amazon (ARN) de AWS KMS key que desea utilizar.
**nota**  
Si se elimina el permiso `ssmmessages:OpenControlChannel` de las políticas asociadas a su perfil de instancia de IAM o al rol de servicio de IAM, el SSM Agent del nodo administrado pierde la conectividad con el servicio de Systems Manager en la nube. No obstante, después de que se elimina el permiso, puede pasar hasta 1 hora hasta que la conexión finaliza. Es el mismo comportamiento que cuando se elimina el rol de instancia de IAM o el rol de servicio de IAM.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ssm:UpdateInstanceInformation",
                   "ssmmessages:CreateControlChannel",
                   "ssmmessages:CreateDataChannel",
                   "ssmmessages:OpenControlChannel",
                   "ssmmessages:OpenDataChannel"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-name"
           }
       ]
   }
   ```

------

   Para obtener más información acerca de cómo utilizar una clave de KMS para cifrar los datos de la sesión, consulte [Activación del cifrado de datos de sesión con claves de KMS (consola)](session-preferences-enable-encryption.md).

   Si no va a usar el cifrado de AWS KMS para los datos de la sesión, puede eliminar el siguiente contenido de la política.

   ```
   ,
           {
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt"
               ],
               "Resource": "key-name"
           }
   ```

1. Elija **Siguiente: etiquetas**.

1. (Opcional) Para agregar etiquetas, elija **Add tag** (Agregar etiqueta) e ingrese las etiquetas preferidas para la política.

1. Elija **Siguiente: Revisar**.

1. En la página **Review Policy (Revisar política)**, en **Name (Nombre)**, escriba un nombre para la política insertada, como **SessionManagerPermissions**.

1. (Opcional) En **Descripción**, escriba una descripción para la política. 

1. Elija **Crear política**.

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

1. En la página **Create role** (Crear un rol), elija **AWS service** (Servicio de ), y en **Use case** (Caso de uso) elija **EC2**.

1. Elija **Siguiente**.

1. En la página **Add permissions** (Agregar permisos), seleccione la casilla de verificación situada a la izquierda del nombre de la política que acaba de crear, como **SessionManagerPermissions**.

1. Elija **Siguiente**.

1. En la página **Name, review, and create** (Asignar nombre, revisar y crear), en **Role name** (Nombre de rol), ingrese un nombre para el rol de IAM, como **MySessionManagerRole**.

1. (Opcional) En **Role description (Descripción del rol)**, escriba una descripción para el perfil de instancia. 

1. (Opcional) Para agregar etiquetas, elija **Add tag** (Agregar etiqueta) e ingrese las etiquetas preferidas para el rol.

   Elija **Creación de rol**.

Para obtener información acerca de las acciones `ssmmessages`, consulte [Referencia: ec2messages, ssmmessages y otras operaciones de la API](systems-manager-setting-up-messageAPIs.md).

## Creación de un rol de IAM con permisos para Session Manager, Amazon S3 y los Registros de CloudWatch (consola)
<a name="create-iam-instance-profile-ssn-logging"></a>

Utilice el siguiente procedimiento para crear un rol de IAM personalizado con una política que proporcione permisos para acciones de Session Manager en las instancias. La política también proporciona los permisos necesarios para que los registros de la sesión se almacenen en buckets de Amazon Simple Storage Service (Amazon S3) y en grupos de registros de los Registros de Amazon CloudWatch.

**importante**  
Para enviar registros de sesión a un bucket de Amazon S3 que pertenezca a otra Cuenta de AWS, debe agregar el permiso `s3:PutObjectAcl` a la política de rol de IAM. Además, debe asegurarse de que la política de bucket conceda acceso entre cuentas al rol de IAM utilizado por la cuenta propietaria para conceder permisos de Systems Manager para instancias administradas. Si el bucket utiliza el cifrado de Key Management Service (KMS), la política de KMS del bucket también debe conceder este acceso entre cuentas. Para obtener más información sobre cómo configurar permisos de bucket entre cuentas en Amazon S3, consulte [Concesión de permisos de bucket entre cuentas](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-walkthroughs-managing-access-example2.html) en la *Guía del usuario de Amazon Simple Storage Service*. Si no se agregan estos permisos entre cuentas, la cuenta que posee el bucket de Amazon S3 no podrá acceder a los registros de salida de la sesión.

Para obtener información acerca de cómo especificar preferencias para almacenar los registros de sesiones, consulte [Habilitar y deshabilitar el registro de la sesión](session-manager-logging.md).

**Para crear un rol de IAM con permisos para Session Manager, Amazon S3 y los Registros de CloudWatch (consola)**

1. Inicie sesión en Consola de administración de AWS y abra la consola IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de navegación, seleccione **Políticas** y, a continuación, **Crear política**. (Si aparece el botón **Get Started** [Comenzar], elíjalo y, a continuación, elija **Create Policy** [Crear política]).

1. Seleccione la pestaña **JSON**.

1. Reemplace el contenido predeterminado por la siguiente política. Reemplace cada *example resource placeholder* por su propia información.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ssmmessages:CreateControlChannel",
                   "ssmmessages:CreateDataChannel",
                   "ssmmessages:OpenControlChannel",
                   "ssmmessages:OpenDataChannel",
                   "ssm:UpdateInstanceInformation"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "logs:CreateLogStream",
                   "logs:PutLogEvents",
                   "logs:DescribeLogGroups",
                   "logs:DescribeLogStreams"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:PutObject"
               ],
               "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/s3-prefix/*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:GetEncryptionConfiguration"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt"
               ],
               "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-name"
           },
           {
               "Effect": "Allow",
               "Action": "kms:GenerateDataKey",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Elija **Siguiente: etiquetas**.

1. (Opcional) Para agregar etiquetas, elija **Add tag** (Agregar etiqueta) e ingrese las etiquetas preferidas para la política.

1. Elija **Siguiente: Revisar**.

1. En la página **Review Policy (Revisar política)**, en **Name (Nombre)**, escriba un nombre para la política insertada, como **SessionManagerPermissions**.

1. (Opcional) En **Descripción**, escriba una descripción para la política. 

1. Elija **Crear política**.

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

1. En la página **Create role** (Crear un rol), elija **AWS service** (Servicio de ), y en **Use case** (Caso de uso) elija **EC2**.

1. Elija **Siguiente**.

1. En la página **Add permissions** (Agregar permisos), seleccione la casilla de verificación situada a la izquierda del nombre de la política que acaba de crear, como **SessionManagerPermissions**.

1. Elija **Siguiente**.

1. En la página **Name, review, and create** (Asignar nombre, revisar y crear), en **Role name** (Nombre de rol), ingrese un nombre para el rol de IAM, como **MySessionManagerRole**.

1. (Opcional) En **Role description** (Descripción del rol), ingrese una descripción para el rol. 

1. (Opcional) Para agregar etiquetas, elija **Add tag** (Agregar etiqueta) e ingrese las etiquetas preferidas para el rol.

1. Elija **Creación de rol**.

# Paso 3: controlar el acceso de la sesión a los nodos administrados
<a name="session-manager-getting-started-restrict-access"></a>

Puede conceder o revocar el acceso a Session Manager de los nodos administrados mediante políticas de AWS Identity and Access Management (IAM). Puede crear una política y adjuntarla a un grupo o usuario de IAM que especifique a qué nodos administrados se puede conectar el grupo o el usuario. También puede especificar las operaciones de la API de Session Manager que el usuario o los grupos pueden realizar en esos nodos administrados. 

Para ayudarlo a empezar a utilizar las políticas de permisos de IAM para Session Manager, creamos ejemplos de políticas para un usuario final y un usuario administrador. Puede utilizar estas políticas solo con cambios pequeños. O utilícelas como guía para crear políticas de IAM personalizadas. Para obtener más información, consulte [Ejemplos de políticas de IAM para Session Manager](getting-started-restrict-access-quickstart.md). Para obtener información acerca de cómo crear políticas de IAM y adjuntarlas a usuarios o grupos, consulte [Creación de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) y [Adición y eliminación de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) en la *Guía del usuario de IAM*.

**Acerca de los formatos de ARN de ID de sesión**  
Cuando cree una política de IAM para el acceso a Session Manager, especifique un ID de sesión como parte del nombre de recurso de Amazon (ARN). El ID de la sesión incluye el nombre de usuario como variable. Para ayudar a ilustrarlo, este es el formato de un ARN de Session Manager y un ejemplo: 

```
arn:aws:ssm:region-id:account-id:session/session-id
```

Por ejemplo:

```
arn:aws:ssm:us-east-2:123456789012:session/JohnDoe-1a2b3c4d5eEXAMPLE
```

Para obtener más información acerca del uso de variables en políticas de IAM, consulte [Elementos de la política de IAM: variables](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html). 

**Topics**
+ [Inicio de una sesión de intérprete de comandos predeterminada mediante la especificación del documento de sesión predeterminado en las políticas de IAM](getting-started-default-session-document.md)
+ [Inicio de una sesión con un documento mediante la especificación de los documentos de sesión en las políticas de IAM](getting-started-specify-session-document.md)
+ [Ejemplos de políticas de IAM para Session Manager](getting-started-restrict-access-quickstart.md)
+ [Políticas de IAM de ejemplo adicionales para Session Manager](getting-started-restrict-access-examples.md)

# Inicio de una sesión de intérprete de comandos predeterminada mediante la especificación del documento de sesión predeterminado en las políticas de IAM
<a name="getting-started-default-session-document"></a>

Cuando configura Session Manager para su Cuenta de AWS o cambia las preferencias de sesión en la consola de Systems Manager, el sistema crea un documento de sesión SSM llamado `SSM-SessionManagerRunShell`. Es el documento de sesión predeterminado. Session Manager utiliza este documento para almacenar las preferencias de sesión, que incluyen información como la siguiente:
+ Una ubicación en la que desee guardar los datos de la sesión, como un bucket de Amazon Simple Storage Service (Amazon S3) o un grupo de registro de Registros de Amazon CloudWatch.
+ Un ID de clave de AWS Key Management Service (AWS KMS) para cifrar los datos de la sesión.
+ Si se permite el soporte Ejecutar como para las sesiones.

A continuación, se incluye un ejemplo de la información incluida en el documento de preferencias de sesión denominado `SSM-SessionManagerRunShell`.

```
{
  "schemaVersion": "1.0",
  "description": "Document to hold regional settings for Session Manager",
  "sessionType": "Standard_Stream",
  "inputs": {
    "s3BucketName": "amzn-s3-demo-bucket",
    "s3KeyPrefix": "MyS3Prefix",
    "s3EncryptionEnabled": true,
    "cloudWatchLogGroupName": "MyCWLogGroup",
    "cloudWatchEncryptionEnabled": false,
    "kmsKeyId": "1a2b3c4d",
    "runAsEnabled": true,
    "runAsDefaultUser": "RunAsUser"
  }
}
```

De forma predeterminada, Session Manager utiliza el documento de sesión predeterminado cuando un usuario inicia una sesión desde la Consola de administración de AWS. Esto se aplica a Fleet Manager o Session Manager en la consola de Systems Manager o a EC2 Connect en la consola de Amazon EC2. Además, Session Manager utiliza el documento de sesión predeterminado cuando un usuario inicia una sesión mediante un comando de la AWS CLI, como el siguiente:

```
aws ssm start-session \
    --target i-02573cafcfEXAMPLE
```

Para iniciar una sesión de intérprete de comandos predeterminada, debe especificar el documento de la sesión predeterminada en la política de IAM, tal como se muestra en el siguiente ejemplo.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "EnableSSMSession",
      "Effect": "Allow",
      "Action": [
        "ssm:StartSession"
      ],
      "Resource": [
        "arn:aws:ec2:us-east-1:111122223333:instance/instance-id",
        "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "ssmmessages:OpenDataChannel"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
```

------

# Inicio de una sesión con un documento mediante la especificación de los documentos de sesión en las políticas de IAM
<a name="getting-started-specify-session-document"></a>

Si utiliza el comando de la AWS CLI [start-session](https://docs.aws.amazon.com/cli/latest/reference/ssm/start-session.html) con el documento de sesión predeterminado, puede omitir el nombre del documento. El sistema llama de manera automática al documento de sesión `SSM-SessionManagerRunShell`.

En los demás casos, debe especificar un valor para el parámetro `document-name`. Cuando un usuario especifica el nombre de un documento de sesión en un comando, el sistema comprueba su política de IAM para verificar que tiene permiso para acceder al documento. Si no tiene permiso, se produce un error en la solicitud de conexión. Los siguientes ejemplos incluyen el parámetro `document-name` con el documento de sesión `AWS-StartPortForwardingSession`.

```
aws ssm start-session \
    --target i-02573cafcfEXAMPLE \
    --document-name AWS-StartPortForwardingSession \
    --parameters '{"portNumber":["80"], "localPortNumber":["56789"]}'
```

Para ver un ejemplo acerca de cómo se especifica un documento de sesión de Session Manager en una política de IAM, consulte [Políticas de usuarios finales de inicio rápido de Session Manager](getting-started-restrict-access-quickstart.md#restrict-access-quickstart-end-user).

**nota**  
Para iniciar una sesión con SSH, los pasos de configuración deben completarse en el nodo administrado de destino *y* en la máquina local del usuario. Para obtener información, consulte [(Opcional) Permitir y controlar permisos para conexiones de SSH mediante Session Manager](session-manager-getting-started-enable-ssh-connections.md).

# Ejemplos de políticas de IAM para Session Manager
<a name="getting-started-restrict-access-quickstart"></a>

Utilice las muestras de esta sección para que lo ayuden a crear políticas de AWS Identity and Access Management (IAM) que proporcionen los permisos que se necesitan más a menudo para acceder a Session Manager. 

**nota**  
También puede utilizar una política de AWS KMS key para controlar qué entidades de IAM (usuarios o roles) y Cuentas de AWS tienen acceso a su clave de KMS. Para obtener información, consulte [Información general sobre la administración del acceso a sus recursos de AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/control-access-overview.html) y [Uso de políticas de claves en AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) en la *Guía para desarrolladores de AWS Key Management Service*.

**Topics**
+ [Políticas de usuarios finales de inicio rápido de Session Manager](#restrict-access-quickstart-end-user)
+ [Política de administradores de inicio rápido para Session Manager](#restrict-access-quickstart-admin)

## Políticas de usuarios finales de inicio rápido de Session Manager
<a name="restrict-access-quickstart-end-user"></a>

Utilice los siguientes ejemplos para crear políticas de usuario final de IAM para Session Manager. 

Puede crear una política que permita a los usuarios iniciar sesiones únicamente desde la consola de Session Manager, la AWS Command Line Interface (AWS CLI), la consola de Amazon Elastic Compute Cloud (Amazon EC2) o desde las tres.

Estas políticas proporcionan a los usuarios finales la capacidad de iniciar una sesión en un nodo administrado particular y de terminar solo sus propias sesiones. Consulte [Políticas de IAM de ejemplo adicionales para Session Manager](getting-started-restrict-access-examples.md) para ver ejemplos de personalizaciones recomendadas para aplicar en la política.

En las siguientes políticas de ejemplo, reemplace cada *example resource placeholder* por su propia información. 

Elija una de las siguientes pestañas para ver la política de ejemplo correspondiente al rango de acceso a la sesión que desea proporcionar.

------
#### [ Administrador de sesiones and Fleet Manager ]

Utilice este ejemplo de política para brindar a los usuarios la capacidad de iniciar y continuar sesiones solo desde las consolas Session Manager y Fleet Manager. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:111122223333:instance/i-02573cafcfEXAMPLE",
                "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell"
            ]
        },
        {
         "Effect": "Allow",
         "Action": ["ssmmessages:OpenDataChannel"],
         "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"]
       },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:DescribeSessions",
                "ssm:GetConnectionStatus",
                "ssm:DescribeInstanceProperties",
                "ec2:DescribeInstances"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:TerminateSession",
                "ssm:ResumeSession"
            ],
            "Resource": [
                "arn:aws:ssm:*:*:session/${aws:userid}-*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-name"
        }
    ]
}
```

------

------
#### [ Amazon EC2 ]

Utilice este ejemplo de política para brindar a los usuarios la capacidad de iniciar y continuar sesiones solo desde la consola de Amazon EC2. Esta política no proporciona todos los permisos necesarios para iniciar sesiones desde la consola de Session Manager y la AWS CLI.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession",
                "ssm:SendCommand"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:111122223333:instance/i-02573cafcfEXAMPLE",
                "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell"
            ]
        },
        {
         "Effect": "Allow",
         "Action": ["ssmmessages:OpenDataChannel"],
         "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"]
       },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetConnectionStatus",
                "ssm:DescribeInstanceInformation"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:TerminateSession",
                "ssm:ResumeSession"
            ],
            "Resource": [
                "arn:aws:ssm:*:*:session/${aws:username}-*"
            ]
        }
    ]
}
```

------

------
#### [ AWS CLI ]

Utilice este ejemplo de política para brindar a los usuarios la capacidad de iniciar y continuar sesiones solo desde AWS CLI.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession",
                "ssm:SendCommand"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:111122223333:instance/i-02573cafcfEXAMPLE",
                "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell"
            ]
        },
        {
         "Effect": "Allow",
         "Action": ["ssmmessages:OpenDataChannel"],
         "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"]
       },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:TerminateSession",
                "ssm:ResumeSession"
            ],
            "Resource": [
                "arn:aws:ssm:*:*:session/${aws:userid}-*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-name"
        }
    ]
}
```

------

------

**nota**  
`SSM-SessionManagerRunShell` es el nombre predeterminado del documento de SSM que Session Manager crea para almacenar sus preferencias de configuración de la sesión. En cambio, puede crear un documento de Session personalizado y especificarlo en esta política. También puede especificar el documento proporcionado por AWS `AWS-StartSSHSession` para los usuarios que inician sesiones mediante SSH. Para obtener más información acerca de los pasos de configuración necesarios para admitir sesiones mediante SSH, consulte [(Opcional) Permitir y controlar permisos para conexiones de SSH a través de Session Manager](session-manager-getting-started-enable-ssh-connections.md).  
El permiso `kms:GenerateDataKey` le permite crear una clave de cifrado de datos que se utilizará para cifrar los datos de la sesión. Si va a usar el cifrado de AWS Key Management Service (AWS KMS) para los datos de la sesión, sustituya *key-name* por el nombre de recurso de Amazon (ARN) de la clave de KMS que desee utilizar, con el formato `arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-12345EXAMPLE`. Si no va a usar el cifrado de claves de KMS para sus datos de sesión, elimine el siguiente contenido de la política.  

```
{
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey"
            ],
            "Resource": "key-name"
        }
```
Para obtener más información acerca del uso de AWS KMS para cifrar los datos de la sesión, consulte [Activación del cifrado de datos de sesión con claves de KMS (consola)](session-preferences-enable-encryption.md).  
El permiso para [https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_SendCommand.html](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_SendCommand.html) es necesario para los casos en que un usuario intente iniciar una sesión desde la consola Amazon EC2, pero primero debe actualizar SSM Agent a la versión mínima requerida para Session Manager. Run Command se utiliza para enviar un comando a la instancia para actualizar el agente.

## Política de administradores de inicio rápido para Session Manager
<a name="restrict-access-quickstart-admin"></a>

Utilice los siguientes ejemplos para crear políticas de administrador de IAM para Session Manager. 

Estas políticas proporcionan a los administradores la capacidad de iniciar una sesión en los nodos administrados que están etiquetados con `Key=Finance,Value=WebServers`, el permiso para crear, actualizar y eliminar las preferencias de los usuarios y el permiso para terminar únicamente sus propias sesiones. Consulte [Políticas de IAM de ejemplo adicionales para Session Manager](getting-started-restrict-access-examples.md) para ver ejemplos de personalizaciones recomendadas para aplicar en la política.

Puede crear una política que permita a los administradores realizar estas tareas únicamente desde la consola de Session Manager, la AWS CLI, la consola de Amazon EC2 o desde las tres.

En las siguientes políticas de ejemplo, reemplace cada *example resource placeholder* por su propia información. 

Elija una de las siguientes pestañas para ver el ejemplo de política para el escenario de acceso que desea admitir.

------
#### [ Administrador de sesiones and CLI ]

Utilice este ejemplo de política para brindar a los administradores la capacidad de llevar a cabo las tareas relacionadas con la sesión solo desde la consola de Session Manager y la AWS CLI. Esta política no proporciona todos los permisos necesarios para realizar las tareas relacionadas con la sesión desde la consola de Amazon EC2.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession"
            ],
            "Resource": [
                "arn:aws:ec2:*:111122223333:instance/*"
            ],
            "Condition": {
                "StringLike": {
                    "ssm:resourceTag/Finance": [
                        "WebServers"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssmmessages:OpenDataChannel"
            ],
            "Resource": [
                "arn:aws:ssm:*:*:session/${aws:userid}-*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:DescribeSessions",
                "ssm:GetConnectionStatus",
                "ssm:DescribeInstanceProperties",
                "ec2:DescribeInstances"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:CreateDocument",
                "ssm:UpdateDocument",
                "ssm:GetDocument",
                "ssm:StartSession"
            ],
            "Resource": "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssmmessages:OpenDataChannel"
            ],
            "Resource": [
                "arn:aws:ssm:*:*:session/${aws:userid}-*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:TerminateSession",
                "ssm:ResumeSession"
            ],
            "Resource": [
                "arn:aws:ssm:*:*:session/${aws:userid}-*"
            ]
        }
    ]
}
```

------

------
#### [ Amazon EC2 ]

Utilice este ejemplo de política para brindar a los administradores la capacidad de llevar a cabo tareas relacionadas con la sesión solo desde la consola de Amazon EC2. Esta política no proporciona todos los permisos necesarios para realizar tareas relacionadas con la sesión desde la consola de Session Manager y la AWS CLI.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession",
                "ssm:SendCommand"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:111122223333:instance/*"
            ],
            "Condition": {
                "StringLike": {
                    "ssm:resourceTag/tag-key": [
                        "tag-value"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession"
            ],
            "Resource": [
                "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell"
            ]
        },
        {
         "Effect": "Allow",
         "Action": ["ssmmessages:OpenDataChannel"],
         "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"]
       },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetConnectionStatus",
                "ssm:DescribeInstanceInformation"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:TerminateSession",
                "ssm:ResumeSession"
            ],
            "Resource": [
                "arn:aws:ssm:*:*:session/${aws:userid}-*"
            ]
        }
    ]
}
```

------

------
#### [ Administrador de sesiones, CLI, and Amazon EC2 ]

Utilice este ejemplo de política para brindar a los administradores la capacidad de llevar a cabo tareas relacionadas con la sesión desde la consola de Session Manager, la AWS CLI y la consola de Amazon EC2.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession",
                "ssm:SendCommand"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:111122223333:instance/*"
            ],
            "Condition": {
                "StringLike": {
                    "ssm:resourceTag/tag-key": [
                        "tag-value"
                    ]
                }
            }
        },
        {
         "Effect": "Allow",
         "Action": ["ssmmessages:OpenDataChannel"],
         "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"]
       },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:DescribeSessions",
                "ssm:GetConnectionStatus",
                "ssm:DescribeInstanceInformation",
                "ssm:DescribeInstanceProperties",
                "ec2:DescribeInstances"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:CreateDocument",
                "ssm:UpdateDocument",
                "ssm:GetDocument",
                "ssm:StartSession"
            ],
            "Resource": "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:TerminateSession",
                "ssm:ResumeSession"
            ],
            "Resource": [
                "arn:aws:ssm:*:*:session/${aws:userid}-*"
            ]
        }
    ]
}
```

------

------

**nota**  
El permiso para [https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_SendCommand.html](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_SendCommand.html) es necesario en aquellos casos en los que un usuario intenta iniciar una sesión desde la consola de Amazon EC2, pero antes se debe enviar un comando para actualizar SSM Agent.

# Políticas de IAM de ejemplo adicionales para Session Manager
<a name="getting-started-restrict-access-examples"></a>

Consulte los siguientes ejemplos de políticas para crear una política de AWS Identity and Access Management (IAM) personalizada para todos los escenarios de acceso de usuarios a Session Manager que desee admitir.

**Topics**
+ [Ejemplo 1: conceder acceso a documentos en la consola](#grant-access-documents-console-example)
+ [Ejemplo 2: restringir el acceso a nodos administrados específicos](#restrict-access-example-instances)
+ [Ejemplo 3: restringir el acceso en función de etiquetas](#restrict-access-example-instance-tags)
+ [Ejemplo 4: permitir a un usuario finalizar solo las sesiones que inició](#restrict-access-example-user-sessions)
+ [Ejemplo 5: permitir acceso completo (administrativo) a todas las sesiones](#restrict-access-example-full-access)

## Ejemplo 1: conceder acceso a documentos en la consola
<a name="grant-access-documents-console-example"></a>

Puede permitir que los usuarios especifiquen un documento personalizado cuando inician una sesión mediante la consola del administrador de sesiones. El siguiente ejemplo de política de IAM concede permiso para acceder a documentos con nombres que comiencen con **SessionDocument-** en la Región de AWS y la Cuenta de AWS especificadas.

Para utilizar esta política, reemplace cada *example-resource-placeholder* con su propia información.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetDocument",
                "ssm:ListDocuments"
            ],
            "Resource": [
                "arn:aws:ssm:us-east-1:111122223333:document/SessionDocument-*"
            ]
        }
    ]
}
```

------

**nota**  
La consola del administrador de sesiones solo admite documentos de sesión que tienen un `sessionType` de `Standard_Stream`, los cuales se utilizan para definir las preferencias de sesión. Para obtener más información, consulte [Esquema del documento de Session](session-manager-schema.md).

## Ejemplo 2: restringir el acceso a nodos administrados específicos
<a name="restrict-access-example-instances"></a>

Puede crear una política de IAM que defina a qué nodos administrados puede conectarse un usuario mediante Administrador de sesiones. Por ejemplo, la siguiente política otorga al usuario el permiso para iniciar, finalizar y reanudar sus sesiones en tres nodos específicos. La política impide que el usuario se conecte a nodos distintos de los especificados.

**nota**  
Para los usuarios federados, consulte [Ejemplo 4: permitir a un usuario finalizar solo las sesiones que inició](#restrict-access-example-user-sessions).

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:111122223333:instance/i-1234567890EXAMPLE",
                "arn:aws:ec2:us-east-1:111122223333:instance/i-abcdefghijEXAMPLE",
                "arn:aws:ec2:us-east-1:111122223333:instance/i-0e9d8c7b6aEXAMPLE",
                "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell"
            ]
        },
        {
         "Effect": "Allow",
         "Action": ["ssmmessages:OpenDataChannel"],
         "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"]
       },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:TerminateSession",
                "ssm:ResumeSession"
            ],
            "Resource": [
                "arn:aws:ssm:*:*:session/${aws:userid}-*"
            ]
        },
        {
         "Effect": "Allow",
         "Action": ["ssmmessages:OpenDataChannel"],
         "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"]
       }
    ]
}
```

------

## Ejemplo 3: restringir el acceso en función de etiquetas
<a name="restrict-access-example-instance-tags"></a>

Puede restringir el acceso a nodos administrados en función de etiquetas específicas. En el siguiente ejemplo, el usuario tiene permitido iniciar y reanudar sesiones (`Effect: Allow, Action: ssm:StartSession, ssm:ResumeSession`) en cualquier nodo administrado (`Resource: arn:aws:ec2:region:987654321098:instance/*`) con la condición de que el nodo sea un servidor web de finanzas (`ssm:resourceTag/Finance: WebServer`). Si el usuario envía un comando a un nodo administrado que no está etiquetado o que tiene alguna etiqueta que no sea `Finance: WebServer`, el resultado del comando incluirá `AccessDenied`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession"
            ],
            "Resource": [
                "arn:aws:ec2:us-east-1:111122223333:instance/*"
            ],
            "Condition": {
                "StringLike": {
                    "ssm:resourceTag/Finance": [
                        "WebServers"
                    ]
                }
            }
        },
        {
         "Effect": "Allow",
         "Action": ["ssmmessages:OpenDataChannel"],
         "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"]
       },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:TerminateSession",
                "ssm:ResumeSession"
            ],
            "Resource": [
                "arn:aws:ssm:*:*:session/${aws:userid}-*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession"
            ],
            "Resource": [
                "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell"
            ]
        }
    ]
}
```

------

Puede crear políticas de IAM que permitan al usuario iniciar sesiones en los nodos administrados que tengan varias etiquetas. La siguiente política permite al usuario iniciar sesiones en nodos administrados que tengan las dos etiquetas especificadas aplicadas. Si un usuario envía un comando a un nodo administrado que no está etiquetado con estas dos etiquetas, el resultado del comando incluirá `AccessDenied`.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "ssm:StartSession"
         ],
         "Resource":"*",
         "Condition":{
            "StringLike":{
               "ssm:resourceTag/tag-key1":[
                  "tag-value1"
               ],
               "ssm:resourceTag/tag-key2":[
                  "tag-value2"
               ]
            }
         }
      },
      {
         "Effect": "Allow",
         "Action": ["ssmmessages:OpenDataChannel"],
         "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"]
       },
      {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession"
            ],
            "Resource": [
                "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell"
            ]
      }
   ]
}
```

------

Para obtener más información acerca de la creación de políticas de IAM, consulte [Políticas administradas y políticas insertadas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html) en la *Guía del usuario de IAM*. Para obtener más información sobre el etiquetado de nodos administrados, consulte [Etiquetado de los recursos de Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html) en la *Guía del usuario de Amazon EC2* (el contenido se aplica a los nodos administrados de Windows y Linux). Para obtener más información acerca de cómo aumentar su posición de seguridad frente a comandos de nivel raíz no autorizados en los nodos administrados, consulte [Restricción del acceso a los comandos de nivel raíz con SSM Agent](ssm-agent-restrict-root-level-commands.md)

## Ejemplo 4: permitir a un usuario finalizar solo las sesiones que inició
<a name="restrict-access-example-user-sessions"></a>

Session Manager proporciona dos métodos para controlar qué sesiones tiene permitido finalizar un usuario federado en su Cuenta de AWS.
+ Utilice la variable `{aws:userid}` en una política de permisos de AWS Identity and Access Management (IAM). Los usuarios federados solo pueden finalizar las sesiones que iniciaron. Para los usuarios no federados, utilice el Método 1. Para los usuarios federados, utilice el Método 2.
+ Utilice las etiquetas proporcionadas por AWS en una política de permisos de IAM. En la política, incluya una condición que permita a los usuarios terminar solo las sesiones marcadas con etiquetas específicas proporcionadas por AWS. Este método funciona para todas las cuentas, incluidas las que utilizan ID federados para otorgar acceso a AWS.

### Método 1: conceder privilegios TerminateSession usando la variable `{aws:username}`
<a name="restrict-access-example-user-sessions-username"></a>

La siguiente política de IAM permite al usuario ver los ID de todas las sesiones de su cuenta. Sin embargo, los usuarios solo pueden interactuar con los nodos administrados a través de las sesiones que iniciaron. Un usuario con la siguiente política asignada no puede conectarse a las sesiones de otros usuarios ni terminarlas. La política utiliza la variable `{aws:username}` para lograrlo.

**nota**  
Este método no funciona para las cuentas que otorgan acceso a AWS con ID federados.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "ssm:DescribeSessions"
            ],
            "Effect": "Allow",
            "Resource": [
                "*"
            ]
        },
        {
            "Action": [
                "ssm:TerminateSession"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:ssm:*:*:session/${aws:username}-*"
            ]
        }
    ]
}
```

------

### Método 2: otorgar privilegios de TerminateSession mediante etiquetas proporcionadas por AWS
<a name="restrict-access-example-user-sessions-tags"></a>

Puede controlar qué sesiones puede finalizar un usuario si incluye variables de claves de etiqueta condicionales en una política de IAM. La condición especifica que el usuario solo puede finalizar las sesiones etiquetadas con una o ambas de estas variables de clave de etiqueta específicas y un valor especificado.

Cuando un usuario de su Cuenta de AWS inicia una sesión, Session Manager aplica dos etiquetas de recurso a la sesión. La primera etiqueta de recurso es `aws:ssmmessages:target-id`, con la que se especifica el ID del destino que el usuario puede finalizar. La otra etiqueta de recurso es `aws:ssmmessages:session-id`, con un valor en el formato `role-id:caller-specified-role-name`.

**nota**  
Session Manager no admite etiquetas personalizadas para esta política de control de acceso de IAM. Debe utilizar las etiquetas de recursos proporcionadas por AWS que se describen a continuación. 

 ** `aws:ssmmessages:target-id` **   
Con esta clave de etiqueta, el ID del nodo administrado se incluye como valor en la política. En el siguiente bloque de política, la instrucción de condición permite al usuario terminar solo el nodo i-02573cafcfEXAMPLE.    
****  

```
{
     "Version":"2012-10-17",		 	 	 
     "Statement": [
         {
             "Effect": "Allow",
             "Action": [
                "ssm:TerminateSession"
             ],
             "Resource": "*",
             "Condition": {
                 "StringLike": {
                     "ssm:resourceTag/aws:ssmmessages:target-id": [
                        "i-02573cafcfEXAMPLE"
                     ]
                 }
             }
         }
     ]
}
```
Si el usuario intenta finalizar una sesión para la que no se le ha concedido este permiso `TerminateSession`, recibirá un error `AccessDeniedException`.

 ** `aws:ssmmessages:session-id` **   
Esta clave de etiqueta incluye una variable para el ID de sesión como valor en la solicitud para iniciar una sesión.  
En el ejemplo siguiente se muestra una política para los casos en los que el tipo de intermediario es `User`. El valor que proporciona para `aws:ssmmessages:session-id` es el ID del usuario. En este ejemplo, `AIDIODR4TAW7CSEXAMPLE` representa el ID de un usuario de su Cuenta de AWS. Para recuperar el ID de un usuario de su Cuenta de AWS, utilice el comando `get-user` de IAM. Para obtener información, consulte [get-user](https://docs.aws.amazon.com/IAM/latest/UserGuide/get-user.html) en la sección AWS Identity and Access Management de la *Guía del usuario de IAM*.     
****  

```
{
     "Version":"2012-10-17",		 	 	 
     "Statement": [
         {
             "Effect": "Allow",
             "Action": [
                "ssm:TerminateSession"
             ],
             "Resource": "*",
             "Condition": {
                 "StringLike": {
                     "ssm:resourceTag/aws:ssmmessages:session-id": [
                        "AIDIODR4TAW7CSEXAMPLE"
                     ]
                 }
             }
         }
     ]
}
```
En el ejemplo siguiente se muestra una política para los casos en los que el tipo de intermediario es `AssumedRole`. Puede utilizar la variable `{aws:userid}` en el valor de `aws:ssmmessages:session-id`. También puede codificar de forma rígida un ID de rol para el valor de `aws:ssmmessages:session-id`. Si codifica un ID de rol, debe proporcionar el valor en el formato `role-id:caller-specified-role-name`. Por ejemplo, `AIDIODR4TAW7CSEXAMPLE:MyRole`.  
Para que se apliquen las etiquetas del sistema, el ID de rol que proporcione solo puede contener los siguientes caracteres: letras Unicode, 0-9, espacio `_`, `.`, `:`, `/`, `=`, `+`, `-`, `@` y `\`.
Para recuperar el ID de un rol de su Cuenta de AWS, utilice el comando `get-caller-identity`. Para obtener información, consulte [get-caller-identity](https://docs.aws.amazon.com/cli/latest/reference/sts/get-caller-identity.html) en la Referencia de comandos de la AWS CLI.     
****  

```
{
     "Version":"2012-10-17",		 	 	 
     "Statement": [
         {
             "Effect": "Allow",
             "Action": [
                "ssm:TerminateSession"
             ],
             "Resource": "*",
             "Condition": {
                 "StringLike": {
                     "ssm:resourceTag/aws:ssmmessages:session-id": [
                        "${aws:userid}*"
                     ]
                 }
             }
         }
     ]
}
```
Si un usuario intenta finalizar una sesión para la que no se le ha concedido este permiso `TerminateSession`, recibirá un error `AccessDeniedException`.

**`aws:ssmmessages:target-id`** y **`aws:ssmmessages:session-id`**  
También puede crear políticas de IAM que permitan al usuario terminar sesiones marcadas con ambas etiquetas del sistema, como se muestra en este ejemplo.    
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "ssm:TerminateSession"
         ],
         "Resource":"*",
         "Condition":{
            "StringLike":{
               "ssm:resourceTag/aws:ssmmessages:target-id":[
                  "i-02573cafcfEXAMPLE"
               ],
               "ssm:resourceTag/aws:ssmmessages:session-id":[
                  "${aws:userid}*"
               ]
            }
         }
      }
   ]
}
```

## Ejemplo 5: permitir acceso completo (administrativo) a todas las sesiones
<a name="restrict-access-example-full-access"></a>

La siguiente política de IAM permite a un usuario interactuar totalmente con todos los nodos administrados y sesiones creadas por todos los usuarios de todos los nodos. Debe ser concedida únicamente a un administrador que necesita un control completo sobre las actividades de Session Manager de la organización.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "ssm:StartSession",
                "ssm:TerminateSession",
                "ssm:ResumeSession",
                "ssm:DescribeSessions",
                "ssm:GetConnectionStatus"
            ],
            "Effect": "Allow",
            "Resource": [
                "*"
            ]
        },
        {
         "Effect": "Allow",
         "Action": ["ssmmessages:OpenDataChannel"],
         "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"]
       }
    ]
}
```

------

# Paso 4: configurar las preferencias de sesión
<a name="session-manager-getting-started-configure-preferences"></a>

Los usuarios a los que se les hayan concedido permisos administrativos en su política de AWS Identity and Access Management (IAM) pueden configurar las preferencias de sesión, incluidas las siguientes:
+ Active Ejecutar como soporte para nodos administrados de Linux. Esto permite iniciar sesiones con las credenciales de un usuario especificado del sistema operativo en lugar de con las credenciales de una cuenta `ssm-user` generada por el sistema que AWS Systems Manager Session Manager puede crear en un nodo administrado.
+ Configure Session Manager para que utilice el cifrado de AWS KMS key para proporcionar protección adicional a los datos transmitidos entre los equipos del clientes y los nodos administrados.
+ Configure Session Manager para crear y enviar los registros del historial de sesiones a un bucket de Amazon Simple Storage Service (Amazon S3) o a un grupo de registros de los Registros de Amazon CloudWatch. Los datos de registro almacenados pueden utilizarse para informar sobre conexiones de sesiones realizadas en los nodos administrados y los comandos ejecutados durante las sesiones.
+ Configure los tiempos de espera de sesión. Puede utilizar esta configuración para especificar cuándo terminar una sesión después de un periodo de inactividad.
+ Configure Session Manager para que utilice perfiles de shell configurables. Estos perfiles personalizables le permiten definir preferencias dentro de las sesiones, como las preferencias de shell, las variables de entorno, los directorios de trabajo y la ejecución de varios comandos cuando se inicia una sesión.

Para obtener más información acerca de los permisos necesarios para configurar Session Manager, consulte [Concesión o denegación de permisos de usuario para actualizar preferencias de Session Manager](preference-setting-permissions.md).

**Topics**
+ [Concesión o denegación de permisos de usuario para actualizar preferencias de Session Manager](preference-setting-permissions.md)
+ [Especificación de un valor de tiempo de espera de sesión inactiva](session-preferences-timeout.md)
+ [Especificar la duración máxima de la sesión](session-preferences-max-timeout.md)
+ [Permiso de perfiles de shell configurables](session-preferences-shell-config.md)
+ [Activación del soporte Ejecutar como para nodos administrados de Linux y macOS](session-preferences-run-as.md)
+ [Activación del cifrado de datos de sesión con claves de KMS (consola)](session-preferences-enable-encryption.md)
+ [Creación de un documento de preferencias de Session Manager (línea de comandos)](getting-started-create-preferences-cli.md)
+ [Actualizar preferencias de Session Manager (línea de comandos)](getting-started-configure-preferences-cli.md)

Para obtener más información acerca de cómo utilizar la consola de Systems Manager para configurar opciones para el registro de los datos de las sesiones, consulte los siguientes temas:
+  [Registro de los datos de la sesión con Amazon S3 (consola)](session-manager-logging-s3.md) 
+  [Streaming de los datos de la sesión con los Registros de Amazon CloudWatch (consola)](session-manager-logging-cwl-streaming.md) 
+  [Registro de los datos de la sesión con los Registros de Amazon CloudWatch (consola)](session-manager-logging-cloudwatch-logs.md) 

# Concesión o denegación de permisos de usuario para actualizar preferencias de Session Manager
<a name="preference-setting-permissions"></a>

Las preferencias de la cuenta se almacenan como documentos de AWS Systems Manager (SSM) para cada Región de AWS. Antes de que un usuario pueda actualizar las preferencias de cuenta para las sesiones de su cuenta, es preciso que se le concedan los permisos necesarios para obtener acceso al tipo de documento de SSM donde se almacenan estas preferencias. Estos permisos se conceden por medio de políticas de AWS Identity and Access Management (IAM).

**Política de administradores para permitir la creación y actualización de preferencias**  
Un administrador puede tener la siguiente política para crear y actualizar las preferencias en cualquier momento. La siguiente política otorga permisos para acceder al documento `SSM-SessionManagerRunShell` de la cuenta 123456789012 en la región us-east-2 y actualizarlo. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "ssm:CreateDocument",
                "ssm:GetDocument",
                "ssm:UpdateDocument",
                "ssm:DeleteDocument"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell"
            ]
        }
    ]
}
```

------

**Política de usuarios para evitar que se actualicen las preferencias**  
Utilice la siguiente política para impedir que los usuarios finales de su cuenta actualicen o anulen las preferencias de Session Manager. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "ssm:CreateDocument",
                "ssm:GetDocument",
                "ssm:UpdateDocument",
                "ssm:DeleteDocument"
            ],
            "Effect": "Deny",
            "Resource": [
                "arn:aws:ssm:us-east-1:111122223333:document/SSM-SessionManagerRunShell"
            ]
        }
    ]
}
```

------

# Especificación de un valor de tiempo de espera de sesión inactiva
<a name="session-preferences-timeout"></a>

Session Manager, una herramienta de AWS Systems Manager, le permite especificar la cantidad de tiempo que permitirá al usuario estar inactivo antes de que una sesión termine. De forma predeterminada, el tiempo de espera de las sesiones finaliza después de 20 minutos de inactividad. Puede modificar esta configuración para especificar que la sesión termine después de entre 1 y 60 minutos de inactividad. Algunas agencias profesionales de seguridad informática recomiendan configurar los tiempos de espera de sesión inactiva en un máximo de 15 minutos. 

El temporizador de tiempo de espera de la sesión inactiva se restablece cuando Session Manager recibe entradas del lado del cliente. Estas entradas incluyen, entre otros:
+ Entrada de teclado en el terminal
+ Eventos de cambio de tamaño de la ventana del navegador o del terminal
+ Reconexión de sesión (ResumeSession), que puede producirse debido a interrupciones de la red, administración de pestañas del navegador o desconexiones de WebSocket

Dado que estos eventos restablecen el temporizador de inactividad, cabe la posibilidad de que una sesión permanezca activa por más tiempo que el tiempo de espera configurado, incluso si no hay comandos directos del terminal.

Si sus requisitos de seguridad exigen límites estrictos de duración de la sesión, independientemente de la actividad, utilice la configuración *Duración máxima de la sesión* además del tiempo de espera de inactividad. Para obtener más información, consulte [Especificar la duración máxima de la sesión](session-preferences-max-timeout.md).

**Para permitir el tiempo de espera de sesión inactiva (consola)**

1. Abra la consola de AWS Systems Manager en [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. En el panel de navegación, elija **Session Manager**.

1. Elija la pestaña **Preferences (Preferencias)** y, a continuación, **Edit (Editar)**.

1. Especifique la cantidad de tiempo que permitirá que el usuario esté inactivo antes de que finalice la sesión en el campo **minutes** (minutos) dentro de **Idle session timeout** (Tiempo de espera de sesión inactiva).

1. Seleccione **Save**.

# Especificar la duración máxima de la sesión
<a name="session-preferences-max-timeout"></a>

Session Manager, una herramienta de AWS Systems Manager, le permite determinar la duración máxima de una sesión antes de que finalice. De forma predeterminada, las sesiones no tienen una duración máxima. El valor que defina para la duración máxima de la sesión debe estar entre 1 y 1440 minutos.

**Para especificar la duración máxima de la sesión (consola)**

1. Abra la consola de AWS Systems Manager en [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. En el panel de navegación, elija **Session Manager**.

1. Elija la pestaña **Preferences (Preferencias)** y, a continuación, **Edit (Editar)**.

1. Seleccione la casilla de verificación situada junto a **Enable maximum session duration** (Habilitación de la duración máxima de la sesión).

1. Especifique la duración máxima de la sesión antes de que finalice en el campo **minutes** (minutos) en **Maximum session duration** (Duración máxima de la sesión).

1. Seleccione **Save**.

# Permiso de perfiles de shell configurables
<a name="session-preferences-shell-config"></a>

De forma predeterminada, las sesiones en las instancias de EC2 para Linux se inician mediante el shell Bourne (sh). Sin embargo, es posible que prefiera utilizar otro shell, como bash. Cuando permite perfiles de shell configurables, puede personalizar las preferencias dentro de las sesiones, como preferencias de shell, variables de entorno, directorios de trabajo y ejecutar varios comandos cuando se inicia una sesión.

**importante**  
Systems Manager no verifica los comandos ni los scripts del perfil de shell antes de ejecutarlos para ver qué cambios realizarían en una instancia. Para restringir la capacidad de un usuario de modificar los comandos o los scripts ingresados en su perfil de shell, se recomienda lo siguiente:  
Cree un documento personalizado de tipo sesión para sus usuarios y roles de AWS Identity and Access Management (IAM). A continuación, modifique la política de IAM para estos usuarios y roles, de modo que la operación `StartSession` de la API solo pueda utilizar el documento de tipo sesión que creó para ellos. Para obtener más información, consulte [Creación de un documento de preferencias de Session Manager (línea de comandos)](getting-started-create-preferences-cli.md) y [Políticas de usuarios finales de inicio rápido de Session Manager](getting-started-restrict-access-quickstart.md#restrict-access-quickstart-end-user).
Modifique la política de IAM de los usuarios y los roles de IAM para denegar el acceso a la operación `UpdateDocument` de la API para el recurso del documento de tipo sesión que cree. Esto permite a los usuarios y los roles usar el documento que creó para sus preferencias de sesión, sin permitirles modificar ninguna de las configuraciones.

**Para activar perfiles de shell configurables**

1. Abra la consola de AWS Systems Manager en [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. En el panel de navegación, elija **Session Manager**.

1. Elija la pestaña **Preferences (Preferencias)** y, a continuación, **Edit (Editar)**.

1. Especifique las variables de entorno, las preferencias de shell o los comandos que desee ejecutar cuando se inicie la sesión en los campos de los sistemas operativos aplicables.

1. Seleccione **Save**.

A continuación, se muestran algunos comandos de ejemplo que se pueden agregar a su perfil de shell.

Cambie al shell bash y al directorio /usr en las instancias de Linux.

```
exec /bin/bash
cd /usr
```

Muestre una marca de tiempo y un mensaje de bienvenida al inicio de una sesión.

------
#### [ Linux & macOS ]

```
timestamp=$(date '+%Y-%m-%dT%H:%M:%SZ')
user=$(whoami)
echo $timestamp && echo "Welcome $user"'!'
echo "You have logged in to a production instance. Note that all session activity is being logged."
```

------
#### [  Windows  ]

```
$timestamp = (Get-Date).ToString("yyyy-MM-ddTH:mm:ssZ")
$splitName = (whoami).Split("\")
$user = $splitName[1]
Write-Host $timestamp
Write-Host "Welcome $user!"
Write-Host "You have logged in to a production instance. Note that all session activity is being logged."
```

------

Vea la actividad dinámica del sistema al inicio de una sesión.

------
#### [ Linux & macOS ]

```
top
```

------
#### [  Windows  ]

```
while ($true) { Get-Process | Sort-Object -Descending CPU | Select-Object -First 30; `
Start-Sleep -Seconds 2; cls
Write-Host "Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName"; 
Write-Host "-------  ------    -----      ----- -----   ------     -- -----------"}
```

------

# Activación del soporte Ejecutar como para nodos administrados de Linux y macOS
<a name="session-preferences-run-as"></a>

De forma predeterminada, Session Manager autentica las conexiones con las credenciales de la cuenta `ssm-user` generada por el sistema que se crea en un nodo administrado. (En los equipos Linux y macOS, la cuenta se agrega a `/etc/sudoers/`). Si lo desea, puede autenticar las sesiones con las credenciales de una cuenta de usuario del sistema operativo (SO) o un usuario de dominio para instancias unidas a un Active Directory. En este caso, Session Manager comprueba que la cuenta del sistema operativo que especificó existe en el nodo o en el dominio antes de iniciar la sesión. Si intenta iniciar una sesión con una cuenta del sistema operativo que no existe en el nodo ni en el dominio, se produce un error en la conexión.

**nota**  
Administrador de sesiones no admite el uso de una cuenta de usuario `root` de un sistema operativo para autenticar las conexiones. En el caso de las sesiones que se autentican mediante una cuenta de usuario del sistema operativo, es posible que no se apliquen las políticas de directorio y nivel de sistema del nodo, como las restricciones de inicio de sesión o las restricciones de uso de los recursos del sistema. 

**Funcionamiento**  
Si activa Ejecutar como soporte para las sesiones, el sistema verifica los permisos de acceso tal como se indica a continuación:

1. Para el usuario que está iniciando la sesión, ¿se ha etiquetado su entidad de IAM (usuario o rol) con `SSMSessionRunAs = os user account name`?

   En caso afirmativo, ¿existe el nombre de usuario del sistema operativo en el nodo administrado? En caso afirmativo, inicie la sesión. Si no es así, no permita que se inicie una sesión.

   Si la entidad de IAM *no* se ha etiquetado con `SSMSessionRunAs = os user account name`, continúe con el paso 2.

1. Si la entidad de IAM no se ha etiquetado con `SSMSessionRunAs = os user account name`, ¿se ha especificado un nombre de usuario del sistema operativo en las preferencias de la Cuenta de AWS de Session Manager?

   En caso afirmativo, ¿existe el nombre de usuario del sistema operativo en el nodo administrado? En caso afirmativo, inicie la sesión. Si no es así, no permita que se inicie una sesión. 

**nota**  
Al activar el soporte Ejecutar como, se impide que Administrador de sesiones inicie sesiones con la cuenta `ssm-user` en un nodo administrado. Esto significa que si Session Manager no se puede conectar mediante la cuenta de usuario del sistema operativo especificada, no se recurre a la conexión mediante el método predeterminado.   
Si activa Ejecutar como sin especificar una cuenta de sistema operativo ni etiquetar una entidad de IAM y no ha especificado ninguna cuenta de sistema operativo en las preferencias de Administrador de sesiones, se produce un error en los intentos de conexión a la sesión.

**Para activar el soporte Ejecutar como para nodos administrados de Linux y macOS**

1. Abra la consola de AWS Systems Manager en [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. En el panel de navegación, elija **Session Manager**.

1. Elija la pestaña **Preferences (Preferencias)** y, a continuación, **Edit (Editar)**.

1. Seleccione la casilla de verificación situada junto a **Activar soporte Ejecutar como para instancias de Linux**.

1. Realice una de las siguientes acciones:
   + **Opción 1**: en el campo **Nombre de usuario del sistema operativo**, ingrese el nombre de la cuenta de usuario del sistema operativo que desea usar para iniciar sesiones. Con esta opción, el mismo usuario del sistema operativo ejecuta todas las sesiones para todos los usuarios de su Cuenta de AWS que se conectan mediante Session Manager.
   + **Opción 2** (recomendada): elija el enlace **Abrir la consola de IAM**. En el panel de navegación, seleccione **Usuarios** o **Roles**. Elija la entidad (usuario o rol) a la que añadir etiquetas y, a continuación, elija la pestaña **Tags**. Escriba `SSMSessionRunAs` para el nombre de la clave. Ingrese el nombre de una cuenta de usuario del sistema operativo para el valor clave. Seleccione **Save changes (Guardar cambios)**.

     Con esta opción, puede especificar usuarios de sistema operativo únicos para diferentes entidades de IAM, si así lo desea. Para obtener más información acerca del etiquetado de entidades (usuarios o roles) de IAM, consulte [Etiquetado de recursos de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) en la *Guía del usuario de IAM*.

     A continuación se muestra un ejemplo.  
![\[Captura de pantalla de la especificación de etiquetas para el permiso Ejecutar como de Session Manager\]](http://docs.aws.amazon.com/es_es/systems-manager/latest/userguide/images/ssn-run-as-tags.png)

1. Seleccione **Save**.

# Activación del cifrado de datos de sesión con claves de KMS (consola)
<a name="session-preferences-enable-encryption"></a>

Utilice AWS Key Management Service (AWS KMS) para crear y administrar las claves de cifrado. Con AWS KMS, puede controlar el uso del cifrado en una amplia gama de Servicios de AWS y en sus aplicaciones. Puede especificar que los datos de la sesión transmitidos entre los nodos administrados y los equipos locales de los usuarios en la Cuenta de AWS se cifren con cifrado de claves de KMS. (Esto se suma al cifrado TLS 1.2/1.3 que AWS ya proporciona de forma predeterminada). Para cifrar los datos de la sesión Session Manager, cree una clave KMS *simétrica* mediante AWS KMS.

El cifrado de AWS KMS está disponible para `Standard_Stream`, `InteractiveCommands` y los tipos de sesión de `NonInteractiveCommands`. Para utilizar la opción de cifrar los datos de la sesión con una clave creada en AWS KMS, el nodo administrado debe tener instalada la versión 2.3.539.0 de AWS Systems Manager SSM Agent o una posterior. 

**nota**  
Debe permitir el cifrado de AWS KMS con el fin de restablecer las contraseñas en los nodos administrados desde la consola de AWS Systems Manager. Para obtener más información, consulte [Restablecer una contraseña en un nodo administrado](fleet-manager-reset-password.md#managed-instance-reset-a-password).

Puede utilizar una clave que haya creado en su Cuenta de AWS. También puede utilizar una clave que se haya creado en una diferente Cuenta de AWS. El creador de la clave de una Cuenta de AWS diferente debe proporcionarle los permisos necesarios para usar la clave.

Después de activar el cifrado con clave de KMS para los datos de la sesión, tanto los usuarios que inicien sesiones como los nodos administrados a los que se conecten deberán tener permiso para utilizar la clave. Usted proporciona el permiso para utilizar la clave de KMS con Session Manager a través de las políticas de AWS Identity and Access Management (IAM). Para obtener información, consulte los siguientes temas:
+ Agregar permisos de AWS KMS para los usuarios de su cuenta: [Ejemplos de políticas de IAM para Session Manager](getting-started-restrict-access-quickstart.md).
+ Agregar permisos de AWS KMS para los nodos administrados de la cuenta: [Paso 2: verificación o agregación de permisos de instancia para Session Manager](session-manager-getting-started-instance-profile.md).

Para obtener más información acerca de cómo crear y administrar las claves de KMS, consulte la [https://docs.aws.amazon.com/kms/latest/developerguide/](https://docs.aws.amazon.com/kms/latest/developerguide/).

Para obtener más información acerca de cómo utilizar la AWS CLI para activar el cifrado de datos de sesión en su cuenta con claves de KMS, consulte [Creación de un documento de preferencias de Session Manager (línea de comandos)](getting-started-create-preferences-cli.md) o [Actualizar preferencias de Session Manager (línea de comandos)](getting-started-configure-preferences-cli.md).

**nota**  
Se aplica un cargo por utilizar claves de KMS. Para obtener información, consulte [Precios de AWS Key Management Service](https://aws.amazon.com/kms/pricing/).

**Para activar el cifrado de datos de sesión con claves de KMS (consola)**

1. Abra la consola de AWS Systems Manager en [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. En el panel de navegación, elija **Session Manager**.

1. Elija la pestaña **Preferences (Preferencias)** y, a continuación, **Edit (Editar)**.

1. Seleccione la casilla de verificación situada junto a **Enable KMS encryption** (Habilitar cifrado de KMS).

1. Realice una de las siguientes acciones:
   + Elija el botón que se encuentra junto a **Select a KMS key in my current account** (Seleccione una clave de KMS en la cuenta actual) y, a continuación, seleccione una de las claves de la lista.

     -o bien-

     Elija el botón junto a **Enter a KMS key alias or KMS key ARN (Introducir un alias de clave de KMS o un ARN de clave de KMS)**. Ingrese de forma manual un alias de clave de KMS para una clave creada en su cuenta actual o ingrese el nombre de recurso de Amazon (ARN) de la clave perteneciente a otra cuenta. A continuación se muestran algunos ejemplos:
     + Alias de clave: `alias/my-kms-key-alias`
     + ARN de clave: `arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-12345EXAMPLE`

     -o bien-

     Elija **Create new key** (Crear nueva clave) para crear una nueva clave de KMS en su cuenta. Después de crear la clave nueva, vuelva a la pestaña **Preferences (Preferencias)** y seleccione la clave para el cifrado de los datos de la sesión en su cuenta.

   Para obtener más información acerca de cómo compartir claves, consulte [Permiso para que las Cuentas de AWS externas accedan a una clave](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html#key-policy-modifying-external-accounts) en la *Guía para desarrolladores de AWS Key Management Service*.

1. Seleccione **Save**.

# Creación de un documento de preferencias de Session Manager (línea de comandos)
<a name="getting-started-create-preferences-cli"></a>

Utilice el siguiente procedimiento para crear documentos SSM que definan las preferencias para las sesiones de AWS Systems Manager Session Manager. Puede utilizar el documento para configurar las opciones de sesión, incluidos el cifrado de datos, la duración de la sesión y el registro. Por ejemplo, puede especificar si desea almacenar datos de registro de sesión en un bucket de Amazon Simple Storage Service (Amazon S3) o en un grupo de registro de Registros de Amazon CloudWatch. Puede crear documentos que definan las preferencias generales para todas las sesiones de una Cuenta de AWS y una Región de AWS, o que definan las preferencias para las sesiones individuales. 

**nota**  
Además, puede configurar las preferencias generales de la sesión mediante la consola del administrador de sesiones.

Los documentos utilizados para configurar las preferencias del administrador de sesiones deben tener un `sessionType` de `Standard_Stream`. Para obtener más información sobre los documentos de sesiones, consulte [Esquema del documento de Session](session-manager-schema.md).

Para obtener información sobre el uso de la línea de comandos para actualizar las preferencias de Session Manager existentes, consulte [Actualizar preferencias de Session Manager (línea de comandos)](getting-started-configure-preferences-cli.md).

Para ver un ejemplo de cómo se crean las preferencias de sesión mediante CloudFormation, consulte [Creación de un documento de Systems Manager para preferencias de Session Manager](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-document.html#aws-resource-ssm-document--examples) en la *Guía del usuario de AWS CloudFormation*.

**nota**  
Este procedimiento describe cómo crear documentos para establecer las preferencias de Session Manager a nivel de Cuenta de AWS. Para crear documentos que se utilizarán para establecer las preferencias a nivel de sesión, especifique un valor distinto de `SSM-SessionManagerRunShell` para las entradas de comandos relacionadas con el nombre del archivo.   
Para utilizar el documento para establecer las preferencias de las sesiones iniciadas desde AWS Command Line Interface (AWS CLI), proporcione el nombre del documento como el valor del parámetro `--document-name`. Para establecer las preferencias de las sesiones iniciadas desde la consola del administrador de sesiones, puede escribir el nombre del documento o seleccionarlo de una lista.

**Para crear preferencias de Session Manager (línea de comandos)**

1. Cree un archivo JSON en su equipo local con un nombre similar a `SessionManagerRunShell.json` y, a continuación, péguele el siguiente contenido.

   ```
   {
       "schemaVersion": "1.0",
       "description": "Document to hold regional settings for Session Manager",
       "sessionType": "Standard_Stream",
       "inputs": {
           "s3BucketName": "",
           "s3KeyPrefix": "",
           "s3EncryptionEnabled": true,
           "cloudWatchLogGroupName": "",
           "cloudWatchEncryptionEnabled": true,
           "cloudWatchStreamingEnabled": false,
           "kmsKeyId": "",
           "runAsEnabled": false,
           "runAsDefaultUser": "",
           "idleSessionTimeout": "",
           "maxSessionDuration": "",
           "shellProfile": {
               "windows": "date",
               "linux": "pwd;ls"
           }
       }
   }
   ```

   También puede pasar valores a sus preferencias de sesión usando parámetros en lugar de codificar de forma rígida los valores, como se muestra en el siguiente ejemplo.

   ```
   {
      "schemaVersion":"1.0",
      "description":"Session Document Parameter Example JSON Template",
      "sessionType":"Standard_Stream",
      "parameters":{
         "s3BucketName":{
            "type":"String",
            "default":""
         },
         "s3KeyPrefix":{
            "type":"String",
            "default":""
         },
         "s3EncryptionEnabled":{
            "type":"Boolean",
            "default":"false"
         },
         "cloudWatchLogGroupName":{
            "type":"String",
            "default":""
         },
         "cloudWatchEncryptionEnabled":{
            "type":"Boolean",
            "default":"false"
         }
      },
      "inputs":{
         "s3BucketName":"{{s3BucketName}}",
         "s3KeyPrefix":"{{s3KeyPrefix}}",
         "s3EncryptionEnabled":"{{s3EncryptionEnabled}}",
         "cloudWatchLogGroupName":"{{cloudWatchLogGroupName}}",
         "cloudWatchEncryptionEnabled":"{{cloudWatchEncryptionEnabled}}",
         "kmsKeyId":""
      }
   }
   ```

1. Especifique a dónde quiere enviar los datos de la sesión. Puede especificar el nombre de un bucket de S3 (con un prefijo opcional) o el nombre de un grupo de registros de los Registros de CloudWatch. Si desea cifrar aún más los datos entre el cliente local y los nodos administrados, proporcione la clave de KMS para utilizarla para el cifrado. A continuación se muestra un ejemplo.

   ```
   {
     "schemaVersion": "1.0",
     "description": "Document to hold regional settings for Session Manager",
     "sessionType": "Standard_Stream",
     "inputs": {
       "s3BucketName": "amzn-s3-demo-bucket",
       "s3KeyPrefix": "MyS3Prefix",
       "s3EncryptionEnabled": true,
       "cloudWatchLogGroupName": "MyLogGroupName",
       "cloudWatchEncryptionEnabled": true,
       "cloudWatchStreamingEnabled": false,
       "kmsKeyId": "MyKMSKeyID",
       "runAsEnabled": true,
       "runAsDefaultUser": "MyDefaultRunAsUser",
       "idleSessionTimeout": "20",
       "maxSessionDuration": "60",
       "shellProfile": {
           "windows": "MyCommands",
           "linux": "MyCommands"
       }
     }
   }
   ```
**nota**  
Si no desea cifrar los datos de registro de la sesión, cambie `true` por `false` en `s3EncryptionEnabled`.  
Si no va a enviar registros a un bucket de Amazon S3 ni a un grupo de registros de los Registros de CloudWatch, si no desea cifrar los datos de sesión activa ni desea activar Ejecutar como soporte para las sesiones de su cuenta, puede eliminar las líneas de esas opciones. Asegúrese de que la última línea de la sección `inputs` no termine con una coma.  
Si agrega un ID de clave de KMS para cifrar los datos de la sesión, tanto los usuarios que inician sesiones como los nodos administrados a los que se conectan deben tener permiso para utilizar la clave. Usted proporciona el permiso para utilizar la clave de KMS con Session Manager a través de las políticas de IAM. Para obtener información, consulte los siguientes temas:  
Agregar permisos de AWS KMS para los usuarios de su cuenta: [Ejemplos de políticas de IAM para Session Manager](getting-started-restrict-access-quickstart.md)
Agregar permisos de AWS KMS para los nodos administrados de la cuenta: [Paso 2: verificación o agregación de permisos de instancia para Session Manager](session-manager-getting-started-instance-profile.md)

1. Guarde el archivo.

1. En el directorio en el que creó el archivo JSON, ejecute el siguiente comando.

------
#### [ Linux & macOS ]

   ```
   aws ssm create-document \
       --name SSM-SessionManagerRunShell \
       --content "file://SessionManagerRunShell.json" \
       --document-type "Session" \
       --document-format JSON
   ```

------
#### [  Windows  ]

   ```
   aws ssm create-document ^
       --name SSM-SessionManagerRunShell ^
       --content "file://SessionManagerRunShell.json" ^
       --document-type "Session" ^
       --document-format JSON
   ```

------
#### [   PowerShell   ]

   ```
   New-SSMDocument `
       -Name "SSM-SessionManagerRunShell" `
       -Content (Get-Content -Raw SessionManagerRunShell.json) `
       -DocumentType "Session" `
       -DocumentFormat JSON
   ```

------

   Si se ejecuta correctamente, el comando devolverá información similar a la siguiente.

   ```
   {
       "DocumentDescription": {
           "Status": "Creating",
           "Hash": "ce4fd0a2ab9b0fae759004ba603174c3ec2231f21a81db8690a33eb66EXAMPLE",
           "Name": "SSM-SessionManagerRunShell",
           "Tags": [],
           "DocumentType": "Session",
           "PlatformTypes": [
               "Windows",
               "Linux"
           ],
           "DocumentVersion": "1",
           "HashType": "Sha256",
           "CreatedDate": 1547750660.918,
           "Owner": "111122223333",
           "SchemaVersion": "1.0",
           "DefaultVersion": "1",
           "DocumentFormat": "JSON",
           "LatestVersion": "1"
       }
   }
   ```

# Actualizar preferencias de Session Manager (línea de comandos)
<a name="getting-started-configure-preferences-cli"></a>

El siguiente procedimiento describe cómo utilizar su herramienta de línea de comandos preferida para realizar cambios en las preferencias de AWS Systems Manager Session Manager para su Cuenta de AWS en la Región de AWS seleccionada. Use las preferencias de Session Manager para especificar opciones para registrar los datos de la sesión en un bucket de Amazon Simple Storage Service (Amazon S3) o en un grupo de registros de Amazon CloudWatch Logs. También puede utilizar las preferencias de Session Manager para cifrar los datos de la sesión.

**Para actualizar las preferencias de Session Manager (línea de comandos)**

1. Cree un archivo JSON en su equipo local con un nombre similar a `SessionManagerRunShell.json` y, a continuación, péguele el siguiente contenido.

   ```
   {
       "schemaVersion": "1.0",
       "description": "Document to hold regional settings for Session Manager",
       "sessionType": "Standard_Stream",
       "inputs": {
           "s3BucketName": "",
           "s3KeyPrefix": "",
           "s3EncryptionEnabled": true,
           "cloudWatchLogGroupName": "",
           "cloudWatchEncryptionEnabled": true,
           "cloudWatchStreamingEnabled": false,
           "kmsKeyId": "",
           "runAsEnabled": true,
           "runAsDefaultUser": "",
           "idleSessionTimeout": "",
           "maxSessionDuration": "",
           "shellProfile": {
               "windows": "date",
               "linux": "pwd;ls"
           }
       }
   }
   ```

1. Especifique a dónde quiere enviar los datos de la sesión. Puede especificar el nombre de un bucket de S3 (con un prefijo opcional) o el nombre de un grupo de registros de los Registros de CloudWatch. Si desea cifrar aún más los datos entre el cliente local y los nodos administrados, proporcione la AWS KMS key para utilizarla para el cifrado. A continuación se muestra un ejemplo.

   ```
   {
     "schemaVersion": "1.0",
     "description": "Document to hold regional settings for Session Manager",
     "sessionType": "Standard_Stream",
     "inputs": {
       "s3BucketName": "amzn-s3-demo-bucket",
       "s3KeyPrefix": "MyS3Prefix",
       "s3EncryptionEnabled": true,
       "cloudWatchLogGroupName": "MyLogGroupName",
       "cloudWatchEncryptionEnabled": true,
       "cloudWatchStreamingEnabled": false,
       "kmsKeyId": "MyKMSKeyID",
       "runAsEnabled": true,
       "runAsDefaultUser": "MyDefaultRunAsUser",
       "idleSessionTimeout": "20",
       "maxSessionDuration": "60",
       "shellProfile": {
           "windows": "MyCommands",
           "linux": "MyCommands"
       }
     }
   }
   ```
**nota**  
Si no desea cifrar los datos de registro de la sesión, cambie `true` por `false` en `s3EncryptionEnabled`.  
Si no va a enviar registros a un bucket de Amazon S3 ni a un grupo de registros de los Registros de CloudWatch, si no desea cifrar los datos de sesión activa ni desea activar Ejecutar como soporte para las sesiones de su cuenta, puede eliminar las líneas de esas opciones. Asegúrese de que la última línea de la sección `inputs` no termine con una coma.  
Si agrega un ID de clave de KMS para cifrar los datos de la sesión, tanto los usuarios que inician sesiones como los nodos administrados a los que se conectan deben tener permiso para utilizar la clave. Usted proporciona el permiso para utilizar la clave de KMS con Session Manager a través de las políticas de AWS Identity and Access Management (IAM). Para obtener información, consulte los siguientes temas:  
Agregar permisos de AWS KMS para los usuarios de su cuenta: [Ejemplos de políticas de IAM para Session Manager](getting-started-restrict-access-quickstart.md).
Agregar permisos de AWS KMS para los nodos administrados de la cuenta: [Paso 2: verificación o agregación de permisos de instancia para Session Manager](session-manager-getting-started-instance-profile.md).

1. Guarde el archivo.

1. En el directorio en el que creó el archivo JSON, ejecute el siguiente comando.

------
#### [ Linux & macOS ]

   ```
   aws ssm update-document \
       --name "SSM-SessionManagerRunShell" \
       --content "file://SessionManagerRunShell.json" \
       --document-version "\$LATEST"
   ```

------
#### [  Windows  ]

   ```
   aws ssm update-document ^
       --name "SSM-SessionManagerRunShell" ^
       --content "file://SessionManagerRunShell.json" ^
       --document-version "$LATEST"
   ```

------
#### [   PowerShell   ]

   ```
   Update-SSMDocument `
       -Name "SSM-SessionManagerRunShell" `
       -Content (Get-Content -Raw SessionManagerRunShell.json) `
       -DocumentVersion '$LATEST'
   ```

------

   Si se ejecuta correctamente, el comando devolverá información similar a la siguiente.

   ```
   {
       "DocumentDescription": {
           "Status": "Updating",
           "Hash": "ce4fd0a2ab9b0fae759004ba603174c3ec2231f21a81db8690a33eb66EXAMPLE",
           "Name": "SSM-SessionManagerRunShell",
           "Tags": [],
           "DocumentType": "Session",
           "PlatformTypes": [
               "Windows",
               "Linux"
           ],
           "DocumentVersion": "2",
           "HashType": "Sha256",
           "CreatedDate": 1537206341.565,
           "Owner": "111122223333",
           "SchemaVersion": "1.0",
           "DefaultVersion": "1",
           "DocumentFormat": "JSON",
           "LatestVersion": "2"
       }
   }
   ```

# Paso 5: (Opcional) Restringir el acceso a los comandos de una sesión
<a name="session-manager-restrict-command-access"></a>

Puede restringir los comandos que un usuario puede ejecutar en una sesión de AWS Systems Manager Session Manager mediante un documento personalizado de tipo `Session` de AWS Systems Manager (SSM). En el documento, debe definir el comando que se ejecuta cuando el usuario inicia una sesión y los parámetros que el usuario puede proporcionar al comando. El valor del documento de `Session` `schemaVersion` debe ser 1.0 y su `sessionType` debe ser `InteractiveCommands`. Luego, puede crear políticas de AWS Identity and Access Management (IAM) que permitan a los usuarios acceder solo a los documentos de `Session` que usted defina. Para obtener más información acerca del uso de las políticas de IAM para restringir el acceso a los comandos de una sesión, consulte [Ejemplos de políticas de IAM para comandos interactivos](#interactive-command-policy-examples).

Los documentos con el `sessionType` de `InteractiveCommands` solo se admiten para sesiones iniciadas desde AWS Command Line Interface (AWS CLI). El usuario brinda el nombre del documento personalizado como valor del parámetro `--document-name` y proporciona cualquier valor de parámetro de comando mediante la opción `--parameters`. Para obtener más información sobre la ejecución de comandos interactivos, consulte [Inicio de una sesión (comandos interactivos y no interactivos)](session-manager-working-with-sessions-start.md#sessions-start-interactive-commands).

Utilice el siguiente procedimiento para crear un documento personalizado de SSM de tipo `Session` que defina el comando que el usuario tiene permitido ejecutar.

## Restringir el acceso a los comandos de una sesión (consola)
<a name="restrict-command-access-console"></a>

**Para restringir los comandos que un usuario puede ejecutar en una sesión de Session Manager (consola)**

1. Abra la consola de AWS Systems Manager en [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. En el panel de navegación, elija **Documentos**.

1. Elija **Create command or session (Crear comando o sesión)**.

1. En **Name** (Nombre), ingrese un nombre descriptivo para el documento.

1. En **Document type (Tipo de documento)**, elija **Session document (Documento Session)**.

1. Escriba el contenido del documento para definir el comando que un usuario puede ejecutar en una sesión de Session Manager utilizando JSON o YAML, tal y como se muestra en el siguiente ejemplo.

------
#### [ YAML ]

   ```
   ---
   schemaVersion: '1.0'
   description: Document to view a log file on a Linux instance
   sessionType: InteractiveCommands
   parameters:
     logpath:
       type: String
       description: The log file path to read.
       default: "/var/log/amazon/ssm/amazon-ssm-agent.log"
       allowedPattern: "^[a-zA-Z0-9-_/]+(.log)$"
   properties:
     linux:
       commands: "tail -f {{ logpath }}"
       runAsElevated: true
   ```

------
#### [ JSON ]

   ```
   {
       "schemaVersion": "1.0",
       "description": "Document to view a log file on a Linux instance",
       "sessionType": "InteractiveCommands",
       "parameters": {
           "logpath": {
               "type": "String",
               "description": "The log file path to read.",
               "default": "/var/log/amazon/ssm/amazon-ssm-agent.log",
               "allowedPattern": "^[a-zA-Z0-9-_/]+(.log)$"
           }
       },
       "properties": {
           "linux": {
               "commands": "tail -f {{ logpath }}",
               "runAsElevated": true
           }
       }
   }
   ```

------

1. Elija **Create document** (Crear documento).

## Restringir el acceso a los comandos de una sesión (línea de comandos)
<a name="restrict-command-access-commandline"></a>

**Antes de empezar**  
Si aún no lo ha hecho, instale y configure la AWS Command Line Interface (AWS CLI) o las Herramientas de AWS para PowerShell. Para obtener información, consulte [Instalación o actualización de la última versión de la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) e [Instalación de Herramientas de AWS para PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html).

**Para restringir los comandos que un usuario puede ejecutar en una sesión de Session Manager (línea de comandos)**

1. Cree un archivo JSON o YAML con el contenido del documento que defina el comando que un usuario puede ejecutar en una sesión de Session Manager, tal y como se muestra en el siguiente ejemplo.

------
#### [ YAML ]

   ```
   ---
   schemaVersion: '1.0'
   description: Document to view a log file on a Linux instance
   sessionType: InteractiveCommands
   parameters:
     logpath:
       type: String
       description: The log file path to read.
       default: "/var/log/amazon/ssm/amazon-ssm-agent.log"
       allowedPattern: "^[a-zA-Z0-9-_/]+(.log)$"
   properties:
     linux:
       commands: "tail -f {{ logpath }}"
       runAsElevated: true
   ```

------
#### [ JSON ]

   ```
   {
       "schemaVersion": "1.0",
       "description": "Document to view a log file on a Linux instance",
       "sessionType": "InteractiveCommands",
       "parameters": {
           "logpath": {
               "type": "String",
               "description": "The log file path to read.",
               "default": "/var/log/amazon/ssm/amazon-ssm-agent.log",
               "allowedPattern": "^[a-zA-Z0-9-_/]+(.log)$"
           }
       },
       "properties": {
           "linux": {
               "commands": "tail -f {{ logpath }}",
               "runAsElevated": true
           }
       }
   }
   ```

------

1. Ejecute los siguientes comandos para crear un documento de SSM en el que se defina el comando que el usuario puede ejecutar en una sesión de Session Manager.

------
#### [ Linux & macOS ]

   ```
   aws ssm create-document \
       --content file://path/to/file/documentContent.json \
       --name "exampleAllowedSessionDocument" \
       --document-type "Session"
   ```

------
#### [  Windows  ]

   ```
   aws ssm create-document ^
       --content file://C:\path\to\file\documentContent.json ^
       --name "exampleAllowedSessionDocument" ^
       --document-type "Session"
   ```

------
#### [   PowerShell   ]

   ```
   $json = Get-Content -Path "C:\path\to\file\documentContent.json" | Out-String
   New-SSMDocument `
       -Content $json `
       -Name "exampleAllowedSessionDocument" `
       -DocumentType "Session"
   ```

------

## Parámetros de comandos interactivos y la AWS CLI
<a name="restrict-command-access-parameters-cli"></a>

Hay una variedad de formas en las que puede proporcionar parámetros de comandos interactivos cuando utiliza la AWS CLI. Según el sistema operativo (SO) del equipo cliente que utilice para conectarse a nodos administrados con la AWS CLI, la sintaxis que proporcione para los comandos que contengan caracteres especiales o de escape puede diferir. En los siguientes ejemplos, se muestran algunas de las diferentes formas de proporcionar parámetros de comando cuando se utiliza la AWS CLI y cómo manejar los caracteres especiales o de escape.

Los parámetros almacenados en Parameter Store se pueden referenciar en la AWS CLI para obtener los parámetros de comandos, como se muestra en el siguiente ejemplo.

------
#### [ Linux & macOS ]

```
aws ssm start-session \
    --target instance-id \
    --document-name MyInteractiveCommandDocument \ 
    --parameters '{"command":["{{ssm:mycommand}}"]}'
```

------
#### [  Windows  ]

```
aws ssm start-session ^
    --target instance-id ^
    --document-name MyInteractiveCommandDocument ^
    --parameters '{"command":["{{ssm:mycommand}}"]}'
```

------

En el siguiente ejemplo, se muestra cómo puede utilizar una sintaxis abreviada con la AWS CLI para pasar parámetros.

------
#### [ Linux & macOS ]

```
aws ssm start-session \
    --target instance-id \
    --document-name MyInteractiveCommandDocument \ 
    --parameters command="ifconfig"
```

------
#### [  Windows  ]

```
aws ssm start-session ^
    --target instance-id ^
    --document-name MyInteractiveCommandDocument ^
    --parameters command="ipconfig"
```

------

También puede proporcionar parámetros en JSON, tal como se muestra en el siguiente ejemplo.

------
#### [ Linux & macOS ]

```
aws ssm start-session \
    --target instance-id \
    --document-name MyInteractiveCommandDocument \ 
    --parameters '{"command":["ifconfig"]}'
```

------
#### [  Windows  ]

```
aws ssm start-session ^
    --target instance-id ^
    --document-name MyInteractiveCommandDocument ^
    --parameters '{"command":["ipconfig"]}'
```

------

Los parámetros también se pueden almacenar en un archivo JSON y proporcionarse a la AWS CLI, como se muestra en el siguiente ejemplo. Para obtener más información acerca del uso de los parámetros de la AWS CLI desde un archivo, consulte [Carga de los parámetros de la AWS CLI desde un archivo](https://docs.aws.amazon.com/cli/latest/userguide/;cli-usage-parameters-file.html) en la *Guía del usuario de la AWS Command Line Interface*.

```
{
    "command": [
        "my command"
    ]
}
```

------
#### [ Linux & macOS ]

```
aws ssm start-session \
    --target instance-id \
    --document-name MyInteractiveCommandDocument \ 
    --parameters file://complete/path/to/file/parameters.json
```

------
#### [  Windows  ]

```
aws ssm start-session ^
    --target instance-id ^
    --document-name MyInteractiveCommandDocument ^
    --parameters file://complete/path/to/file/parameters.json
```

------

También puede generar un esqueleto de la AWS CLI desde un archivo JSON de entrada, tal como se muestra en el siguiente ejemplo. Para obtener más información acerca de la generación de esqueletos de la AWS CLI desde archivos JSON de entrada, consulte [Generación del esqueleto de la AWS CLI y de los parámetros de entrada desde un archivo de entrada JSON o YAML](https://docs.aws.amazon.com/cli/latest/userguide/;cli-usage-skeleton.html) en la *Guía del usuario de la AWS Command Line Interface*.

```
{
    "Target": "instance-id",
    "DocumentName": "MyInteractiveCommandDocument",
    "Parameters": {
        "command": [
            "my command"
        ]
    }
}
```

------
#### [ Linux & macOS ]

```
aws ssm start-session \
    --cli-input-json file://complete/path/to/file/parameters.json
```

------
#### [  Windows  ]

```
aws ssm start-session ^
    --cli-input-json file://complete/path/to/file/parameters.json
```

------

Para los caracteres de escape que se encuentran entre comillas, debe agregar barras inversas adicionales a los caracteres de escape, como se muestra en el siguiente ejemplo.

------
#### [ Linux & macOS ]

```
aws ssm start-session \
    --target instance-id \
    --document-name MyInteractiveCommandDocument \ 
    --parameters '{"command":["printf \"abc\\\\tdef\""]}'
```

------
#### [  Windows  ]

```
aws ssm start-session ^
    --target instance-id ^
    --document-name MyInteractiveCommandDocument ^
    --parameters '{"command":["printf \"abc\\\\tdef\""]}'
```

------

Para obtener más información acerca de cómo utilizar comillas con parámetros de comando en la AWS CLI, consulte [Uso de comillas con cadenas en la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/;cli-usage-parameters-quoting-strings.html) en la *Guía del usuario de la AWS Command Line Interface*.

## Ejemplos de políticas de IAM para comandos interactivos
<a name="interactive-command-policy-examples"></a>

Puede crear políticas de IAM que permitan a los usuarios acceder solo a los documentos de `Session` que usted defina. De este modo, restringirá los comandos que puede ejecutar un usuario en una sesión de Session Manager a solo aquellos comandos que estén especificados en los documentos personalizados de tipo `Session` de SSM.

 **Permitir que un usuario ejecute un comando interactivo en un solo nodo administrado**     
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":"ssm:StartSession",
         "Resource":[
            "arn:aws:ec2:us-east-1:444455556666:instance/i-02573cafcfEXAMPLE",
            "arn:aws:ssm:us-east-1:444455556666:document/allowed-session-document"
         ]
      },
      {
         "Effect": "Allow",
         "Action": ["ssmmessages:OpenDataChannel"],
         "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"]
      }
   ]
}
```

 **Permitir que un usuario ejecute un comando interactivo en todos los nodos administrados**     
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":"ssm:StartSession",
         "Resource":[
            "arn:aws:ec2:us-east-1:444455556666:instance/*",
            "arn:aws:ssm:us-east-1:444455556666:document/allowed-session-document"
         ]
      },
      {
         "Effect": "Allow",
         "Action": ["ssmmessages:OpenDataChannel"],
         "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"]
      }
   ]
}
```

 **Permitir que un usuario ejecute varios comandos interactivos en todos los nodos administrados**     
****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":"ssm:StartSession",
         "Resource":[
            "arn:aws:ec2:us-east-1:444455556666:instance/*",
            "arn:aws:ssm:us-east-1:444455556666:document/allowed-session-document",
            "arn:aws:ssm:us-east-1:444455556666:document/allowed-session-document-2"
         ]
      },
      {
         "Effect": "Allow",
         "Action": ["ssmmessages:OpenDataChannel"],
         "Resource": ["arn:aws:ssm:*:*:session/${aws:userid}-*"]
      }
   ]
}
```

# Paso 6: (Opcional) Utilizar AWS PrivateLink para configurar un punto de enlace de la VPC para Session Manager
<a name="session-manager-getting-started-privatelink"></a>

Puede mejorar aún más la posición de seguridad de los nodos administrados configurando AWS Systems Manager para que use un punto de conexión de la nube virtual privada (VPC) de interfaz. Los puntos de enlace de interfaz tienen la tecnología de AWS PrivateLink que le permite acceder de forma privada a las API de Amazon Elastic Compute Cloud (Amazon EC2) y Systems Manager mediante el uso de direcciones IP privadas. 

AWS PrivateLink restringe todo el tráfico de red entre los nodos administrados, Systems Manager y Amazon EC2 a la red de Amazon. (Los nodos administrados no tienen acceso a Internet). Asimismo, no necesita una gateway de Internet ni un dispositivo NAT ni una gateway privada virtual. 

Para obtener información sobre cómo crear un punto de conexión de VPC, consulte [Mejora de la seguridad de las instancias de EC2 mediante puntos de conexión de VPC para Systems Manager](setup-create-vpc.md).

La alternativa a usar un punto de conexión de VPC es permitir el acceso a Internet saliente en los nodos administrados. En este caso, los nodos administrados también deben permitir el tráfico saliente HTTPS (puerto 443) a los siguientes puntos de conexión:
+  `ec2messages.region.amazonaws.com` 
+  `ssm.region.amazonaws.com` 
+  `ssmmessages.region.amazonaws.com` 

Systems Manager utiliza el último de estos puntos de enlace, `ssmmessages.region.amazonaws.com`, para realizar llamadas desde SSM Agent hacia el servicio Session Manager en la nube.

Para utilizar características opcionales como cifrado de AWS Key Management Service (AWS KMS), streaming de registros a Amazon CloudWatch Logs (CloudWatch Logs) y envío de registros a Amazon Simple Storage Service (Amazon S3), debe permitir el tráfico saliente HTTPS (puerto 443) a los siguientes puntos de conexión:
+  `kms.region.amazonaws.com` 
+  `logs.region.amazonaws.com` 
+  `s3.region.amazonaws.com` 

Para obtener más información acerca de los puntos de enlace requeridos para Systems Manager, consulte [Referencia: ec2messages, ssmmessages y otras operaciones de la API](systems-manager-setting-up-messageAPIs.md).

# Paso 7: (Opcional) Activar o desactivar los permisos administrativos de la cuenta ssm-user
<a name="session-manager-getting-started-ssm-user-permissions"></a>

A partir de la versión 2.3.50.0 de AWS Systems Manager SSM Agent, el agente crea una cuenta de usuario local llamada `ssm-user` y la agrega a `/etc/sudoers` (Linux y macOS) o al grupo de administradores (Windows). En las versiones anteriores a la 2.3.612.0 del agente, la cuenta se crea la primera vez que SSM Agent se inicia o reinicia después de la instalación. En la versión 2.3.612.0 y posteriores, la cuenta `ssm-user` se crea la primera vez que se inicia una sesión en un nodo. Este `ssm-user` es el usuario predeterminado del sistema operativo (SO) cuando se inicia una sesión de AWS Systems Manager Session Manager. La versión 2.3.612.0 de SSM Agent se lanzó el 8 de mayo de 2019.

Si desea impedir que los usuarios de Session Manager ejecuten comandos administrativos en un nodo, puede actualizar los permisos de las cuentas `ssm-user`. También puede restaurar estos permisos después de que se hayan eliminado.

**Topics**
+ [Administración de permisos de cuentas ssm-user sudo en Linux y macOS](#ssm-user-permissions-linux)
+ [Administración de los permisos de las cuentas de administrador ssm-user en Windows Server](#ssm-user-permissions-windows)

## Administración de permisos de cuentas ssm-user sudo en Linux y macOS
<a name="ssm-user-permissions-linux"></a>

Utilice uno de los siguientes procedimientos para activar o desactivar los permisos sudo de las cuentas ssm-user en nodos administrados de Linux y macOS.

**Use Run Command para modificar permisos sudo de ssm-user (consola)**
+ Utilice el procedimiento en [Ejecución de comandos desde la consola](running-commands-console.md) con los siguientes valores:
  + En **Command document (Documento Command)**, elija `AWS-RunShellScript`.
  + Para eliminar el acceso sudo, en el área **Command parameters** (Parámetros de comandos), pegue lo siguiente en el cuadro **Commands** (Comandos).

    ```
    cd /etc/sudoers.d
    echo "#User rules for ssm-user" > ssm-agent-users
    ```

    -o bien-

    Para restaurar el acceso sudo, en el área **Command parameters** (Parámetros de comandos), pegue lo siguiente en el cuadro **Commands** (Comandos).

    ```
    cd /etc/sudoers.d 
    echo "ssm-user ALL=(ALL) NOPASSWD:ALL" > ssm-agent-users
    ```

**Uso de la línea de comandos para modificar permisos sudo de ssm-user (AWS CLI)**

1. Conéctese al nodo administrado y ejecute el siguiente comando.

   ```
   sudo -s
   ```

1. Cambie el directorio de trabajo con el siguiente comando.

   ```
   cd /etc/sudoers.d
   ```

1. Abra el archivo con el nombre `ssm-agent-users` para editarlo.

1. Para eliminar el acceso sudo, elimine la siguiente línea.

   ```
   ssm-user ALL=(ALL) NOPASSWD:ALL
   ```

   -o bien-

   Para restaurar el acceso sudo, agregue la siguiente línea.

   ```
   ssm-user ALL=(ALL) NOPASSWD:ALL
   ```

1. Guarde el archivo.

## Administración de los permisos de las cuentas de administrador ssm-user en Windows Server
<a name="ssm-user-permissions-windows"></a>

Utilice uno de los siguientes procedimientos para activar o desactivar los permisos de administrador de las cuentas ssm-user en los nodos administrados de Windows Server.

**Uso de Run Command para modificar los permisos de administrador (consola)**
+ Utilice el procedimiento en [Ejecución de comandos desde la consola](running-commands-console.md) con los siguientes valores:

  En **Command document (Documento Command)**, elija `AWS-RunPowerShellScript`.

  Para eliminar el acceso administrativo, en el área **Command parameters** (Parámetros de comandos), pegue lo siguiente en el cuadro **Commands** (Comandos).

  ```
  net localgroup "Administrators" "ssm-user" /delete
  ```

  -o bien-

  Para restaurar el acceso administrativo, en el área **Command parameters** (Parámetros de comandos), pegue lo siguiente en el cuadro **Commands** (Comandos).

  ```
  net localgroup "Administrators" "ssm-user" /add
  ```

**Uso de la ventana de PowerShell o del símbolo del sistema para modificar los permisos de administrador**

1. Conéctese al nodo administrado y abra la ventana de PowerShell o del símbolo del sistema.

1. Para eliminar el acceso administrativo, ejecute el siguiente comando.

   ```
   net localgroup "Administrators" "ssm-user" /delete
   ```

   -o bien-

   Para restaurar el acceso administrativo, ejecute el siguiente comando.

   ```
   net localgroup "Administrators" "ssm-user" /add
   ```

**Uso de la consola de Windows para modificar los permisos de administrador**

1. Conéctese al nodo administrado y abra la ventana de PowerShell o del símbolo del sistema.

1. En la línea de comandos, ejecute `lusrmgr.msc` para abrir la consola **Local Users and Groups (Grupos y usuarios locales)**.

1. Abra el directorio **Usuarios** y, a continuación, **ssm-user**.

1. En la pestaña **Member Of (Miembro de)**, realice una de las siguientes acciones:
   + Para eliminar el acceso administrativo, seleccione **Administradores** y, a continuación, seleccione **Quitar**.

     -o bien-

     Para restaurar el acceso administrativo, ingrese **Administrators** en el cuadro de texto y, a continuación, elija **Add** (Agregar).

1. Seleccione **Aceptar**.

# Paso 8: (Opcional) Permitir y controlar permisos para conexiones de SSH mediante Session Manager
<a name="session-manager-getting-started-enable-ssh-connections"></a>

Puede permitir que los usuarios de la Cuenta de AWS utilicen la AWS Command Line Interface (AWS CLI) para establecer conexiones de Secure Shell (SSH) a los nodos administrados usando AWS Systems Manager Session Manager. Los usuarios que se conectan usando SSH también pueden copiar archivos entre sus máquinas locales y nodos administrados usando el protocolo de copia segura (SCP). Puede usar esta funcionalidad para conectarse a nodos administrados sin abrir puertos de entrada o mantener hosts de bastión.

 Cuando establece conexiones SSH a través deSession Manager, AWS CLI y SSM Agent crean conexiones WebSocket seguras a través de TLS a los puntos de conexión de Session Manager. La sesión SSH se ejecuta dentro de este túnel cifrado, lo que proporciona una capa adicional de seguridad sin necesidad de abrir los puertos de entrada en los nodos administrados.

Después de permitir las conexiones de SSH, puede utilizar las políticas de AWS Identity and Access Management (IAM) a fin de permitir o denegar explícitamente las conexiones de SSH mediante Session Manager a usuarios, grupos o roles.

**nota**  
El registro no está disponible para las sesiones de Session Manager que se conectan a través del reenvío de puertos o de SSH. Esto se debe a que SSH cifra todos los datos de la sesión dentro de la conexión TLS segura establecida entre los puntos de conexión AWS CLI y Session Manager, y Session Manager solo funciona como túnel para las conexiones de SSH.

**Topics**
+ [Permitir las conexiones de SSH para Session Manager](#ssh-connections-enable)
+ [Control de los permisos de usuario para las conexiones de SSH mediante Session Manager](#ssh-connections-permissions)

## Permitir las conexiones de SSH para Session Manager
<a name="ssh-connections-enable"></a>

Siga los siguientes pasos para permitir las conexiones de SSH mediante Session Manager en un nodo administrado. 

**Para permitir las conexiones de SSH para Session Manager**

1. En el nodo administrado en el que desea permitir las conexiones de SSH, realice el siguiente procedimiento:
   + Asegúrese de que se está ejecutando SSH en el nodo administrado. (Puede cerrar los puertos de entrada del nodo).
   + Asegúrese de la versión 2.3.672.0 de SSM Agent o una versión posterior esté instalada en el nodo administrado.

     Para obtener información sobre cómo instalar o actualizar el SSM Agent en un nodo administrado, consulte los siguientes temas:
     + [Cómo instalar y desinstalar de forma manual SSM Agent en instancias de EC2 para Windows Server](manually-install-ssm-agent-windows.md).
     +  [Instalación y desinstalación manual de SSM Agent en instancias de EC2 para Linux](manually-install-ssm-agent-linux.md) 
     +  [Instalación y desinstalación manual de SSM Agent en instancias de EC2 para macOS](manually-install-ssm-agent-macos.md) 
     +  [Cómo instalar SSM Agent en nodos de Windows híbridos](hybrid-multicloud-ssm-agent-install-windows.md) 
     +  [Cómo instalar SSM Agent en nodos de Linux híbridos](hybrid-multicloud-ssm-agent-install-linux.md) 
**nota**  
Para utilizar Session Manager con servidores en las instalaciones, dispositivos periféricos y máquinas virtuales (VM) que activó como nodos administrados, debe utilizar el nivel de instancias avanzadas. Para obtener más información acerca de las instancias avanzadas, consulte [Configuración de los niveles de instancias](fleet-manager-configure-instance-tiers.md).

1. En la máquina local desde la que desea conectarse a un nodo administrado utilizando SSH, haga lo siguiente:
   + Asegúrese de que la versión 1.1.23.0 o posterior del complemento Session Manager está instalada.

     Para obtener más información sobre la Session Manager instalación del plugin, consulte [Instalación del complemento de Session Manager para la AWS CLI](session-manager-working-with-install-plugin.md).
   + Actualice el archivo de configuración de SSH para permitir la ejecución de un comando de proxy que inicie una sesión de Session Manager y transfiera todos los datos a través de la conexión.

      **Linux y macOS** 
**sugerencia**  
El archivo de configuración de SSH suele estar en `~/.ssh/config`.

     Agregue lo siguiente al archivo de configuración en el equipo local.

     ```
     # SSH over Session Manager
     Host i-* mi-*
         ProxyCommand sh -c "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"
         User ec2-user
     ```

      ** Windows ** 
**sugerencia**  
El archivo de configuración de SSH suele estar en `C:\Users\<username>\.ssh\config`.

     Agregue lo siguiente al archivo de configuración en el equipo local.

     ```
     # SSH over Session Manager
     Host i-* mi-*
         ProxyCommand C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters portNumber=%p"
     ```
   + Cree o verifique que tiene un certificado Privacy Enhanced Mail (un archivo PEM) o, al menos, una clave pública, que se utilizará a la hora de establecer conexiones a los nodos administrados. Debe ser una clave que ya esté asociada al nodo administrado. Se deben configurar los permisos del archivo de clave privada para que solo usted pueda leerlo. Puede utilizar el siguiente comando para configurar los permisos del archivo de clave privada para que solo usted pueda leerlo.

     ```
     chmod 400 <my-key-pair>.pem
     ```

     Por ejemplo, para una instancia de Amazon Elastic Compute Cloud (Amazon EC2), el archivo de par de claves que creó o seleccionó cuando creó la instancia. (Debe especificar la ruta al certificado o a la clave como parte del comando para iniciar una sesión. Para obtener más información acerca de cómo iniciar una sesión mediante SSH, consulte ). [Inicio de una sesión (SSH)](session-manager-working-with-sessions-start.md#sessions-start-ssh).)

## Control de los permisos de usuario para las conexiones de SSH mediante Session Manager
<a name="ssh-connections-permissions"></a>

Después de habilitar las conexiones de SSH mediante Session Manager en un nodo administrado, puede utilizar las políticas de IAM para permitir o denegar la capacidad de establecer conexiones de SSH a usuarios, grupos o roles a través de Session Manager. 

**Uso de políticas de IAM para permitir las conexiones de SSH a través de Session Manager**
+ Utilice una de las siguientes opciones:
  + **Opción 1**: abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/). 

    En el panel de navegación, elija **Policies (Políticas)** y actualice la política de permisos del usuario o rol al que desea permitir que inicie conexiones SSH a través de Session Manager. 

    Por ejemplo, agregue el siguiente elemento a la política de inicio rápido que creó en . [Políticas de usuarios finales de inicio rápido de Session Manager](getting-started-restrict-access-quickstart.md#restrict-access-quickstart-end-user). Reemplace cada *example resource placeholder* por su propia información. 

------
#### [ JSON ]

****  

    ```
    {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "ssm:StartSession",
                "Resource": [
                    "arn:aws:ec2:us-east-1:111122223333:instance/instance-id",
                    "arn:aws:ssm:*:*:document/AWS-StartSSHSession"
                ]
            },
            {
                "Effect": "Allow",
                "Action": "ssmmessages:OpenDataChannel",
                "Resource": "arn:aws:ssm:*:*:session/${aws:userid}-*"
            }
        ]
    }
    ```

------
  + **Opción 2**: adjunte una política insertada a una política de usuario mediante la Consola de administración de AWS, la AWS CLI o la API de AWS.

    Uso del método que elija para adjuntar la declaración de política en la **Opción 1** a la política para un usuario, grupo o rol de AWS.

    Para obtener información, consulte [Agregagado y eliminación de permisos de identidad de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) en la *Guía del usuario de IAM*.

**Uso de una política de IAM para denegar las conexiones de SSH mediante Session Manager**
+ Utilice una de las siguientes opciones:
  + **Opción 1**: abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/). En el panel de navegación, elija **Policies (Políticas)**, y, a continuación, actualice la política de permisos de forma que el usuario o el rol no puedan iniciar sesiones de Session Manager. 

    Por ejemplo, agregue el siguiente elemento a la política de inicio rápido que creó en [Políticas de usuarios finales de inicio rápido de Session Manager](getting-started-restrict-access-quickstart.md#restrict-access-quickstart-end-user).

------
#### [ JSON ]

****  

    ```
    {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Effect": "Deny",
                "Action": "ssm:StartSession",
                "Resource": "arn:aws:ssm:*:*:document/AWS-StartSSHSession"
            },
            {
                "Effect": "Allow",
                "Action": "ssmmessages:OpenDataChannel",
                "Resource": "arn:aws:ssm:*:*:session/${aws:userid}-*"
            }
        ]
    }
    ```

------
  + **Opción 2**: adjunte una política insertada a una política de usuario mediante la Consola de administración de AWS, la AWS CLI o la API de AWS.

    Uso del método que elija para adjuntar la declaración de política en la **Opción 1** a la política para un usuario, grupo o rol de AWS.

    Para obtener información, consulte [Agregagado y eliminación de permisos de identidad de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) en la *Guía del usuario de IAM*.