Administrar el inicio de sesión del sistema operativo en una organización


Este documento describe cómo puede utilizar el inicio de sesión del sistema operativo para administrar el acceso a instancias de VM en toda su organización.

Este tema cubre las siguientes tareas:

Antes de comenzar

  • Si aún no lo has hecho, configura la autenticación. La autenticación es el proceso mediante el cual se verifica su identidad para acceder a Google Cloud servicios y API. Para ejecutar código o muestras 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. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.
    3. REST

      Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      Para obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud .

Política de organización de inicio de sesión del sistema operativo

Puede configurar una restricción de inicio de sesión en el sistema operativo en su organización para garantizar que todos los proyectos nuevos y las instancias de VM creadas en estos nuevos proyectos tengan habilitado el inicio de sesión en el sistema operativo.

Cuando se establece esta restricción, se aplican las siguientes condiciones:

  • enable-oslogin=true se incluye en los metadatos del proyecto para todos los proyectos nuevos.
  • Las solicitudes que configuran enable-oslogin en false en metadatos de instancia o proyecto se rechazan para máquinas virtuales y proyectos nuevos y existentes.

Limitaciones

El inicio de sesión en el sistema operativo no es compatible con los siguientes productos, funciones y máquinas virtuales:
  • Versiones 6.1.4 y anteriores de Cloud Data Fusion
  • Compositor de la nube 1
  • Clústeres públicos de Google Kubernetes Engine (GKE) que ejecutan versiones anteriores a la 1.23.5
  • Clústeres privados de GKE que ejecutan versiones del grupo de nodos anteriores a la 1.20.5
  • Dataproc sin servidor
  • Máquinas virtuales Windows Server y SQL Server
  • Máquinas virtuales Fedora CoreOS. Para administrar el acceso de instancia a las máquinas virtuales creadas con estas imágenes, use el sistema de encendido Fedora CoreOS

Soluciones alternativas para Cloud Data Fusion, Cloud Composer y GKE

Para usar el inicio de sesión del sistema operativo en organizaciones que usan Cloud Data Fusion, Cloud Composer y GKE, puede habilitar la restricción de inicio de sesión del sistema operativo a nivel de organización y luego deshabilitar selectivamente la restricción en proyectos o carpetas para los proyectos afectados.

Para obtener más información sobre la edición de políticas de la organización, consulte creación y edición de políticas .

Habilitar la política de la organización

Para habilitar la política de inicio de sesión del sistema operativo, puede establecer la restricción de inicio de sesión del sistema operativo en proyectos y carpetas específicos mediante la CLI de Google Cloud. También puede establecer la restricción de inicio de sesión del sistema operativo en toda la organización mediante la consola de Google Cloud o la CLI de Google Cloud.

Consola

Para configurar la política de organización de inicio de sesión del sistema operativo desde la consola, complete los siguientes pasos:

  1. En la consola de Google Cloud, vaya a la página de políticas de la organización .

    Ir a la página de políticas de la organización

  2. En la lista de políticas, haga clic en Requerir inicio de sesión en el sistema operativo para ver las restricciones de inicio de sesión en el sistema operativo.
  3. Haga clic en Editar para editar las restricciones de inicio de sesión del sistema operativo existentes.
  4. En la página Editar , seleccione Personalizar .
  5. Para habilitar la aplicación de esta restricción, seleccione Activado .
  6. Haga clic en Guardar para aplicar la configuración de restricción.

nube de gcloud

Para configurar la política de organización de inicio de sesión en el sistema operativo, usa el comando gcloud beta resource-manager org-policies enable-enforce .

  1. Busque el ID de su organización.

    gcloud organizations list
  2. Establezca la restricción en su organización. Reemplace organization-id con el ID de su organización .

    gcloud beta resource-manager org-policies enable-enforce compute.requireOsLogin \
        --organization=organization-id
    

También puede aplicar la política de organización de inicio de sesión del sistema operativo a una carpeta o un proyecto con los indicadores --folder o --project , y el ID de la carpeta y el ID del proyecto, respectivamente.

Para carpetas, ejecute el siguiente comando:

