En este documento, se describe cómo puedes usar el Acceso al SO para administrar el acceso a las instancias de VM en toda tu organización.
En este tema, se cubren las siguientes tareas:
- Habilitar el Acceso al SO para una organización mediante una política de la organización: Usa una política de la organización para garantizar que todas las instancias de VM nuevas de tu organización tengan habilitado el Acceso al SO.
- Otorgar acceso a instancias a los usuarios que no son parte de la organización: Permite que las cuentas de usuario que no pertenecen a la organización se conecten a las instancias mediante SSH.
- Administrar la API de Acceso al SO: Permite o niega a los usuarios el acceso a la API de Acceso al SO. También puedes habilitar o inhabilitar funciones de la API de Acceso al SO.
- Auditar eventos de Acceso al SO: Realiza un seguimiento de los eventos y las actividades relacionados con Acceso al SO, como agregar, borrar o actualizar una clave SSH, o borrar información POSIX.
- Modificar cuentas de usuario mediante la API de Directory: Actualiza las propiedades del usuario, como el nombre de usuario y la información de la cuenta POSIX, mediante la API de Directory.
- Usa grupos de Linux con Acceso al SO: Administra los permisos de usuarios dentro de las VM mediante grupos de Linux con Acceso al SO.
- Usa Acceso al SO con la federación de identidades de personal (vista previa): Conéctate a las VMs que tienen el Acceso al SO habilitado cuando tu organización usa un proveedor de identidad externo (IdP).
Antes de comenzar
-
Configura la autenticación si aún no lo hiciste.
La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud.
Para ejecutar un código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.
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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
enable-oslogin=true
se incluye en los metadatos del proyecto de todos los proyectos nuevos.- Las solicitudes que configuran
enable-oslogin
enfalse
en los metadatos de proyecto o VM se rechazan, en VMs y proyectos nuevos y existentes. - Versiones 6.1.4 y anteriores de Cloud Data Fusion
- Cloud Composer 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 de grupos de nodos anteriores a la 1.20.5
- Dataproc sin servidores
- VMs de Windows Server y SQL Server
- VMs de Fedora CoreOS. Para administrar el acceso de las instancias a las VMs creadas mediante estas imágenes, usa el sistema de encendido Fedora CoreOS.
- En Google Cloud Console, ve a la página Políticas de la organización.
- En la lista de políticas, haz clic en Requiere Acceso al SO para ver las restricciones de este servicio.
- Haz clic en Editar para editar las restricciones existentes de Acceso al SO.
- En la página Editar, selecciona Personalizar.
- Para habilitar la aplicación forzosa de esta restricción, selecciona Habilitado.
- Haz clic en Guardar para aplicar la configuración de restricción.
Busca el ID de tu organización.
gcloud organizations list
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
folder-id
: Es el ID de la carpeta.project-id
: El ID del proyecto.- En la consola de Google Cloud, ve a la página de selección de proyecto y organización.
- En el menú desplegable Organización, selecciona tu organización.
- Haz clic en Todas para ver todas tus organizaciones.
- Haz clic en el nombre de la organización.
- Haz clic en Agregar para agregarle una función nueva a un usuario.
- Especifica el nombre de usuario del usuario para el que deseas configurar el acceso a instancias.
- Haz clic en Seleccionar una función para especificar qué funciones deseas otorgarle a los usuarios.
- En la lista de funciones de Compute Engine, selecciona la función Usuario externo del acceso al SO de Compute.
- Haz clic en Agregar para confirmar que deseas otorgar la función seleccionada al usuario.
- Si aún no lo hiciste, otorga las otras funciones de acceso a instancias de Acceso al SO al usuario a nivel de proyecto o de la organización.
- Elige si deseas incluir el sufijo de dominio en los nombres de usuario generados por la API de Acceso al SO. Por ejemplo, en el dominio
example.com
, el usuariouser@example.com
tendrá el nombre de usuariouser
si no se seleccionó la configuración para incluir el sufijo de dominio. - Decide si los miembros de la organización pueden administrar llaves SSH mediante la API de Acceso al SO.
- Restringe o permite que los usuarios fuera de la organización tengan acceso a las VM.
- 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.
USER_KEY
: La dirección de correo electrónico principal del usuario, su dirección de correo electrónico de alias o el ID de usuario único.USERNAME
: Es el nombre de usuario que agrega Compute Engine a la VM para el usuario. Este valor debe ser único dentro de la organización y no debe terminar en una virgulilla (“~”) ni contener un punto (“.”).UID
: Es el ID que tiene el usuario en la instancia. Esta propiedad debe ser un valor entre1001
y60000
, o entre65535
y2147483647
. A fin de acceder a un SO optimizado para contenedores, elUID
debe tener un valor entre65536
y214748646
. ElUID
debe ser único dentro de la organización.GID
: Es el ID del grupo de la VM a la que pertenece el usuario.USER_HOME_PATH
: (Opcional) Es el directorio principal de la VM para el usuario. Por ejemplo,/home/example_username
SHELL_PATH
: (Opcional) 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
.KEY_VALUE
: El valor de la clave SSH pública.EXPIRATION_TIME
: (Opcional) el tiempo de vencimiento de la clave en microsegundos desde el ciclo de entrenamiento (1 segundo = 106 microsegundos).- Crea un grupo de Workforce Identity.
- Configura las asignaciones de atributos
google.posix_username
. Configura tu VM para usar Acceso al SO con la federación de identidades de personal mediante las siguientes acciones:
Para confirmar que la VM tenga OpenSSH 7.4 o una versión posterior, ejecuta el siguiente comando en la VM:
ssh -V
La VM a la que te conectas debe tener OpenSSH 7.4 o una versión posterior para usar la federación de identidades de personal con Acceso al SO.
Los usuarios de las organizaciones que usan la federación de identidades de personal no pueden acceder a los puertos en serie de la VM.
- En la consola de Google Cloud, ve a la página Instancias de VM.
- En la lista de instancias de máquinas virtuales, haz clic en SSH en la fila de la instancia a la que deseas conectarte.
-
In the Google Cloud console, 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.
Ejecuta el siguiente comando:
gcloud compute ssh --project=PROJECT_ID --zone=ZONE VM_NAME
Conéctate a la VM mediante la ejecución del siguiente comando:
PROJECT_ID
: El ID del proyecto que contiene la VMZONE
: Es el nombre de la zona en la que se encuentra la VM.VM_NAME
: El nombre de la VM
Si estableciste propiedades predeterminadas para Google Cloud CLI, puedes omitir las marcas
--project
y--zone
de este comando. Por ejemplo:gcloud compute ssh VM_NAME
-
Instala IAP Desktop en tu estación de trabajo si aún no lo haces.
-
Abre IAP Desktop. Se abrirá la ventana Agregar proyectos.
-
Cuando se te solicite, accede con la federación de identidades de personal.
-
En la ventana Agregar proyectos, ingresa el nombre o el ID del proyecto que contiene las VMs a las que deseas conectarte.
-
En la ventana Explorador de proyectos, haz clic con el botón derecho en el nombre de la VM y selecciona Conectar para conectarte a la VM.
- Crea una clave SSH si aún no tienes una.
Firma tu clave SSH pública con 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" }
Reemplaza lo siguiente:
USER
: una sola identidad en un grupo de personal, en el siguiente formato:principal:%2F%2Fiam.googleapis.com%2Flocations%2Fglobal%2FworkforcePools%2POOL_ID%2Fsubject%2FSUBJECT_ATTRIBUTE_VALUE
Reemplaza lo siguiente:
POOL_ID
: el grupo de personal al que pertenece el usuario.SUBJECT_ATTRIBUTE_VALUE
: el valor de la asignación de atributosgoogle.posix_username
del usuario.
PROJECT_ID
: el ID del proyecto que contiene la VM a la que deseas conectarte.LOCATION
: la zona en la que se encuentra la VM a la que deseas conectarte.PUBLIC_KEY
: el contenido de tu archivo de clave pública SSH.
Copia el certificado SSH del resultado del método
user.signSshPublicKey
y guarda el contenido en un archivo nuevo.Ejecuta el siguiente comando para configurar los permisos en el archivo del certificado SSH:
sudo chmod 600 FILE_NAME
Reemplaza
FILE_NAME
por el nombre del archivo.Conéctate a la VM con el siguiente comando:
ssh -i PATH_TO_PRIVATE_KEY -o CertificateFile=PATH_TO_SSH_CERTIFICATE USERNAME@EXTERNAL_IP
Reemplaza lo siguiente:
PATH_TO_PRIVATE_KEY
: Es la ruta de acceso al archivo de clave SSH privada.PATH_TO_SSH_CERTIFICATE
: la ruta de acceso al archivo del certificado SSH.USERNAME
: el valor de la asignación de atributosgoogle.posix_username
del usuario.EXTERNAL_IP
: la dirección IP externa de la VM.
- Obtén información sobre cómo configurar el Acceso al SO.
- Obtén información sobre cómo configurar el Acceso al SO con la verificación en dos pasos.
- Lee una descripción general de la función Acceso al SO.
- Soluciona problemas del Acceso al SO.
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.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.
Política de la organización de Acceso al SO
Puedes configurar una restricción de acceso a SO en tu organización para asegurarte de que todos los proyectos nuevos y las instancias de VM creadas en estos tengan habilitado acceso a SO.
Cuando se establece esta restricción, se aplican las siguientes condiciones:
Limitaciones
Acceso al SO no es compatible con los siguientes productos, funciones y VMs:Soluciones alternativas para Cloud Data Fusion, Cloud Composer y GKE
Para usar Acceso al SO en organizaciones que usan Cloud Data Fusion, Cloud Composer y GKE, puedes habilitar la restricción de Acceso al SO a nivel de la organización y, luego, inhabilitarla de forma selectiva en proyectos o carpetas de los proyectos afectados.
Para obtener más información sobre cómo editar las políticas de la organización, consulta Crea y edita políticas.
Habilita la política 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 Google Cloud CLI. También puedes establecer la restricción de Acceso al SO en toda la organización con la consola de Google Cloud o Google Cloud CLI.
Console
Para configurar la política de la organización de Acceso al SO desde la consola, haz lo siguiente:
gcloud
Para configurar la política de la organización de Acceso al SO, usa el comando
gcloud beta resource-manager org-policies enable-enforce
.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 lo siguiente:
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, es posible que debas otorgar acceso a instancias a los usuarios que forman parte de otra organización o que tienen una cuenta de
gmail.com
de consumidor de Google.Con la función de IAM
roles/compute.osLoginExternalUser
, las Cuentas de Google externas pueden interactuar con las otras funciones del Acceso al SO, ya que les permite configurar la información de la cuenta POSIX.Para otorgar
roles/compute.osLoginExternalUser
y otros roles necesarios de acceso a instancias de Acceso al SO a usuarios fuera de la organización, completa los siguientes pasos:Ahora el usuario puede conectarse a instancias del proyecto que tengan habilitado el Acceso al SO.
Administra la API de Acceso al SO
A nivel de la organización, puedes restringir el acceso a la API de Acceso al SO si configuras los controles de administrador de Google Workspace. Para configurar los controles de administrador de Google Workspace o ver las opciones de configuración, consulta Controla qué miembros de la organización usan Google Cloud. Como administrador de Google Workspace, también puedes activar o desactivar ciertas funciones de la API de Acceso al SO. Dentro de las opciones que puedes modificar, se incluyen las siguientes:
Para obtener más información sobre cómo activar o desactivar la configuración de la API de Acceso al SO, consulta Elige la configuración de Google Cloud Platform.
Audita eventos de Acceso al SO
Como administrador de Google Workspace, puedes usar el SDK de Admin de Google Workspace 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 clave SSH, o borra la información de la cuenta POSIX.
Si llamas a
Activities.list()
conapplicationName=gcp
, puedes recuperar los eventos de actividad de auditoría de la API de Acceso al SO desde el SDK de Admin de Google Workspace. Para obtener más información, consulta los eventos de actividad de Google Cloud en la documentación de la API de informes del SDK de Admin de Google Workspace.Modifica cuentas de usuario mediante la API de Directory
El Acceso al SO usa la configuración de usuario de Cloud Identity o de Google Workspace cuando se conecta a una instancia. Si eres administrador de una organización, puedes usar la API de Directorio a fin de completar las siguientes tareas para las cuentas de usuario de Google Workspace o Cloud Identity:
En los siguientes ejemplos, se muestra cómo modificar o quitar cuentas de usuario mediante la API de Directorio. Para obtener más información sobre las propiedades de la cuenta que puedes editar, consulta la referencia de la API de Directorio.
Modifica las propiedades de la cuenta
Para modificar la información de la cuenta POSIX de un usuario o administrar las llaves SSH del usuario, envía una solicitud
PUT
al métododirectory.users.update
y especifica una o más propiedades para cambiar la cuenta de usuario.Si modificas las propiedades
posixAccounts
de un usuario, debes especificar los valoresusername
,uid
ygid
actuales o nuevos en la solicitud.Si modificas las propiedades
sshPublicKeys
del usuario, debes especificar el valorkey
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 } ], }
Reemplaza lo siguiente:
Quita propiedades de la cuenta
Para borrar los datos de
posixAccounts
ysshPublicKeys
de un usuario, envía una solicitudPUT
al métododirectory.users.update
, configurando los camposposixAccounts
ysshPublicKeys
comonull
:PUT https://admin.googleapis.com/admin/directory/v1/users/USER_KEY { "posixAccounts": null, "sshPublicKeys": null }
Reemplaza
USER_KEY
por la dirección de correo electrónico principal del usuario, la dirección de correo electrónico de alias o el ID de usuario único.Usa grupos de Linux con Acceso al SO
Los administradores de la organización pueden usar la API de Cloud Identity Groups a fin de configurar grupos de Linux complementarios para usuarios del Acceso al SO mediante la creación y administración de grupos POSIX. El Acceso al SO vincula los grupos POSIX con grupos de Linux complementarios en las VM de la organización para que puedas administrar los permisos que tienen los usuarios en tus VM.
Administra la membresía de los usuarios en grupos de Linux
Para crear un grupo POSIX, consulta Crea y actualiza grupos POSIX.
Para agregar usuarios a un grupo, consulta Agrega o invita usuarios a un grupo.
Las actualizaciones de la membresía se aplican en un plazo de 10 minutos. Los cambios en el grupo se reflejan en todas las VM recién creadas. Las actualizaciones de grupos POSIX pueden tardar hasta seis horas en propagarse a todas las VM en ejecución. Es posible que los usuarios tengan que salir o usar el comando
newgrp
para observar los cambios en el grupo.Límites de frecuencia para grupos de Linux con Acceso al SO
Los grupos de Linux con Acceso al SO usan la cuota
oslogin.googleapis.com/metadata_server_groups_requests
. De forma predeterminada, el límite de cuota es de 60 solicitudes por minuto, por proyecto para una región en particular.Si necesitas un límite de frecuencia más alto, puedes solicitar una cuota adicional en la página Cuotas de la consola de Google Cloud.
Usa la federación de identidades de personal con el Acceso al SO
Las organizaciones que usan la federación de identidades de personal pueden usar el Acceso al SO para administrar el acceso a sus VMs. Cuando la federación de identidades de personal está habilitada para una organización, el Acceso al SO usa la autenticación basada en certificados en lugar de la autenticación basada en claves para verificar las identidades de los usuarios.
Antes de comenzar
Limitaciones
Conéctate a las VMs que usan el Acceso al SO y la federación de identidades de personal
Conéctate a las VMs que usan el Acceso al SO con la federación de identidades de personal a través de la consola de Google Cloud, gcloud CLI o algún otro cliente SSH.
Console
Cuando te conectas a las VMs que usan el Acceso al SO con la federación de identidades de personal a través de SSH en el navegador, Compute Engine configura el certificado SSH en tu nombre cuando intentas conectarte.
Para conectarte a las VMs, haz lo siguiente:
gcloud
Cuando te conectas a las VMs que usan el Acceso al SO con la federación de identidades de personal a través de gcloud CLI, Compute Engine configura el certificado SSH en tu nombre cuando intentas conectarte.
Conéctate a una VM con SSH mediante la ejecución del comando
gcloud compute ssh
:IAP Desktop
Cuando te conectas a las VMs que usan el Acceso al SO con la federación de identidades de personal mediante IAP Desktop, Compute Engine configura el certificado SSH en tu nombre cuando intentas conectarte.
Para conectarte a una VM mediante IAP Desktop, haz lo siguiente:
Cliente SSH
Para conectarte a una VM que usa el Acceso al SO con la federación de identidades de personal a través de un cliente SSH, haz lo siguiente:
¿Qué sigue?
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2024-09-09 (UTC)
-