Configura el acceso a SO

En este documento, se cubren los pasos básicos para configurar el Acceso al SO.

El Acceso al SO te permite usar las funciones de IAM de Compute Engine para otorgar o revocar el acceso SSH a tus instancias de Linux. El Acceso al SO es una alternativa para administrar el acceso a instancias si agregas y quitas llaves SSH en los metadatos. Para obtener más información sobre los beneficios de usar esta función, consulta Acceso al SO.

Si quieres habilitar el Acceso al SO con una capa de seguridad mediante la autenticación de dos factores, consulta la sección sobre cómo configura el Acceso al SO con la verificación en dos pasos. Si deseas revisar todas las opciones para administrar el acceso a tus VM, consulta Elige un método de acceso.

Si deseas configurar el Acceso al SO y conectarte a tus instancias, completa los siguientes pasos:

  1. Instala o actualiza el entorno invitado.
  2. Si eres administrador de una organización, consulta Administra el Acceso al SO en una organización (opcional).
  3. Habilita las características de Acceso al SO en tu proyecto o en instancias individuales.
  4. Otorga las funciones de IAM necesarias a ti o a otras principales.
  5. Conéctate a las instancias.

Antes de comenzar

Limitaciones

  • El Acceso al SO es compatible con clústeres privados de Google Kubernetes Engine (GKE) que ejecutan las versiones 1.20.5 o posteriores del grupo de nodos.

  • El Acceso al SO no es compatible con los clústeres de GKE públicos. Los nodos del clúster de GKE usan claves SSH de metadatos cuando el Acceso al SO está habilitado.

  • En la actualidad, las imágenes de Fedora CoreOS no son compatibles con Acceso al SO. Para administrar el acceso de las instancias a las VM creadas mediante estas imágenes, usa el sistema de encendido Fedora CoreOS.

  • Las imágenes de Windows Server y SQL Server no son compatibles con Acceso al SO.

Paso 1: Instala o actualiza el entorno invitado

Tu instancia de VM debe tener instalada la versión más reciente del entorno invitado. La mayoría de las imágenes públicas ya tienen instalada la versión más reciente. Si no tienes el más reciente, actualiza tu entorno invitado.

Si tienes VM que ejecutan imágenes personalizadas que importaste, instala el entorno invitado en esas VM.

Si no tienes el más reciente, actualiza tu entorno invitado.

Paso 2: Revisa cómo administrar el Acceso al SO en una organización (opcional)

Si eres administrador de la organización, puedes configurar algunas opciones, como habilitar el Acceso al SO a nivel de la organización. Consulta Administra el Acceso al SO en una organización.

Paso 3: Habilita o inhabilita el Acceso al SO

Puedes habilitar o inhabilitar el Acceso al SO si estableces valores de metadatos a nivel de la instancia o del proyecto. Habilitar o inhabilitar el Acceso al SO en los metadatos de la instancia anula el valor establecido en los metadatos del proyecto. Para configurar los valores de Acceso al SO, puedes usar Google Cloud Console o la herramienta de línea de comandos de gcloud.

Console

Puedes aplicar los valores de metadatos a tus proyectos o VM mediante una de las siguientes opciones:

  • Opción 1: configura enable-oslogin en los metadatos de todo el proyecto para que se apliquen a todas las instancias del proyecto.

    1. En Google Cloud Console, ve a la página Metadatos.

      Ir a metadatos

    2. Haz clic en Editar.

    3. Agrega una entrada de metadatos y configura la clave en enable-oslogin y el valor en TRUE. También puedes configurar el valor en FALSE para inhabilitar la función.

    4. Haz clic en Guardar para aplicar los cambios.

  • Opción 2: Establece enable-oslogin en los metadatos de una instancia existente.

    1. En Google Cloud Console, ve a la página Instancias de VM.

      Ir a Instancias de VM

    2. Haz clic en el nombre de la instancia en la que deseas habilitar Acceso al SO.

    3. En la página de detalles de la instancia, haz clic en Editar.

    4. En Metadatos personalizados, agrega una entrada de metadatos y configura la clave como enable-oslogin y el valor como TRUE. También puedes configurar el valor como FALSE para inhabilitar Acceso al SO en la instancia.

    5. Haz clic en Guardar para aplicar los cambios en la instancia.

  • Opción 3: Establece enable-oslogin en los metadatos de la instancia cuando crees una instancia.

    1. En Google Cloud Console, ve a la página Crear una instancia.

      Ir a Crear una instancia

    2. Expande la sección Herramientas de redes, discos, seguridad, administración, instancia única y, luego, sigue estos pasos:

      1. Expande la sección Administración.
      2. Para agregar una entrada de metadatos, en la sección Metadatos, haz clic en Agregar elemento. Luego, proporciona la siguiente información:

        • Clave: establece la clave de metadatos en enable-oslogin.
        • Valor: establece el valor de metadatos en TRUE.

        También puedes configurar el valor como FALSE para excluir la VM de la función.

    3. Haz clic en Crear.