gcloud beta resource-manager org-policies enable-enforce compute.requireOsLogin \
    --folder=folder-id

Para proyectos, ejecute el siguiente comando:

gcloud beta resource-manager org-policies enable-enforce compute.requireOsLogin \
    --project=project-id

Reemplace lo siguiente:

Conceder acceso a la instancia a usuarios fuera de su organización

De forma predeterminada, los usuarios fuera de su organización no pueden configurar claves SSH para instancias de su organización ni recibir acceso a instancias de su organización. En algunas situaciones, es posible que deba otorgar acceso a la instancia a usuarios que forman parte de una organización diferente o que tienen una cuenta de consumidor de Google gmail.com .

La función IAM roles/compute.osLoginExternalUser permite que las cuentas externas de Google interactúen con otras funciones de inicio de sesión del sistema operativo permitiéndoles configurar la información de la cuenta POSIX.

Para otorgar roles/compute.osLoginExternalUser y otros roles de acceso necesarios a la instancia de inicio de sesión del sistema operativo a usuarios fuera de su organización, complete los siguientes pasos:

  1. En la consola de Google Cloud, vaya a la página IAM y administración .

    Ir a IAM y administración

  2. Haga clic en el menú desplegable Seleccionar un proyecto . En el cuadro de diálogo Seleccionar un recurso que aparece, seleccione su organización haciendo lo siguiente:
    1. Haga clic en el menú desplegable de organizaciones para ver todas sus organizaciones.
    2. Seleccione su organización en el menú desplegable.
  3. Haga clic en Conceder acceso para agregar una nueva función a un usuario.
  4. En el campo Nuevos directores , agregue la dirección de correo electrónico del usuario para quien desea configurar el acceso a la instancia.
  5. En el menú desplegable Función , seleccione la función Usuario externo de inicio de sesión de Compute OS .
  6. Haga clic en Guardar .
  7. Si aún no lo ha hecho, otorgue las otras funciones de acceso a la instancia de inicio de sesión del sistema operativo al usuario en el nivel de proyecto u organización.

El usuario ahora puede conectarse a instancias de su proyecto que tengan habilitado el inicio de sesión en el sistema operativo.

Administrar la API de inicio de sesión del sistema operativo

A nivel de organización, puede restringir el acceso a la API de inicio de sesión del sistema operativo configurando los controles administrativos de Google Workspace. Para configurar los controles de administración de Google Workspace o ver las opciones de configuración, consulte Controlar quién usa Google Cloud en su organización . Como administrador de Google Workspace, también puedes activar o desactivar determinadas funciones de la API de inicio de sesión del sistema operativo. Esto incluye las siguientes opciones:

  • Elija si desea incluir el sufijo de dominio en los nombres de usuario generados por la API de inicio de sesión del sistema operativo. Por ejemplo, en el dominio example.com , el usuario user@example.com tendrá el nombre de usuario user si la configuración para incluir el sufijo del dominio no está marcada.
  • Decida si los miembros de su organización pueden administrar claves SSH utilizando la API de inicio de sesión del sistema operativo.
  • Restrinja o permita el acceso a VM a usuarios fuera de su organización.

Para obtener más información sobre cómo activar o desactivar la configuración de la API de inicio de sesión del sistema operativo, consulte Elegir configuración para Google Cloud Platform .

Auditar eventos de inicio de sesión del sistema operativo

Como administrador de Google Workspace, puede utilizar el SDK de administrador de Google Workspace para auditar las acciones realizadas con la API de inicio de sesión del sistema operativo. Al revisar estos eventos, puede realizar un seguimiento de cuándo un usuario agrega, elimina o actualiza una clave SSH, o elimina información de la cuenta POSIX.

Puedes recuperar eventos de actividad de auditoría de la API de inicio de sesión del sistema operativo desde el SDK de administración de Google Workspace llamando a Activities.list() con applicationName=gcp . Para obtener más información, consulte Google Cloud eventos de actividad en la documentación de la API de informes del SDK de administración de Google Workspace.

Modificar cuentas de usuario utilizando la API del directorio

