Administra el acceso a SO en una organización

Si usas Acceso al SO para administrar el acceso a tus instancias, puedes establecer la configuración a nivel de la organización en la cuenta de Cloud Identity. Por ejemplo, puedes controlar quién puede usar la API de Acceso al SO de forma directa, habilitar el servicio para todas las instancias de VM de una organización, otorgar acceso a usuarios externos y mucho más.

En este tema, se cubren las siguientes tareas:

Antes de comenzar

Habilita Acceso al SO mediante una política de la organización

Puedes configurar una restricción de Acceso al SO en la organización para asegurarte de que todos los proyectos nuevos y las instancias de VM creadas en ellos tengan habilitado Acceso al SO.

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

  • enable-oslogin se configura como true en los metadatos del proyecto de todos los proyectos nuevos.
  • Se rechazan las solicitudes de actualización para configurar enable-oslogin como false en los metadatos del proyecto o de la instancia.

Limitaciones

  • No puedes aplicar esta restricción de forma retroactiva. Acceso al SO no se habilita de forma automática en las instancias y en los proyectos que se crean antes de que se aplique la restricción.
  • Las instancias que se ejecutan en Google Kubernetes Engine no son compatibles con acceso al SO. Si habilitas la restricción del Acceso al SO, impides que los clústeres de Google Kubernetes Engine puedan crear instancias nuevas en proyectos en los que se aplica la restricción.

    Para solucionar este problema, puedes habilitar esta restricción al nivel de la organización y, luego, inhabilitarla de forma selectiva en los proyectos que tienen clústeres de Google Kubernetes Engine. Como alternativa, puedes habilitar Acceso al SO a nivel del proyecto o de la carpeta. Para obtener más información sobre cómo administrar las políticas de la organización, consulta la documentación sobre cómo crear y administrar las políticas de la organización.

Para habilitar la política de Acceso al SO, puedes configurar la restricción de este servicio en carpetas y proyectos específicos mediante la herramienta de línea de comandos de gcloud. También puedes establecer la restricción de Acceso al SO en toda la organización con Google Cloud Console o la herramienta de línea de comandos de gcloud.

Console

Para configurar la política de la organización de Acceso al SO desde la consola, haz lo siguiente:

  1. En Google Cloud Console, ve a la página Políticas de la organización.

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

  2. En la lista de políticas, haz clic en Requiere Acceso al SO para ver las restricciones de este servicio.
  3. Haz clic en Editar para editar las restricciones existentes de acceso al SO.
  4. En la página Editar, selecciona Personalizar.
  5. Para habilitar la aplicación forzosa de esta restricción, selecciona Habilitado.
  6. Haz clic en Guardar para aplicar la configuración de restricción.

gcloud

Para configurar la política de la organización del Acceso al SO, usa el comando gcloud beta resource-manager org-policies enable-enforce.

  1. Busca el ID de tu organización.

    gcloud organizations list
  2. Establece la restricción en la organización. Reemplaza organization-id por el ID de la organización.

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

También puedes aplicar la política de la organización de Acceso al SO en una carpeta o un proyecto con las marcas --folder o --project, y con el ID de la carpeta y del proyecto, respectivamente.

Para las carpetas, ejecuta el siguiente comando:

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

Para los proyectos, ejecuta el siguiente comando:

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

Reemplaza los siguientes elementos:

Otorga acceso a instancias a los usuarios que no pertenecen a la organización

De forma predeterminada, los usuarios fuera de tu organización no pueden configurar llaves SSH para las instancias de la organización y no se les puede otorgar acceso a ellas. En algunos casos, puede que debas otorgar acceso a instancias a los usuarios que forman parte de otra organización o que tienen una cuenta de usuario gmail.com de Google.

La función roles/compute.osLoginExternalUser de IAM permite que las Cuentas de Google externas interactúen con las otras funciones de Acceso al SO, ya que les permite configurar la información de la cuenta POSIX.

