Los atributos de invitado son un tipo específico de metadatos personalizados en los que sus aplicaciones pueden escribir mientras se ejecutan en su instancia de máquina virtual (VM). Cualquier aplicación o usuario en su instancia de VM puede leer y escribir datos en estos valores de metadatos de atributos de invitado.
Antes de comenzar
- Para máquinas virtuales con Windows Server, utilice PowerShell 3.0 o posterior . Le recomendamos que utilice
ctrl+v
para pegar los bloques de código copiados. - 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
-
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.
- Set a default region and zone.
- Para habilitar los atributos de invitado:
en la máquina virtual o el proyectocompute.instances.setMetadata
- Para ver los atributos de los invitados:
en la máquina virtual o el proyecto.compute.instances.getGuestAttributes
- La cantidad de consultas está limitada a un máximo de 10 consultas por minuto por instancia de VM.
- Las consultas no superan una ráfaga de 3 consultas por segundo. Si se excede esta tasa máxima, Compute Engine podría eliminar arbitrariamente los atributos de invitado que están en proceso de escritura. Esta eliminación de datos es necesaria para garantizar que otros datos críticos del sistema se puedan escribir en el servidor.
- Scripts de inicio que pueden indicar una inicialización exitosa estableciendo un valor de estado personalizado en los atributos del invitado.
- Agentes de gestión de configuración que pueden publicar el nombre y la versión de un sistema operativo invitado en los atributos del invitado.
- Agentes de gestión de inventario que pueden publicar una lista de paquetes instalados en la instancia de VM en atributos de invitado.
- Software de orquestación de cargas de trabajo que puede indicar la finalización de una operación en el invitado al plano de control del software estableciendo un valor de estado personalizado en los atributos del invitado.
- Seguridad SSH: si los atributos de invitado están habilitados y el inicio de sesión en el sistema operativo está deshabilitado, el entorno de invitado y la CLI de gcloud usan atributos de invitado para mejorar la seguridad de SSH mediante la API de Google para recuperar claves de host antes de que puedas conectarte a tu VM usando SSH.
- Administrador de VM: el agente de configuración del sistema operativo publica datos del sistema operativo en atributos de invitado.
En la consola de Google Cloud, vaya a la página Crear una instancia .
Especifique los detalles de la máquina virtual.
Expanda la sección Opciones avanzadas y haga lo siguiente:
- Expanda la sección Gestión .
En la sección Metadatos , haga clic en Agregar elemento y agregue las siguientes entradas de metadatos:
- Clave :
enable-guest-attributes
- Valor :
TRUE
- Clave :
Para crear la VM, haga clic en Crear .
En la consola de Google Cloud, vaya a la página Metadatos .
Haga clic en Editar .
Agregue una entrada de metadatos donde la clave sea
enable-guest-attributes
y el valor seaTRUE
. Alternativamente, establezca el valor enFALSE
para desactivar la función.Haga clic en Guardar para aplicar los cambios.
- En la consola de Google Cloud, vaya a la página de instancias de VM .
- Haga clic en el nombre de la VM en la que desea establecer el valor de metadatos.
- En la parte superior de la página de detalles de la instancia, haga clic en Editar para editar la configuración de la instancia.
- En Metadatos personalizados , agregue una entrada de metadatos donde la clave sea
enable-guest-attributes
y el valor seaTRUE
. Como alternativa, establezca el valor enFALSE
para excluir la máquina virtual de la función. - En la parte inferior de la página de detalles de la instancia, haga clic en Guardar para aplicar los cambios a la VM.
-
NAMESPACE
: una agrupación lógica para suKEY
. Los atributos de invitado deben tener un espacio de nombres. -
VALUE
: el valor que desea escribir. -
KEY
: la ruta de los metadatos dentro deguest-attributes
donde se almacena el valor. -
NAMESPACE
: una agrupación lógica para suKEY
. Los atributos de invitado deben tener un espacio de nombres. -
VALUE
: el valor que desea escribir. -
KEY
: la ruta de los metadatos dentro deguest-attributes
donde se almacena el valor. Conéctese a la máquina virtual.
Consulta los atributos del huésped.
Máquinas virtuales Linux
Por ejemplo, puede utilizar una solicitud
curl
desde su VM para leer un valor de la ruta de metadatosguest-attributes
:curl http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/KEY -H "Metadata-Flavor: Google"
Reemplace lo siguiente:
-
NAMESPACE
: el espacio de nombres para la claveguest-attributes
que desea consultar. -
KEY
: la ruta dentro deguest-attributes
desde la cual desea leer el valor de los metadatos.
Alternativamente, puede devolver todos los valores de los atributos del huésped en una sola solicitud. Reemplace
NAMESPACE
con el espacio de nombres de la claveguest-attributes
que desea consultar.curl http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/ -H "Metadata-Flavor: Google"
Máquinas virtuales de Windows
Por ejemplo, puede usar una solicitud
Invoke-RestMethod
desde su VM para leer un valor de la ruta de metadatosguest-attributes
:PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/KEY") $value
Reemplace lo siguiente:
-
NAMESPACE
: el espacio de nombres para la claveguest-attributes
que desea consultar. -
KEY
: la ruta dentro deguest-attributes
desde la cual desea leer el valor de los metadatos.
Alternativamente, puede devolver todos los valores de los atributos del huésped en una sola solicitud. Reemplace
NAMESPACE
con el espacio de nombres de la claveguest-attributes
que desea consultar.PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/") $value
-
-
VM_NAME
: el nombre de la VM desde la que desea leer el valor de metadatos del atributo de invitado -
NAMESPACE
: el espacio de nombres para la claveguest-attributes
que desea consultar -
KEY
: la ruta dentro de los metadatosguest-attributes
donde se almacena el valor -
ZONE
: la zona donde se encuentra la VM -
PROJECT_ID
: ID de tu proyecto -
ZONE
: la zona donde se encuentra su VM -
VM_NAME
: el nombre de la VM desde la que desea leer el valor de metadatos del atributo de invitado -
NAMESPACE
: el espacio de nombres para la claveguest-attributes
que desea consultar -
KEY
: la ruta dentro de los metadatosguest-attributes
donde se almacena el valor -
OAUTH_TOKEN
: tu token de OAuth -
PROJECT_ID
: ID de tu proyecto -
ZONE
: la zona donde se encuentra su VM -
VM_NAME
: el nombre de la VM desde la que desea leer el valor de metadatos del atributo de invitado -
NAMESPACE
: el espacio de nombres para la claveguest-attributes
que desea consultar -
KEY
: la ruta dentro de los metadatosguest-attributes
donde se almacena el valor Conéctese a la máquina virtual.
Eliminar los atributos del invitado.
Máquinas virtuales Linux
También puede eliminar atributos de invitados. Por ejemplo, use
curl
para eliminar una clave específica:curl -X DELETE http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/KEY -H "Metadata-Flavor: Google"
Reemplace lo siguiente:
-
NAMESPACE
: el espacio de nombres para la claveguest-attributes
que desea eliminar -
KEY
: la ruta dentro deguest-attributes
donde se almacena el valor
Máquinas virtuales de Windows
También puede eliminar atributos de invitados. Por ejemplo, utilice
Invoke-RestMethod
para eliminar una clave específica:PS C:\> $value = (Invoke-RestMethod ` -Method DELETE ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/KEY") $value
Reemplace lo siguiente:
-
NAMESPACE
: el espacio de nombres para la claveguest-attributes
que desea eliminar -
KEY
: la ruta dentro deguest-attributes
donde se almacena el valor
-
- Obtenga más información sobre los metadatos de VM .
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 .
Roles requeridos
Los permisos o roles necesarios dependen de si está completando tareas desde dentro o fuera de la VM.
Dentro de la máquina virtual
Si está configurando, consultando o eliminando los atributos del invitado desde la VM, solo necesita los roles y permisos para conectarse a la VM. Cualquier proceso que se ejecute en la instancia de VM puede escribir en los valores de los atributos del invitado, incluidos scripts y aplicaciones que no tienen privilegios de nivel sudo o administrador.
Para lecturas y escrituras desde una máquina virtual, el servidor de metadatos proporciona autenticación y autorización automáticas a nivel de instancia. Cada VM puede leer o escribir únicamente en su propio servidor de metadatos. Otras máquinas virtuales no pueden acceder al servidor de metadatos de otra máquina virtual.
Fuera de la máquina virtual
Se necesitan las siguientes funciones y permisos para habilitar los atributos de los invitados o ver los atributos de los invitados desde fuera de la VM mediante la CLI o REST de Google Cloud. No puede configurar ni eliminar atributos de invitado desde fuera de una VM.
Para asegurarse de que su cuenta de usuario o de servicio tenga los permisos necesarios para habilitar o ver los atributos de invitado, solicite a su administrador que le otorgue a su cuenta de usuario o de servicio la función de IAM de Administrador de instancia informática (v1) (
roles/compute.instanceAdmin.v1
) en la máquina virtual o el proyecto. Para obtener más información sobre cómo otorgar roles, consulte Administrar el acceso a proyectos, carpetas y organizaciones .Esta función predefinida contiene los permisos necesarios para habilitar o ver los atributos de los invitados. Para ver los permisos exactos que se requieren, expanda la sección Permisos requeridos :
Permisos requeridos
Se requieren los siguientes permisos para habilitar o ver los atributos de los invitados:
Su administrador también podría otorgarle a su cuenta de usuario o de servicio estos permisos con roles personalizados u otros roles predefinidos .
Cuándo usar atributos de invitado
Utilice atributos de invitado solo para casos de uso que requieran pequeñas cantidades de datos que no cambien con frecuencia. Los mejores casos de uso para atributos de invitados tienen las siguientes características:
Los atributos de invitado funcionan bien para situaciones en las que debe publicar datos de bajo volumen y con poca frecuencia. Por ejemplo, los atributos de invitado funcionan bien para los siguientes casos de uso:
Los atributos de invitado no reemplazan la transmisión de eventos, Pub/Sub u otras formas de almacenamiento de datos y repositorios de configuración.
Atributos de los invitados y otros Google Cloud servicios
Los atributos de invitado son utilizados por otros Google Cloud servicios de la siguiente manera:
Para revisar las entradas de metadatos almacenadas por estos servicios, consulte Claves de metadatos de atributos de invitado predefinidos .
Habilite los atributos de invitado en su VM
De forma predeterminada, los atributos de invitado están deshabilitados. Para habilitar los atributos de invitado, establezca los valores de metadatos necesarios en sus máquinas virtuales individuales o en metadatos de todo el proyecto:
Consola
Establezca
enable-guest-attributes
en los metadatos de la instancia cuando cree una VM:Establezca
enable-guest-attributes
en los metadatos de todo el proyecto para que se apliquen a todas las máquinas virtuales de su proyecto:Establezca
enable-guest-attributes
en los metadatos de una VM existente:nube de gcloud
Establezca
enable-guest-attributes
en los metadatos de la instancia cuando cree una VM:Utilice el comando
gcloud compute instances create
en la CLI de Google Cloud y establezcaenable-guest-attributes=TRUE
para habilitar los atributos de invitado. ReemplaceVM_NAME
con el nombre de su VM.gcloud compute instances create VM_NAME \ --metadata=enable-guest-attributes=TRUE
Establezca
enable-guest-attributes
en los metadatos de todo el proyecto para que se apliquen a todas las máquinas virtuales de su proyecto:Utilice el comando
project-info add-metadata
en la CLI de Google Cloud y establezcaenable-guest-attributes=TRUE
para habilitar los atributos de invitado:gcloud compute project-info add-metadata \ --metadata=enable-guest-attributes=TRUE
Alternativamente, puede configurar
enable-guest-attributes
enFALSE
para deshabilitar los atributos de invitado.Establezca
enable-guest-attributes
en los metadatos de una VM existente:Utilice el comando
instances add-metadata
en la CLI de Google Cloud y establezcaenable-guest-attributes=TRUE
para habilitar los atributos de invitado. ReemplaceVM_NAME
con el nombre de su VM.gcloud compute instances add-metadata VM_NAME \ --metadata=enable-guest-attributes=TRUE
Alternativamente, puede configurar
enable-guest-attributes
enFALSE
para excluir su VM del uso de atributos de invitado.Establecer atributos de invitado
Cualquier proceso que se ejecute en la instancia de VM puede escribir en los valores de los atributos del invitado, incluidos scripts y aplicaciones que no tienen privilegios de nivel sudo o administrador. Los usuarios o cuentas de servicio fuera de la VM no pueden escribir valores de metadatos de atributos de invitado.
Máquinas virtuales Linux
Por ejemplo, puede usar una solicitud
curl
desde su VM para escribir un valor en la ruta de metadatosguest-attributes
:curl -X PUT --data "VALUE" http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/KEY -H "Metadata-Flavor: Google"
Reemplace lo siguiente:
Utilice únicamente letras, números, guiones bajos (
_
) y guiones (-
) para los camposNAMESPACE
yKEY
.Máquinas virtuales de Windows
Por ejemplo, puede utilizar una solicitud
Invoke-RestMethod
desde su VM para escribir un valor en la ruta de metadatosguest-attributes
:PS C:\> $value = (Invoke-RestMethod ` -Method PUT -Body "VALUE" ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/KEY") $value
Reemplace lo siguiente:
Utilice únicamente letras, números, guiones bajos (
_
) y guiones (-
) para los camposNAMESPACE
yKEY
.Obtener atributos de invitado
Los usuarios o las cuentas de servicio pueden leer los atributos de los invitados desde fuera de una máquina virtual si tienen el rol requerido . Alternativamente, cualquier usuario o aplicación dentro de la VM puede leer los valores de metadatos para esa VM específica.
Cualquier proceso que se ejecute en la máquina virtual puede escribir en el valor de los atributos del invitado, que incluyen scripts y aplicaciones que no tienen privilegios de nivel sudo o administrador.
Consultar el servidor de metadatos
Utilice las siguientes instrucciones para consultar los atributos de invitado desde una máquina virtual.
Utilice Google Cloud CLI o REST
Utilice las siguientes instrucciones para ver los atributos de invitado desde fuera de una VM.
nube de gcloud
Utilice la CLI de Google Cloud para leer los valores de metadatos de atributos de invitado para una máquina virtual. Por ejemplo, puede recuperar todos los valores de la VM de la siguiente manera:
gcloud compute instances get-guest-attributes VM_NAME \ --zone=ZONE
Para recuperar todos los valores bajo un espacio de nombres específico, incluya el indicador
--query-path
y el espacio de nombres que definió:gcloud compute instances get-guest-attributes VM_NAME \ --query-path=NAMESPACE \ --zone=ZONE
Para recuperar todos los valores bajo un espacio de nombres específico, incluya el indicador
--query-path
, el espacio de nombres y la clave para el valor que definió:gcloud compute instances get-guest-attributes VM_NAME \ --query-path=NAMESPACE/KEY \ --zone=ZONE
Reemplace lo siguiente:
DESCANSAR
Utilice el método
compute.instances.getguestattributes
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/getGuestAttributes?queryPath=NAMESPACE/KEY
Reemplace lo siguiente:
Para recuperar todas las claves de un
NAMESPACE
, omita laKEY
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/getGuestAttributes?queryPath=NAMESPACE
Para recuperar todas las claves en cada espacio de nombres en la VM, omita
NAMESPACE
yqueryPath
por completo:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/getGuestAttributes
Alternativamente, si tienes un token OAuth, puedes usar
curl
:curl -H "Authorization: Bearer OAUTH_TOKEN" https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/getGuestAttributes?queryPath=NAMESPACE/KEY
Reemplace lo siguiente:
Eliminar atributos de invitado
Utilice las siguientes instrucciones para eliminar atributos de invitado desde una máquina virtual.
Deshabilitar los atributos de invitado en su organización o carpeta
Si no desea que ninguna de las máquinas virtuales de su organización o carpeta habilite los atributos de invitado, puede anular y deshabilitar la función por completo.
Establece la restricción
constraints/compute.disableGuestAttributesAccess
en tu organización o carpeta, reemplazandoPROJECT_ID
con el nombre de tu proyecto:gcloud resource-manager org-policies enable-enforce \ constraints/compute.disableGuestAttributesAccess \ --project=PROJECT_ID
Lea Uso de restricciones para obtener más información sobre cómo establecer y administrar restricciones en sus organizaciones.
¿Qué sigue?
A menos que se indique lo contrario, el contenido de esta página está sujeto a la licencia Reconocimiento 4.0 de Creative Commons y las muestras de código están sujetas a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio web de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-04-17 (UTC).
-