Paso 8: (Opcional) Permitir y controlar permisos para conexiones de SSH mediante Session Manager - AWS Systems Manager

Paso 8: (Opcional) Permitir y controlar permisos para conexiones de SSH mediante Session Manager

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.

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 y Session Manager solo sirve como túnel para las conexiones de SSH.

Permitir las conexiones de SSH para Session Manager

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:

  2. 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.

    • 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'"

      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)).

Control de los permisos de usuario para las conexiones de SSH mediante Session Manager

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/.

      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. Reemplace cada example resource placeholder por su propia información.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ssm:StartSession", "Resource": [ "arn:aws:ec2:region:account-id:instance/instance-id", "arn:aws:ssm:*:*:document/AWS-StartSSHSession" ], "Condition": { "BoolIfExists": { "ssm:SessionDocumentAccessCheck": "true" } } } ] }
    • Opción 2: adjunte una política insertada a una política de usuario mediante la AWS Management Console, 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 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/. 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.

      { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor1", "Effect": "Deny", "Action": "ssm:StartSession", "Resource": "arn:aws:ssm:*:*:document/AWS-StartSSHSession" } ], "Condition": { "BoolIfExists": { "ssm:SessionDocumentAccessCheck": "true" } } }
    • Opción 2: adjunte una política insertada a una política de usuario mediante la AWS Management Console, 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 en la Guía del usuario de IAM.