gcloud

Puedes aplicar los valores de metadatos en tus proyectos o VM mediante una de las siguientes opciones:

  • Opción 1: configura enable-oslogin en los metadatos de todo el proyecto para que se apliquen a todas las instancias del proyecto.

    Usa el comando project-info add-metadata en la herramienta de línea de comandos de gcloud y configura un valor de metadatos como oslogin=TRUE para habilitar el acceso al SO:

    gcloud compute project-info add-metadata \
        --metadata enable-oslogin=TRUE
    

    También puedes establecer enable-oslogin en FALSE para inhabilitar el Acceso al SO.

  • Opción 2: Establece enable-oslogin en los metadatos de una instancia existente.

    Usa el comando instances add-metadata en la herramienta de línea de comandos de gcloud y configura oslogin=TRUE para habilitar el Acceso al SO. Reemplaza VM_NAME con el nombre de tu VM.

    gcloud compute instances add-metadata VM_NAME \
        --metadata enable-oslogin=TRUE
    

    También puedes establecer enable-oslogin en FALSE para excluir tu instancia del uso del Acceso al SO.

  • Opción 3: Establece enable-oslogin en los metadatos de la instancia cuando crees una instancia.

    Usa el comando instances create en la herramienta de línea de comandos de gcloud y configura oslogin=TRUE para habilitar el Acceso al SO. Reemplaza VM_NAME por el nombre de tu instancia de VM.

    gcloud compute instances create VM_NAME \
        --metadata enable-oslogin=TRUE
    

    También puedes establecer enable-oslogin en FALSE para excluir tu instancia del uso del Acceso al SO.

Después de habilitar el Acceso al SO en las instancias de tu proyecto, otorga a los usuarios permiso para conectarse a esas instancias.

Paso 4: Configura las funciones del Acceso al SO en las cuentas de usuario

Otorga funciones de IAM de Acceso al SO

Después de habilitar el Acceso al SO en una o más instancias del proyecto, esas VM solo aceptan conexiones de cuentas de usuario que tienen las funciones de IAM necesarias en la organización o el proyecto.

Para permitir el Acceso al SO a estas VM, debes otorgar las funciones necesarias al usuario. Si quieres hacerlo, sigue estos pasos:

  1. Otorga una de las siguientes funciones de acceso a la instancia.

    Puedes otorgar estas funciones de acceso a instancias a nivel de la instancia mediante el comando gcloud compute instances add-iam-policy-binding.

  2. Si tu VM usa una cuenta de servicio, cada usuario que se conecta a la VM mediante SSH tiene la capacidad de robar la identidad de la cuenta de servicio. A fin de garantizar que el robo de identidad sigue las prácticas recomendadas, configura cada usuario para que tenga la función roles/iam.serviceAccountUser en la cuenta de servicio. Si deseas obtener información para agregar el acceso de un usuario a una cuenta de servicio, consulta Administra el robo de identidad de cuentas de servicio.

  3. Además de otorgar una función de acceso a instancias, debes otorgar la función roles/compute.osLoginExternalUser si quieres que usuarios ajenos a tu organización puedan acceder a las VM. Un administrador de la organización debe otorgar esta función a nivel de la organización. Para obtener más información, consulta Otorga acceso a instancias a usuarios fuera de tu organización.

