Configurar OS Login


En este documento se describe cómo configurar OS Login y OS Login con autenticación de dos factores (2FA).

OS Login te permite controlar el acceso a las instancias de máquina virtual (VM) en función de los permisos de gestión de identidades y accesos (IAM). Puedes usar OS Login con o sin la autenticación de dos factores, pero no puedes usar la autenticación de dos factores sin usar OS Login. Para obtener más información sobre OS Login y la autenticación de dos factores de OS Login, incluidos los tipos de verificación que admite OS Login, consulta Información sobre OS Login.

Antes de empezar

  • Si quieres usar la autenticación de dos factores de OS Login, habilita la autenticación de dos factores en tu dominio o cuenta:
  • Si aún no lo has hecho, configura la autenticación. La autenticación verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    2. Set a default region and zone.

    Terraform

    Para usar las muestras de Terraform de esta página en un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, a continuación, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.

      Instala Google Cloud CLI.

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

      If you're using a local shell, then create local authentication credentials for your user account:

      gcloud auth application-default login

      You don't need to do this if you're using Cloud Shell.

      If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

    Para obtener más información, consulta Set up authentication for a local development environment.

Limitaciones

OS Login no se admite en las siguientes VMs:
  • Máquinas virtuales de Windows Server y SQL Server
  • Máquinas virtuales de Fedora CoreOS. Para gestionar el acceso a las instancias de las VMs creadas con estas imágenes, usa el sistema de Ignition de Fedora CoreOS.

Asignar roles de gestión de identidades y accesos de OS Login

Asigna todos los roles de gestión de identidades y accesos necesarios a los usuarios que se conecten a las VMs que tengan habilitado el inicio de sesión con SO.

Rol Usuarios obligatorios Nivel de concesión
roles/compute.osLogin o roles/compute.osAdminLogin Todos los usuarios

En el proyecto o en la instancia.

Si un usuario necesita acceso SSH desde la consola o la interfaz de línea de comandos de Google Cloud, debes asignarle estos roles a nivel de proyecto o, además, asignarle un rol a nivel de proyecto que contenga el permiso compute.projects.get. Google Cloud

roles/iam.serviceAccountUser Todos los usuarios, si la VM tiene una cuenta de servicio En la cuenta de servicio.
roles/compute.osLoginExternalUser Usuarios de una organización diferente a la de la máquina virtual a la que se conectan

En la organización.

Un administrador de la organización debe conceder este rol.

Habilitar OS Login

Puedes habilitar OS Login u OS Login con autenticación de dos factores en una sola VM o en todas las VMs de un proyecto configurando los metadatos de OS Login.

Cuando configuras los metadatos de OS Login, Compute Engine elimina los archivos authorized_keys de la VM y deja de aceptar conexiones de claves SSH almacenadas en los metadatos del proyecto o de la instancia.

Habilitar OS Login en todas las VMs de un proyecto

Para habilitar OS Login en todas las VMs de un proyecto, define los siguientes valores en los metadatos del proyecto:

  1. Habilita OS Login:
    • Tecla: enable-oslogin
    • Valor: TRUE
  2. (Opcional) Habilita la autenticación de dos factores:
    • Tecla: enable-oslogin-2fa
    • Valor: TRUE

Habilitar OS Login en una sola VM

Para habilitar el inicio de sesión del SO en una sola VM, define los siguientes valores en los metadatos de la instancia:

  1. Habilita OS Login:
    • Tecla: enable-oslogin
    • Valor: TRUE
  2. (Opcional) Habilita la autenticación de dos factores:
    • Tecla: enable-oslogin-2fa
    • Valor: TRUE

Habilitar OS Login durante la creación de la VM

Habilita OS Login (opcionalmente, con la verificación en dos pasos) al crear una VM con la Google Cloud consola o la CLI de gcloud.

Consola