El inicio de sesión del sistema operativo utiliza su configuración de usuario de Cloud Identity o Google Workspace cuando se conecta a una instancia. Si eres administrador de una organización, puedes usar la API de Directory para completar las siguientes tareas para tus cuentas de usuario de Google Workspace o Cloud Identity:

  • Modifique la configuración de inicio de sesión de la instancia.
  • Convertir a un usuario en administrador
  • Modificar las propiedades del usuario, como el nombre de la cuenta y el correo electrónico.
  • Agregar y eliminar claves SSH para un usuario
  • Modificar la información de la cuenta POSIX
  • Cambie el nombre de usuario al que se conectan los usuarios en la instancia.

Los siguientes ejemplos muestran cómo modificar o eliminar cuentas de usuario utilizando Directory API. Para obtener más información sobre las propiedades de la cuenta que puede editar, consulte la referencia de Directory API .

Modificar propiedades de la cuenta

Para modificar la información de la cuenta POSIX de un usuario o administrar las claves SSH del usuario, emita una solicitud PUT al método directory.users.update y especifique una o más propiedades para cambiar en la cuenta de usuario.

Si modifica las propiedades posixAccounts de un usuario, debe especificar los valores de username , uid y gid actuales o nuevos en la solicitud.

Si modifica las propiedades sshPublicKeys del usuario, debe especificar el valor key en la solicitud.

El siguiente es un ejemplo de una solicitud PUT :

PUT https://admin.googleapis.com/admin/directory/v1/users/USER_KEY

{
 "posixAccounts": [
  {
    "username": "USERNAME",
    "uid": "UID",
    "gid": "GID",
    "homeDirectory": "USER_HOME_PATH",
    "shell": "SHELL_PATH"
   }
  ],
 "sshPublicKeys": [
  {
    "key": "KEY_VALUE",
    "expirationTimeUsec": EXPIRATION_TIME
   }
  ],
}

Reemplace lo siguiente:

  • USER_KEY : la dirección de correo electrónico principal del usuario, la dirección de correo electrónico alias o el ID de usuario único.
  • USERNAME : el nombre de usuario que Compute Engine agrega a la VM para el usuario. Este valor debe ser único dentro de su organización y no debe terminar en tilde ("~") ni contener un punto (".").
  • UID : el ID de usuario en la VM para este usuario. Esta propiedad debe tener un valor entre 1001 y 60000 , o un valor entre 65535 y 2147483647 . Para acceder a un sistema operativo optimizado para contenedores, el UID debe tener un valor entre 65536 y 214748646 . El UID debe ser único dentro de su organización.
  • GID : el ID del grupo en la VM al que pertenece el usuario.
  • USER_HOME_PATH : (opcional) el directorio de inicio en la VM para el usuario. Por ejemplo, /home/example_username .
  • SHELL_PATH : (opcional) la ruta al shell predeterminado para el usuario después de conectarse a la instancia. Por ejemplo, /bin/bash o /bin/sh .
  • KEY_VALUE : el valor de la clave SSH pública.
  • EXPIRATION_TIME : (Opcional) el tiempo de vencimiento de la clave en microsegundos desde la época (1 segundo = 10 6 microsegundos).

Eliminar propiedades de la cuenta

Para borrar los datos posixAccounts y sshPublicKeys de un usuario, emita una solicitud PUT al método directory.users.update , configurando los campos posixAccounts y sshPublicKeys en null :

PUT https://admin.googleapis.com/admin/directory/v1/users/USER_KEY

{
 "posixAccounts": null,
 "sshPublicKeys": null
}

Reemplace USER_KEY con la dirección de correo electrónico principal del usuario, la dirección de correo electrónico alias o la identificación de usuario única.

Utilice grupos de Linux con inicio de sesión en el sistema operativo (obsoleto)

Los administradores de la organización pueden usar la API de Cloud Identity Groups para configurar grupos de Linux complementarios para los usuarios de inicio de sesión del sistema operativo mediante la creación y administración de grupos POSIX. El inicio de sesión del sistema operativo vincula grupos POSIX con grupos de Linux complementarios en las máquinas virtuales de su organización para que pueda administrar los permisos que los usuarios tienen en sus máquinas virtuales.

