Utilice políticas de invitados para mantener configuraciones de software coherentes en instancias de máquinas virtuales (VM) de Linux y Windows.
Para configurar una política de invitado en un conjunto de máquinas virtuales, complete los siguientes pasos:
- Asigne los permisos necesarios a los usuarios.
- Configure su máquina virtual .
- Configure el archivo JSON o YAML de la política de invitados.
- Crea la política de invitados .
Antes de comenzar
- Revise las cuotas de configuración del sistema operativo .
- 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:
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 las máquinas virtuales específicas, la política de invitados se actualiza cada vez que el agente se registra en el servicio. Esta verificación se realiza cada 10 a 15 minutos.
- No hay paneles de cumplimiento, notificaciones ni servicios de alerta disponibles con las políticas de invitado de este sistema operativo heredado. Las máquinas virtuales que no ejecutan el agente de configuración del sistema operativo no informan errores. Para obtener mejores resultados, utilice esta función con el servicio de administración de inventario del sistema operativo o cualquier otra herramienta de monitoreo de cumplimiento.
Una receta de software, con un nombre específico, solo se ejecuta una vez cuando crea una política de invitado. Para volver a ejecutar una receta de software, debe hacer lo siguiente:
- Cambie el nombre de la receta del software.
- Elimine y vuelva a crear la política de invitados utilizando la receta de software renombrada.
- Administrador de GuestPolicy (
roles/osconfig.guestPolicyAdmin
). Contiene permisos para crear, eliminar, actualizar, obtener y enumerar políticas de invitados. - Editor de GuestPolicy (
roles/osconfig.guestPolicyEditor
). Contiene permisos para obtener, actualizar y enumerar políticas de invitados. - Visor de GuestPolicy (
roles/osconfig.guestPolicyViewer
). Contiene permisos de acceso de solo lectura para obtener y enumerar políticas de invitados. -
PROJECT_ID
: el ID del proyecto. -
USER_ID
: el nombre de usuario de Google Workspace del usuario. - La sección de asignación que contiene la lista de máquinas virtuales de destino.
- La sección de configuración requerida que contiene el estado que desea mantener en las máquinas virtuales.
- Nombre de la instancia. Ver ejemplo 1 .
- Prefijo del nombre de la instancia. Ver ejemplo 2 .
- Etiqueta de instancia. Ver ejemplo 3 .
- Zona. Ver ejemplo 4 .
- Información del sistema operativo, que contiene el nombre, la versión y la arquitectura del sistema operativo. Ver ejemplo 5 . El comando os-inventory describe se puede utilizar para determinar el nombre del sistema operativo, la versión y la arquitectura de las máquinas virtuales.
- Instalar, eliminar y actualizar automáticamente paquetes de software. Ver ejemplo 1 .
- Configurar repositorios de paquetes de software. Vea el ejemplo 1 o el ejemplo 3 .
- Instale software utilizando recetas de software.
- Para máquinas virtuales Linux, consulte el ejemplo 5 .
- Para máquinas virtuales Windows, consulte el ejemplo 4 o el ejemplo 6 .
- Para obtener más información sobre la asignación de políticas de invitado para paquetes, consulte el documento de referencia de representación JSON del paquete .
- Para obtener más información sobre la asignación de políticas de invitado para repositorios de paquetes, consulte el documento de referencia de representación JSON de PackageRepository .
- Sistema operativo: Red Hat Enterprise Linux 7
- Etiqueta:
color=red
- Contener sólo letras minúsculas, números y guiones
- empezar con una letra
- Terminar con un número o una letra.
- Tener entre 1 y 63 caracteres
- Cada ID de política debe ser único dentro de un proyecto.
-
POLICY_ID
: el nombre de la política de invitados que desea crear. -
FILE
: archivo JSON o YAML que contiene las especificaciones de la política de invitados. Para ver configuraciones de muestra, consulte Ejemplos de archivos YAML de política de invitados . -
PROJECT_ID
: su ID de proyecto. -
POLICY_ID
: el nombre de su política de invitados. - Obtenga más información sobre las políticas de invitados del sistema operativo (heredado) .
- Gestionar las políticas de huéspedes .
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 .
Limitaciones
Permisos
Dado que puede utilizar políticas de invitado para instalar y administrar paquetes de software en una máquina virtual, la creación y administración de políticas de invitado equivale a otorgar acceso de ejecución remota de código en una máquina virtual.
Cuando configura políticas de invitados, los permisos de IAM se utilizan para controlar el acceso al recurso de políticas y las actividades se registran de auditoría. Sin embargo, los usuarios aún pueden ejecutar código en la máquina virtual, lo que representa un riesgo potencial para la seguridad. Para mitigar esto, le recomendamos que proporcione solo el acceso requerido a cada usuario.
Los propietarios de un proyecto tienen acceso completo para crear y administrar políticas. Para todos los demás usuarios, debe otorgar permisos. Puede otorgar uno de los siguientes roles granulares:
Por ejemplo, para otorgar a un usuario acceso de administrador a las políticas de invitados, ejecute el siguiente comando:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member user:USER_ID@gmail.com \ --role roles/osconfig.guestPolicyAdmin
Reemplace lo siguiente:
Configura tu máquina virtual
Para utilizar políticas de invitados, debe configurar VM Manager .
Configurar un archivo yaml o JSON de política de invitados
Debe proporcionar especificaciones de la política de invitados mediante un archivo JSON o YAML. Para ver configuraciones de muestra, consulte archivos YAML de políticas de invitados de ejemplo .
El archivo YAML o JSON contiene las dos secciones principales siguientes:
Asignaciones
Puede asignar políticas de invitado a todas las máquinas virtuales de su proyecto o puede usar la clave
assignment
en su archivo JSON o YAML para apuntar a un grupo específico de máquinas virtuales.Por ejemplo, puede dirigirse a un grupo de máquinas virtuales utilizando cualquiera de las siguientes características:
Para asignar una política de invitado utilizando información del sistema operativo, el agente de configuración del sistema operativo debe enviar información del sistema operativo al punto final de atributos de invitado para la VM. Para garantizar la privacidad, de forma predeterminada, la información del sistema operativo de las máquinas virtuales no está disponible. Para agrupar máquinas virtuales por información del sistema operativo, debe asegurarse de que los atributos de invitado y los servicios de administración de inventario del sistema operativo estén habilitados. Para habilitar estos servicios, consulte Configurar su VM .
Las configuraciones de la política de invitados se aplican automáticamente a todas las máquinas virtuales nuevas que coincidan con la asignación.
Configuración requerida
La configuración requerida se puede lograr utilizando cualquiera o una combinación de las siguientes tareas:
Ejemplos de archivos YAML de política de invitados
Ejemplo 1
Instale el paquete
my-package
que debe mantenerse actualizado en las siguientes instancias de VM:my-instance-1
ymy-instance-2
.assignment: instances: - zones/us-east1-c/instances/my-instance-1 - zones/us-east1-c/instances/my-instance-2 packages: - name: "my-package" desiredState: UPDATED
Para obtener más información sobre la asignación de políticas de invitado para paquetes, consulte el documento de referencia de representación JSON del paquete .
Ejemplo 2
Instale el agente de Cloud Monitoring mediante el administrador de paquetes yum en todas las instancias de VM que tengan cualquiera de los siguientes prefijos de nombre de instancia:
test-instance-
odev-instance-
.assignment: instanceNamePrefixes: - "test-instance-" - "dev-instance-" packages: - name: "stackdriver-agent" desiredState: INSTALLED manager: YUM packageRepositories: - yum: id: google-cloud-monitoring displayName: "Google Cloud Monitoring Agent Repository" baseUrl: https://packages.cloud.google.com/yum/repos/google-cloud-monitoring-el7-x86_64-all gpgKeys: - https://packages.cloud.google.com/yum/doc/yum-key.gpg - https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
Para obtener más información sobre la asignación de políticas de invitado para repositorios de paquetes, consulte el documento de referencia de representación JSON de PackageRepository .
Ejemplo 3
Instale
my-package
y eliminebad-package-1
ybad-package-2
de instancias con un conjunto específico de etiquetas. Agregue también repositorios para los administradores de paquetes apt y yum.assignment: # Assign to VM instances where `(label.color=red AND label.env=test) OR (label.color=blue AND label.env=test)` groupLabels: - labels: color: red env: test - labels: color: blue env: test packages: - name: "my-package" desiredState: INSTALLED - name: "bad-package-1" desiredState: REMOVED - name: "bad-package-2" desiredState: REMOVED manager: APT # Only apply this to systems with APT. packageRepositories: - apt: # Only apply this to systems with APT. uri: "https://packages.cloud.google.com/apt" archiveType: DEB distribution: cloud-sdk-stretch components: - main - yum: # Only apply this to systems with YUM. id: google-cloud-sdk displayName: "Google Cloud SDK" baseUrl: https://packages.cloud.google.com/yum/repos/cloud-sdk-el7-x86_64 gpgKeys: - https://packages.cloud.google.com/yum/doc/yum-key.gpg - https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
Ejemplo 4
Instale software desde una MSI alojada en Cloud Storage en todas las instancias en
us-east1-b
yus-east1-d
.assignment: zones: - us-east1-b - us-east1-d recipes: - name: "swr-msi-gcs" desiredState: INSTALLED artifacts: - id: "the-msi" gcs: bucket: "my-bucket" object: "executable.msi" # full URI gs://my-bucket/executable.msi#nnnnn generation: 1546030865175603 installSteps: - msiInstallation: artifactId: "the-msi"
Para obtener más información sobre la configuración de políticas de recetas, consulte el documento de referencia de representación JSON de SoftwareRecipe .
Ejemplo 5
Instale el software ejecutando un script en línea en todas las instancias de VM que cumplan con los siguientes requisitos:
assignment: osTypes: - osShortName: rhel osVersion: "7" groupLabels: - labels: color: red recipes: - name: recipe-runscript desiredState: INSTALLED installSteps: - scriptRun: script: |- #!/bin/bash touch /TOUCH_FILE
Para obtener más información sobre la configuración de políticas de recetas, consulte el documento de referencia de representación JSON de SoftwareRecipe .
Ejemplo 6
Instala la aplicación en todas las instancias de Windows mediante un instalador ejecutable que tiene el siguiente prefijo de nombre de instancia:
test-instance-
.assignment: instanceNamePrefixes: - "test-instance-" osTypes: - osShortName: WINDOWS recipes: - name: windows-install-exe-example desiredState: INSTALLED artifacts: - id: installer gcs: bucket: my-bucket generation: '1597013478912389' object: MyApp.Installer.x64.exe installSteps: - fileExec: artifactId: installer args: - /S # Installation must be silent
Para obtener más información sobre la configuración de políticas de recetas, consulte el documento de referencia de representación JSON de SoftwareRecipe .
Crear una política de invitados
Cuando crea una política de invitado, el nombre de la política de invitado debe cumplir con los siguientes requisitos de nomenclatura:
Utilice uno de los siguientes métodos para crear una política de invitados.
nube de gcloud
Utilice el comando
os-config guest-policies create
para crear una política de invitado.gcloud beta compute os-config guest-policies create POLICY_ID \ --file=FILE
Reemplace lo siguiente:
DESCANSAR
En la API, cree una solicitud
POST
para el métodoprojects.guestPolicies.create
.POST https://osconfig.googleapis.com/v1beta/projects/PROJECT_ID/guestPolicies?guestPolicyId=POLICY_ID { For more information, see Guest policy JSON }
Reemplace lo siguiente:
Para ver configuraciones de muestra, consulte archivos YAML de políticas de invitados de ejemplo .
Solución de problemas
Para solucionar problemas de una política de invitado, consulte Depuración de una política de invitado .
¿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).
-