Crea una VM que habilite OS Login y (opcionalmente) la autenticación de dos factores de OS Login al iniciarse. Para ello, crea una VM a partir de una imagen pública y especifica las siguientes configuraciones:

  1. Expande la sección Opciones avanzadas.
  2. Despliega la sección Seguridad.
  3. Despliega la sección Gestionar acceso.
  4. Selecciona Controlar el acceso a la VM mediante permisos de gestión de identidades y accesos.
  5. Opcional: Si quieres habilitar la autenticación de dos factores de OS Login, selecciona Requerir verificación en dos pasos.
  6. Haz clic en Crear para crear e iniciar la VM.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Crea una VM que habilite OS Login y (opcionalmente) la autenticación de dos factores de OS Login al iniciarse ejecutando uno de los siguientes gcloud compute instance create comandos:

    • Para habilitar solo el inicio de sesión del SO, ejecuta el siguiente comando:

      gcloud compute instances create VM_NAME \
       --image-family=IMAGE_FAMILY \
       --image-project=IMAGE_PROJECT \
       --metadata enable-oslogin=TRUE
      
    • Para habilitar la autenticación de dos factores de inicio de sesión del SO, ejecuta el siguiente comando:

      gcloud compute instances create VM_NAME \
       --image-family=IMAGE_FAMILY \
       --image-project=IMAGE_PROJECT \
       --metadata enable-oslogin=TRUE,enable-oslogin-2fa=TRUE
      

    Haz los cambios siguientes:

    • VM_NAME: nombre de la nueva VM.
    • IMAGE_FAMILY: la familia de imágenes de un SO Linux. De este modo, se crea la VM a partir de la imagen de SO no obsoleta más reciente. Para ver todas las familias de imágenes públicas, consulta Detalles del sistema operativo.
    • IMAGE_PROJECT: el proyecto de imagen que contiene la familia de imágenes. Cada SO tiene su propio proyecto de imagen. Para ver todos los proyectos de imágenes públicas, consulta Detalles del sistema operativo.
  3. Terraform

    Puede aplicar los valores de metadatos a sus proyectos o VMs mediante una de las siguientes opciones:

    • Opción 1: Define enable-oslogin en los metadatos de todo el proyecto para que se aplique a todas las máquinas virtuales del proyecto.

      Usa el recurso de Terraform google_compute_project_metadata y define un valor de metadatos donde oslogin=TRUE:

      resource "google_compute_project_metadata" "default" {
        metadata = {
          enable-oslogin = "TRUE"
        }
      }

      También puedes definir enable-oslogin como FALSE para inhabilitar el inicio de sesión del SO.

    • Opción 2: Define enable-oslogin en los metadatos de una VM nueva o de una que ya tengas.

      Usa el recurso de Terraform google_compute_instance y define oslogin=TRUE. Sustituye oslogin_instance_name por el nombre de tu VM.

      resource "google_compute_instance" "oslogin_instance" {
        name         = "oslogin-instance-name"
        machine_type = "f1-micro"
        zone         = "us-central1-c"
        metadata = {
          enable-oslogin : "TRUE"
        }
        boot_disk {
          initialize_params {
            image = "debian-cloud/debian-11"
          }
        }
        network_interface {
          # A default network is created for all GCP projects
          network = "default"
          access_config {
          }
        }
      }

      También puedes definir enable-oslogin como FALSE para evitar que tu máquina virtual use OS Login.

Conectarse a VMs que tengan habilitado OS Login

Conéctate a las máquinas virtuales que tengan habilitado OS Login mediante los métodos descritos en Conectarse a máquinas virtuales de Linux.

Cuando te conectas a máquinas virtuales que tienen habilitado el inicio de sesión del SO, Compute Engine usa el nombre de usuario que el administrador de tu organización ha configurado para ti. Si el administrador de tu organización no ha configurado un nombre de usuario para ti, Compute Engine genera un nombre de usuario con el formato USERNAME_DOMAIN_SUFFIX. Para obtener más información sobre los nombres de usuario, consulta Cómo funciona el inicio de sesión del SO.

Cuando te conectas a máquinas virtuales que tienen habilitada la autenticación de dos factores de inicio de sesión del SO, también ves un mensaje en función del método de verificación en dos pasos o del tipo de verificación que hayas seleccionado. Si eliges el método de notificación en el teléfono, acepta las notificaciones en tu teléfono o tablet para continuar. Para otros métodos, introduce tu código de seguridad o tu contraseña de un solo uso.

Solucionar problemas de OS Login

Para consultar los métodos para diagnosticar y resolver errores de OS Login, consulta Solucionar problemas de OS Login.

Siguientes pasos