Administrar la membresía de usuarios en grupos de Linux

Para crear un grupo POSIX, consulte Creación y actualización de grupos POSIX .

Para agregar usuarios a un grupo, consulte Agregar o invitar usuarios a un grupo .

Las actualizaciones de membresía entran en vigor en 10 minutos. Los cambios de grupo se reflejan en todas las máquinas virtuales recién creadas. Las actualizaciones del grupo POSIX pueden tardar hasta seis horas en propagarse a todas las máquinas virtuales en ejecución. Es posible que los usuarios tengan que cerrar sesión o usar el comando newgrp para observar los cambios del grupo.

Eliminar configuraciones de grupos POSIX

La compatibilidad con el grupo POSIX de inicio de sesión en el sistema operativo está obsoleta. Le recomendamos que elimine las configuraciones de los grupos POSIX de inicio de sesión del sistema operativo.

Debe ser administrador de la organización para eliminar las configuraciones del grupo POSIX de inicio de sesión del sistema operativo.

  1. Si no conoce el ID de recurso de su organización, obtenga el ID de recurso de su organización .
  2. Enumere todos los grupos POSIX de su organización. Anote la dirección de correo electrónico de cada grupo.
  3. Para cada grupo POSIX de su organización, haga lo siguiente:
    1. Recuperar la información del grupo . Tenga en cuenta el posixGroups.gid .
    2. Eliminar el grupo POSIX .
  4. Opcionalmente, verifique que todos los grupos se hayan eliminado enumerando todos los grupos POSIX de su organización. Si todos los grupos se han eliminado correctamente, la respuesta está vacía.

Límites de velocidad para grupos de Linux con sistema operativo

Los grupos de Linux con inicio de sesión en el sistema operativo utilizan la cuota oslogin.googleapis.com/metadata_server_groups_requests . De forma predeterminada, el límite de cuota es de 60 solicitudes/minuto por proyecto para una región en particular.

Si necesita un límite de tarifa más alto, puede solicitar una cuota adicional desde la página Cuotas en la consola de Google Cloud.

Ir a Cuotas

Utilice la federación de identidades de la fuerza laboral con el inicio de sesión del sistema operativo

Las organizaciones que utilizan la federación de identidades de la fuerza laboral pueden usar OS Login para administrar el acceso a sus máquinas virtuales. Cuando la federación de identidades de la fuerza laboral está habilitada para una organización, OS Login usa autenticación basada en certificados en lugar de autenticación basada en claves para verificar las identidades de los usuarios.

Antes de comenzar

Limitaciones

  • La máquina virtual a la que se está conectando debe tener OpenSSH versión 7.4 o posterior para usar la federación de identidades de la fuerza laboral con el inicio de sesión en el sistema operativo.
  • Si su organización utiliza la federación de identidades de la fuerza laboral, no podrá acceder a los puertos serie de la máquina virtual.
  • Los certificados SSH solo se admiten para máquinas virtuales en las siguientes regiones:
    • asia-east1
    • asia-northeast1
    • asia-southeast1
    • australia-southeast1
    • europe-north1
    • europe-west1
    • europe-west4
    • northamerica-northeast1
    • southamerica-west1
    • us-central1
    • us-central2
    • us-east1
    • us-east4
    • us-east5
    • us-east7
    • us-south1
    • us-west1
    • us-west4
    • us-west8

Conéctese a máquinas virtuales que utilizan el inicio de sesión del sistema operativo y la federación de identidades de la fuerza laboral

Conéctese a máquinas virtuales que usan el inicio de sesión del sistema operativo con la federación de identidades de la fuerza laboral mediante la consola de Google Cloud, la CLI de gcloud u otros clientes SSH.

Consola

Cuando te conectas a máquinas virtuales que usan el inicio de sesión en el sistema operativo con la federación de identidad de la fuerza laboral mediante SSH en el navegador , Compute Engine configura el certificado SSH en tu nombre cuando intentas conectarte.

Para conectarse a máquinas virtuales, haga lo siguiente:

  1. In the Google Cloud console, go to the VM instances page.

    Go to VM instances

  2. In the list of virtual machine instances, click SSH in the row of the instance that you want to connect to.

    SSH button next to instance name.