Para otorgar roles/compute.osLoginExternalUser y otras funciones necesarias de ingreso a las instancias de Acceso al SO a usuarios que no son parte de la organización, haz lo siguiente:

  1. En Google Cloud Console, ve a la página de selección de proyectos y organizaciones.

    Ir a la página Selección del proyecto y la organización

  2. En el menú desplegable Organización, selecciona tu organización.
    1. Haz clic en Todas para ver todas tus organizaciones.
    2. Haz clic en el nombre de la organización.
  3. Haz clic en Agregar para agregarle una función nueva a un usuario.
  4. Especifica el nombre de usuario del usuario para el que deseas configurar el acceso a instancias.
  5. Haz clic en Seleccionar una función para especificar qué funciones deseas otorgarle a los usuarios.
  6. En la lista de funciones de Compute Engine, selecciona la función Usuario externo a Acceso al SO de Compute.
  7. Haz clic en Agregar para confirmar que deseas otorgar la función seleccionada al usuario.
  8. Si aún no lo has hecho, otorga las otras funciones de acceso a las instancias de Acceso al SO al usuario a nivel del proyecto o de la organización.

Ahora el usuario puede conectarse a las instancias en tu proyecto que tengan habilitado Acceso al SO.

Controla el acceso a la API de acceso a SO

Los miembros de tu organización pueden usar la API de Acceso al SO para modificar sus cuentas. A nivel de la organización, puedes restringir el acceso a la API de Acceso al SO si configuras los controles de administrador de G Suite. Para configurar los controles de administrador de G Suite o ver las opciones de configuración, consulta la documentación sobre cómo controlar qué miembros de tu organización usan Google Cloud.

Audita eventos de acceso al SO

Como administrador de G Suite, puedes usar el SDK de administrador de G Suite para auditar las acciones realizadas con la API de Acceso al SO. Puedes revisar estos eventos para hacer un seguimiento de cuándo un usuario agrega, borra o actualiza una llave SSH, o borra la información de cuentas POSIX.

Si llamas a la Activities.list() con applicationName=gcp, puedes recuperar eventos de actividad de auditoría de la API de Acceso al SO desde el SDK de administrador de G Suite. Para obtener más información, consulta Eventos de actividad de Google Cloud en la documentación de los informes de la API del SDK de administrador de G Suite.

Modifica cuentas de usuario mediante la API de Directorio

Acceso al SO usa la configuración de usuario de Cloud Identity o de G Suite cuando se conecta a una instancia. Si eres el administrador de una organización, puedes usar la API de Directory a fin de completar las siguientes tareas para tus cuentas de usuario de G Suite o Cloud Identity:

  • Modifica la configuración de acceso de la instancia.
  • Convierte a un usuario en administrador.
  • Modifica las propiedades del usuario, como el correo electrónico y el nombre de la cuenta.
  • Agrega y quita las Llaves SSH de un usuario.
  • Modifica la información de la cuenta POSIX.
  • Cambia el nombre de usuario al que se conectan los usuarios en la instancia.

Para obtener más información sobre cuáles son las propiedades de cuenta que puedes editar, consulta la referencia de la API de Directory.

Por ejemplo, crea una solicitud PUT al método directory.users.update y especifica una o más propiedades de la cuenta de usuario que quieras cambiar:

    PUT https://www.googleapis.com/admin/directory/v1/users/user-id-key

    {
     "posixAccounts": [
       {
        "username": "user-name",
        "uid": "uid",
        "gid": "gid",
        "homeDirectory": "user-home-path",
        "shell": "shell-path"
       }
      ],
    }
    

Reemplaza los siguientes elementos:

  • user-id-key: un ID inmutable para el usuario.
  • user-name: es el nombre de usuario que agrega Compute Engine a la instancia del usuario. Este valor debe ser único dentro de la organización.
  • uid: es el ID que tiene el usuario en su instancia. Esta propiedad debe ser un valor entre 100160000, o entre 655352147483647. A fin de acceder a un Container-Optimized OS, el UID debe tener un valor entre 65536 y 214748646. El UID debe ser único dentro de la organización.
  • gid: es el ID del grupo de la instancia a la que pertenece este usuario.
  • user-home-path: es el directorio principal de la instancia de este usuario. Por ejemplo, /home/example_username.
  • shell-path: es la ruta a la shell predeterminada para el usuario luego de que se conecta a la instancia. Por ejemplo, /bin/bash o /bin/sh.

Qué sigue