Otorga acceso SSH a una cuenta de servicio

Puedes usar las funciones de Acceso al SO para permitir que las cuentas de servicio establezcan conexiones SSH con tus instancias. Esto es útil para las siguientes tareas:

Puedes otorgar acceso SSH a tus cuentas de servicio mediante el siguiente proceso:

  1. Crea una cuenta de servicio.
  2. Otorga a tu cuenta de servicio las funciones de Acceso al SO necesarias. Las cuentas de servicio requieren las mismas funciones que las cuentas de usuario. Si quieres aprender a configurar funciones y permisos para cuentas de servicio, consulta la página sobre cómo conceder funciones a cuentas de servicio.
  3. Otorga credenciales predeterminadas de la aplicación a tu cuenta de servicio para que pueda autorizar solicitudes a las API correspondientes. Otorga credenciales predeterminadas de la aplicación mediante una de las siguientes opciones:

Después de otorgar acceso SSH a tus cuentas de servicio, puedes configurar tus apps para crear claves SSH y establecer conexiones SSH con otras instancias en tus redes de VPC. Para ver una app de ejemplo de una cuenta de servicio SSH, lee el instructivo Conecta apps a instancias mediante SSH.

Revoca funciones de IAM de Acceso al SO

Si quieres revocar el acceso del usuario a las instancias que estén habilitadas para usar el Acceso al SO, quita las funciones del usuario de esa cuenta de usuario. Para obtener información sobre cómo quitar una función de IAM a un usuario, consulta la página sobre cómo otorgar, cambiar y revocar el acceso a los recursos.

Cuando se revoca el acceso de un usuario, este seguirá teniendo llaves SSH públicas asociadas a su cuenta, pero esas claves ya no funcionarán en las instancias de VM.

Paso 5: Conéctate a instancias

Cuando te conectas a una VM, tienes 3 opciones principales:

Si te conectas a una VM mediante la herramienta de línea de comandos de gcloud o una conexión SSH desde el navegador, Compute Engine genera claves SSH y las asocia a tu cuenta de usuario de forma automática. Para conectarte a una VM con una herramienta de terceros, primero debes agregar las claves públicas a tu cuenta de usuario.

Después de conectarte a tu instancia, revisa los comportamientos de acceso esperados.

Revisa los comportamientos de acceso esperados

  • En algunas instancias que usan Acceso al SO, es posible que recibas el siguiente mensaje de error después de establecer la conexión:

    /usr/bin/id: cannot find name for group ID 123456789

    Ignora este mensaje de error. Este error no afecta tus instancias.

  • Los administradores de Cloud Identity pueden configurar la información de POSIX y establecer un nombre de usuario para los miembros de la organización. Si un administrador de Cloud Identity no establece un nombre de usuario, el acceso al SO genera un nombre de usuario de Linux predeterminado. Para hacerlo, combina el nombre de usuario y el dominio de la dirección de correo electrónico asociada al perfil de Google del usuario. Esta regla garantiza que los nombres no se repitan. Por ejemplo, si el correo electrónico de usuario asociado con el perfil de Google es user@example.com, entonces el nombre de usuario que se genera es user_example_com.

    Las organizaciones de Google Workspace pueden cambiar su configuración predeterminada a fin de quitar el sufijo de dominio de los nombres de usuario recién generados. Por ejemplo, si la dirección de correo electrónico del usuario asociada al perfil de Google es user@example.com, el nombre de usuario generado será user. Para obtener más información, consulta Administra la API del Acceso al SO.

    Si un usuario es de una organización independiente de Google Workspace, el nombre de usuario generado tiene el prefijo “ext_”. Por ejemplo, si user@example.com accede a una VM en una organización diferente, entonces el nombre de usuario generado es ext_user_example_com.

  • Cuando accedes a una instancia mediante el comando gcloud compute ssh, el mensaje de acceso tiene el siguiente formato para un usuario user que pertenece al dominio example.com:

    Using OS Login user user_example_com instead of default user user

    Este mensaje confirma que el usuario está accediendo con un perfil de Acceso al SO.

¿Qué sigue?