nube de gcloud

Cuando te conectas a máquinas virtuales que usan el inicio de sesión en el sistema operativo con la federación de identidad de la fuerza laboral mediante la CLI de gcloud , Compute Engine configura el certificado SSH en tu nombre cuando intentas conectarte.

Conéctate a una máquina virtual mediante SSH ejecutando el comando gcloud beta compute ssh :

  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. Ejecute el siguiente comando:

    gcloud beta compute ssh --project=PROJECT_ID --zone=ZONE VM_NAME

    Reemplace lo siguiente:

    • PROJECT_ID : el ID del proyecto que contiene la VM
    • ZONE : el nombre de la zona en la que se encuentra la VM
    • VM_NAME : el nombre de la VM

    Si ha configurado propiedades predeterminadas para la CLI de Google Cloud, puede omitir los indicadores --project y --zone de este comando. Por ejemplo:

    gcloud compute ssh VM_NAME

Escritorio IAP

Cuando te conectas a máquinas virtuales que usan el inicio de sesión en el sistema operativo con la federación de identidades de la fuerza laboral usando IAP Desktop , Compute Engine configura el certificado SSH en tu nombre cuando intentas conectarte.

Para conectarse a una máquina virtual mediante IAP Desktop, haga lo siguiente:

  1. Instale IAP Desktop en su estación de trabajo si aún no lo ha hecho.

  2. Abra el escritorio IAP. Se abre la ventana Agregar proyectos .

  3. Cuando se le solicite, inicie sesión en la federación de identidad laboral .

  4. En la ventana Agregar proyectos , ingrese el ID del proyecto o el nombre del proyecto que contiene las máquinas virtuales a las que desea conectarse.

  5. En la ventana del Explorador de proyectos , haga clic con el botón derecho en el nombre de la VM nuevamente y seleccione Conectar para conectarse a la VM.

Cliente SSH

Para conectarse a una máquina virtual que utiliza el inicio de sesión en el sistema operativo con la federación de identidades de la fuerza laboral mediante un cliente SSH, haga lo siguiente:

  1. Cree una clave SSH si aún no tiene una.
  2. Firme su clave SSH pública utilizando el método users.projects.locations.signSshPublicKey :

    POST https://oslogin.googleapis.com/v1beta/users/USER/projects/PROJECT_ID/locations/LOCATION:signSshPublicKey
    
    {
     "ssh_public_key": "PUBLIC_KEY"
    }
    

    Reemplace lo siguiente:

    • USER : una identidad única en un grupo de fuerza laboral, en el siguiente formato:

      principal:%2F%2Fiam.googleapis.com%2Flocations%2Fglobal%2FworkforcePools%2POOL_ID%2Fsubject%2FSUBJECT_ATTRIBUTE_VALUE
      

      Reemplace lo siguiente:

    • PROJECT_ID : el ID del proyecto que contiene la VM a la que desea conectarse.

    • LOCATION : la zona donde se encuentra la VM a la que desea conectarse.

    • PUBLIC_KEY : el contenido de su archivo de clave pública SSH.

  3. Copie el certificado SSH de la salida del método user.signSshPublicKey y guarde el contenido en un archivo nuevo.

  4. Establezca permisos en el archivo de certificado SSH ejecutando el siguiente comando:

    sudo chmod 600 FILE_NAME
    

    Reemplace FILE_NAME con el nombre del archivo.

  5. Conéctese a la VM usando el siguiente comando:

    ssh -i PATH_TO_PRIVATE_KEY -o CertificateFile=PATH_TO_SSH_CERTIFICATE USERNAME@EXTERNAL_IP
    

    Reemplace lo siguiente:

    • PATH_TO_PRIVATE_KEY : la ruta a su archivo de clave SSH privada.
    • PATH_TO_SSH_CERTIFICATE : la ruta a su archivo de certificado SSH.
    • USERNAME : el valor de la asignación del atributo google.posix_username del usuario.
    • EXTERNAL_IP : la dirección IP externa de la VM.

¿Qué sigue?