En este documento, se describe cómo solucionar problemas de Acceso al SO mediante el servidor de metadatos. Para obtener información sobre la configuración del Acceso al SO o si quieres obtener instrucciones paso a paso, consultaConfigura el Acceso al SO oConfigura el Acceso al SO con la verificación en dos pasos.
Puedes consultar el servidor de metadatos desde una instancia de máquina virtual (VM). Para obtener más información, consulta la sección sobre cómo almacenar y recuperar metadatos de instancias.
Antes de comenzar
- Si deseas usar los ejemplos de línea de comandos de esta guía, haz lo siguiente:
- Instala Google Cloud CLI o actualízala a la última versión.
- Configura una región y una zona predeterminadas.
- Si deseas usar los ejemplos de API de esta guía, configura el acceso a la API.
Entradas de metadatos predeterminados de Acceso al SO
Compute Engine define un conjunto de entradas de metadatos predeterminados que proporcionan información sobre el Acceso al SO. El servidor siempre define y establece los metadatos predeterminados. Las claves de metadatos predeterminadas distinguen entre mayúsculas y minúsculas.
En la siguiente tabla, se describen las entradas que puedes consultar.
Relativo a http://metadata.google.internal/computeMetadata/v1/ |
|
---|---|
Entrada de metadatos | Descripción |
project/attributes/enable-oslogin |
Comprueba si el Acceso al SO está habilitado en el proyecto actual de Cloud. |
instance/attributes/enable-oslogin |
Comprueba si el Acceso al SO está habilitado en la VM actual. |
oslogin/users/ |
Recupera información de perfil para los usuarios del Acceso al SO.
Puedes pasar parámetros de consulta como username , uid , pagesize y pagetoken .
|
oslogin/authorize/ |
Recupera la configuración de permisos de nivel administrativo o de acceso para un usuario del Acceso al SO.
Para verificar un permiso, debes especificar el parámetro de consulta |
Comprueba si el Acceso al SO está configurado
Usa la consola o la CLI de Google Cloud para consultar los metadatos a fin de determinar si el Acceso al SO está habilitado. El Acceso al SO se habilita cuando la clave de metadatos enable-oslogin
se configura como TRUE
en los metadatos del proyecto o la instancia. Si se configuran los metadatos de la instancia y del proyecto, el valor establecido en los metadatos de la instancia tiene prioridad.
Visualiza los usuarios del Acceso al SO
Para ver la información del perfil de varios usuarios, debes especificar los parámetros pagesize
y pagetoken
. Reemplaza pagesize
y pagetoken
por el valor numérico requerido.
curl "http://metadata.google.internal/computeMetadata/v1/oslogin/users?pagesize=PAGE_SIZE& pagetoken=PAGE_TOKEN" -H "Metadata-Flavor: Google"
Por ejemplo, para configurar pagesize
en 1
y pagetoken
en 0
, ejecuta el siguiente comando:
curl "http://metadata.google.internal/computeMetadata/v1/oslogin/users?pagesize=1&pagetoken=0" -H "Metadata-Flavor: Google"
En la mayoría de las distribuciones, también puedes ejecutar el comando getent passwd
de Unix para recuperar las entradas de contraseña de los usuarios de la organización.
Visualiza un usuario específico del Acceso al SO
Para ver la información de perfil de un usuario específico en tu VM, ejecuta el siguiente comando:
curl "http://metadata.google.internal/computeMetadata/v1/oslogin/users?username=USERNAME" -H "Metadata-Flavor: Google"
Reemplaza USERNAME
por el nombre de usuario del usuario que deseas consultar.
Por ejemplo, puedes realizar una solicitud para buscar el usuario user_example_com
.
El siguiente comando y el resultado muestran el formato agregado para mejorar la legibilidad.
curl "http://metadata.google.internal/computeMetadata/v1/oslogin/users?username=user_example_com" -H "Metadata-Flavor: Google"
El resultado es similar al siguiente:
{ "loginProfiles": [{ "name": "12345678912345", "posixAccounts": [{ "primary": true, "username": "user_example_com", "uid": "123451", "gid": "123451", "homeDirectory": "/home/user_example_com", "operatingSystemType": "LINUX" }], "sshPublicKeys": { "204c4b4fb...": { "key": "ssh-rsa AAAAB3Nz...", "fingerprint": "204c4b4fb..." } } }] }
En la mayoría de las distribuciones, también puedes ejecutar comandos de Unix como getent passwd username
o getent passwd uid
para recuperar la información de perfil.
Para recuperar las claves SSH de un usuario, también puedes ejecutar /usr/bin/google_authorized_keys USERNAME
.
Si no se muestran claves, es posible que el usuario no tenga los permisos necesarios para acceder a la VM.
Verifica los permisos de acceso
Para ver los permisos de nivel administrativo y de acceso, debes proporcionar los parámetros de consulta policy=login&email=LOGIN_NAME
.
Consulta el perfil del usuario para obtener el valor del campo
name
:curl "http://metadata.google.internal/computeMetadata/v1/oslogin/users?username=user_example_com" -H "Metadata-Flavor: Google"
En el resultado, toma nota del
name
.Ejecuta el siguiente comando de
login
con el valor dename
:curl "http://metadata.google.internal/computeMetadata/v1/oslogin/authorize?policy=login&email=LOGIN_NAME" -H "Metadata-Flavor: Google"
Por ejemplo, puedes consultar los permisos de acceso para el usuario user_example_com
que se vio en la sección anterior.
curl "http://metadata.google.internal/computeMetadata/v1/oslogin/authorize?policy=login&email=12345678912345" -H "Metadata-Flavor: Google"
El resultado del comando indica que el usuario está autorizado para acceder a la VM:
{"success":true}
Verifica si tu VM tiene una cuenta de servicio
Puedes consultar el servidor de metadatos para encontrar la cuenta de servicio asociada con tu VM. En tu VM, ejecuta el siguiente comando:
curl "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/" -H "Metadata-Flavor: Google"
El resultado es similar al siguiente:
12345-sa@developer.gserviceaccount.com/ default/
Si no se encuentra una cuenta de servicio, el resultado está en blanco.
¿Qué sigue?
- Obtén más información sobre Acceso al SO.
- Obtén información sobre cómo funcionan las conexiones SSH a las VM de Linux en Compute Engine.
- Para obtener instrucciones paso a paso, consulta una de las siguientes opciones:
- Consulta esta página sobre cómo administrar el acceso a SO en una organización