Usa políticas de invitado 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, sigue estos pasos:
- Asigna los permisos necesarios a los usuarios.
- Configura tu máquina virtual.
- Configura el archivo JSON o YAML de la política de invitado.
- Crea la política de invitado.
Antes de empezar
- Consulta las cuotas de OS Config.
-
Si aún no lo has hecho, configura la autenticación.
La autenticación verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos 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
-
Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:
gcloud init
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
- Set a default region and zone.
REST
Para usar las muestras de la API REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.
Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:
gcloud init
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .
Limitaciones
- En las VMs de destino, la política de invitado se actualiza cada vez que el agente se comunica con el servicio. Esta comprobación se realiza cada 10-15 minutos.
- Con estas políticas de SO invitado antiguas, no hay paneles de control de cumplimiento, notificaciones ni servicios de alertas disponibles. Las VMs que no ejecutan el agente de configuración de SOs no informan de ningún error. Para obtener los mejores resultados, usa esta función con el servicio Gestión de inventario de SO o con cualquier otra herramienta de monitorización del cumplimiento.
Una receta de software, con un nombre específico, solo se ejecuta una vez cuando creas una política de invitado. Para volver a ejecutar una receta de software, debes hacer lo siguiente:
- Cambia el nombre de la receta de software.
- Elimina y vuelve a crear la política de invitado con la receta de software renombrada.
Permisos
Como puedes usar políticas de invitado para instalar y gestionar paquetes de software en una VM, la creación y gestión de políticas de invitado equivale a conceder acceso a la ejecución de código remoto en una VM.
Cuando configuras políticas de invitado, se usan permisos de gestión de identidades y accesos para controlar el acceso al recurso de política y las actividades se registran en auditorías. Sin embargo, los usuarios pueden seguir ejecutando código en la VM, lo que supone un riesgo de seguridad potencial. Para mitigar este problema, te recomendamos que proporciones a cada usuario solo el acceso necesario.
Los propietarios de un proyecto tienen acceso completo para crear y gestionar políticas. En el caso del resto de los usuarios, debes conceder permisos. Puedes conceder uno de los siguientes roles granulares:
- Administrador de GuestPolicy (
roles/osconfig.guestPolicyAdmin
). Contiene permisos para crear, eliminar, actualizar, obtener y enumerar políticas de invitado. - Editor de GuestPolicy (
roles/osconfig.guestPolicyEditor
). Contiene permisos para obtener, actualizar y mostrar políticas de invitado. - Lector de GuestPolicy (
roles/osconfig.guestPolicyViewer
). Contiene permisos para obtener y enumerar políticas de invitados con acceso de solo lectura.
Por ejemplo, para conceder acceso de administrador a un usuario a las políticas de invitado, ejecuta el siguiente comando:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member user:USER_ID@gmail.com \ --role roles/osconfig.guestPolicyAdmin
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto.USER_ID
: el nombre de usuario de Google Workspace del usuario.
Configurar una máquina virtual
Para usar políticas de invitado, debes configurar Gestor de VMs.
Configurar un archivo YAML o JSON de una política de invitado
Debes proporcionar las especificaciones de la política de invitado mediante un archivo JSON o YAML. Para ver configuraciones de ejemplo, consulta los archivos YAML de políticas de invitado de ejemplo.
El archivo YAML o JSON contiene las dos secciones principales siguientes:
- La sección de asignación, que contiene la lista de las máquinas virtuales de destino.
- La sección de configuración obligatoria, que contiene el estado que quieres mantener en las VMs.
Tareas
Puedes asignar políticas de invitado a todas las máquinas virtuales de tu proyecto o usar la clave
assignment
en tu archivo JSON o YAML para orientar la política a un grupo específico de máquinas virtuales.Por ejemplo, puedes orientar anuncios a un grupo de máquinas virtuales mediante cualquiera de las siguientes características:
- Nombre de la instancia. Consulta el ejemplo 1.
- Prefijo de nombre de instancia. Consulta el ejemplo 2.
- Etiqueta de instancia. Consulta el ejemplo 3.
- Zona. Consulta el ejemplo 4.
- Información del sistema operativo, que contiene el nombre, la versión y la arquitectura del SO. Consulta el ejemplo 5. El comando os-inventory describe se puede usar para determinar el nombre, la versión y la arquitectura del SO de las VMs.
Para asignar una política de invitado mediante la información del sistema operativo, el agente de configuración del SO debe enviar información del sistema operativo al endpoint de atributos de invitado de la VM. Para proteger la privacidad, la información del sistema operativo de las máquinas virtuales no está disponible de forma predeterminada. Para agrupar las VMs por información del sistema operativo, debes asegurarte de que los servicios de gestión de inventario de atributos de invitado y de SO estén habilitados. Para habilitar estos servicios, consulta Configurar tu máquina virtual.
Las configuraciones de la política de invitado se aplican automáticamente a todas las VMs nuevas que coincidan con la asignación.
Configuración obligatoria
La configuración necesaria se puede llevar a cabo de cualquiera de las siguientes formas o con una combinación de ellas:
- Instalar, eliminar y actualizar automáticamente paquetes de software. Consulta el ejemplo 1.
- Configura repositorios de paquetes de software. Consulta el ejemplo 1 o el ejemplo 3.
- Instala software mediante recetas de software.
Ejemplos de archivos YAML de políticas de invitados
Ejemplo 1
Instala 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 cómo asignar políticas de invitado a paquetes, consulta el documento de referencia Representación JSON de Package.
Ejemplo 2
Instala el agente de Cloud Monitoring, mediante el gestor de paquetes yum, en todas las instancias de VM que tengan alguno 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 cómo asignar políticas de invitado a repositorios de paquetes, consulta el documento de referencia Representación JSON de PackageRepository.
Ejemplo 3
Instala
my-package
y eliminabad-package-1
ybad-package-2
de las instancias con un conjunto específico de etiquetas. También añade repositorios para los gestores 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
- Para obtener más información sobre cómo asignar políticas de invitado a paquetes, consulta el documento de referencia Representación JSON de Package.
- Para obtener más información sobre cómo asignar políticas de invitado a repositorios de paquetes, consulta el documento de referencia Representación JSON de PackageRepository.
Ejemplo 4
Instala software desde un archivo MSI alojado en Cloud Storage en todas las instancias de
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 cómo configurar políticas de recetas, consulta el documento de referencia Representación JSON de SoftwareRecipe.
Ejemplo 5
Instala software ejecutando una secuencia de comandos insertada en todas las instancias de VM que cumplan los siguientes requisitos:
- Sistema operativo: Red Hat Enterprise Linux 7
- Etiqueta:
color=red
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 cómo configurar políticas de recetas, consulta el documento de referencia 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 cómo configurar políticas de recetas, consulta el documento de referencia Representación JSON de SoftwareRecipe.
Crear una política de invitado
Cuando cree una política de invitado, el nombre de la política debe cumplir los siguientes requisitos:
- Contener solo letras minúsculas, números y guiones
- Empieza por una letra
- Terminar con un número o una letra
- Tener entre 1 y 63 caracteres
- Cada ID de política debe ser único en un proyecto.
Utiliza uno de los siguientes métodos para crear una política de invitados.
gcloud
Usa 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
Haz los cambios siguientes:
POLICY_ID
: el nombre de la política de invitado que quieras crear.FILE
: archivo JSON o YAML que contiene las especificaciones de la política de invitado. Para ver ejemplos de configuraciones, consulta Ejemplos de archivos YAML de políticas de invitado.
REST
En la API, crea una solicitud
POST
al métodoprojects.guestPolicies.create
.POST https://osconfig.googleapis.com/v1beta/projects/PROJECT_ID/guestPolicies?guestPolicyId=POLICY_ID { For more information, see Guest policy JSON }
Haz los cambios siguientes:
PROJECT_ID
: tu ID de proyecto.POLICY_ID
: el nombre de tu política de huéspedes.
Para ver configuraciones de ejemplo, consulta los archivos YAML de políticas de invitado de ejemplo.
Solución de problemas
Para solucionar problemas con una política de invitado, consulta Depurar una política de invitado.
Siguientes pasos
- Consulta más información sobre las políticas de invitados del SO (versión antigua).
- Gestionar políticas de invitados
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-09-11 (UTC).
-