Usa las políticas de invitado para mantener una configuración de software coherente en las instancias de máquinas virtuales (VM) de Linux y Windows.
Para configurar una política de invitado en un conjunto de VM, completa los siguientes pasos:
- Asigna los permisos necesarios a los usuarios.
- Configura la VM.
- Configura el archivo JSON o YAML de la política de invitado.
- Crea la política de invitado.
Antes de comenzar
- Revisa las cuotas de configuración del SO.
-
Si aún no lo hiciste, configura la autenticación.
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:
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Para las VM orientadas, la política de invitado se actualiza cada vez que el agente se verifica con el servicio. Esta verificación se hace en intervalos de 10 a 15 minutos.
- No hay paneles de cumplimiento, notificaciones ni servicios de alertas disponibles con estas políticas de invitado del SO heredadas. Las VM que no ejecutan el agente de configuración del SO no informan errores. Para obtener mejores resultados, usa esta función con el servicio OS Inventory Management o cualquier otra herramienta de supervisión de 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.
- Borra y vuelve a crear la política de invitado con la receta de software con nombre cambiado.
- Administrador de GuestPolicy (
roles/osconfig.guestPolicyAdmin
). Contiene permisos para crear, borrar, 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. - Visualizador 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 en Google Workspace del usuario.- La sección de asignación, que contiene la lista de VM de destino.
- La sección de configuración necesaria, que contiene el estado que deseas mantener en las VM.
- El nombre de la instancia. Consulta el ejemplo 1.
- El prefijo del nombre de la instancia. Consulta el ejemplo 2.
- La etiqueta de la instancia. Consulta el ejemplo 3.
- La zona. Consulta el ejemplo 4.
- La 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 del SO, la versión y la arquitectura de las VM.
- Instala, quita y actualiza de forma automática paquetes de software. Consulta el ejemplo 1.
- Configurar repositorios de paquetes de software Consulta el ejemplo 1 o el ejemplo 3.
- Instala el software mediante recetas de software.
- A fin de obtener más información sobre cómo asignar políticas de invitado para paquetes, consulta el documento de referencia sobre la representación JSON de paquetes.
- Si deseas obtener más información sobre cómo asignar políticas de invitado para los repositorios de paquetes, consulta el documento de referencia de la representación JSON de PackageRepository.
- Sistema operativo: Red Hat Enterprise Linux 7
- Etiqueta:
color=red
- Contener solo letras minúsculas, números y guiones
- Comenzar 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
por el nombre de la política de invitado que deseas crearFILE
por el archivo JSON o YAML que contiene las especificaciones de la política de invitado Para ver opciones de configuración de muestra, consulta los archivos YAML de política de invitado de ejemplo.PROJECT_ID
: el ID de tu proyectoPOLICY_ID
por el nombre de la política de invitado- Obtén más información sobre las políticas de invitado del SO (heredadas).
- Administrar políticas de invitado.
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.
Limitaciones
Permisos
Debido a que puedes usar políticas de invitado para instalar y administrar paquetes de software en una VM, la creación y administración de políticas de invitado equivale a otorgar acceso de ejecución de código remoto en una VM.
Cuando configuras las políticas de invitado, los permisos de IAM se usan para controlar el acceso a los recursos y las actividades de la política que se registran en la auditoría. Sin embargo, los usuarios aún pueden ejecutar código en la VM, lo que implica un riesgo de seguridad potencial. Para mitigar este riesgo, te recomendamos que proporciones solo el acceso requerido a cada usuario.
Los propietarios de un proyecto tienen acceso completo para crear y administrar políticas. Para el resto de los usuarios, debes otorgar permisos. Puedes otorgar una de las siguientes funciones detalladas:
Por ejemplo, si deseas otorgarle acceso a un administrador de usuarios 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
Reemplaza lo siguiente:
Configura la VM.
Para usar las políticas de invitado, debes configurar VM Manager.
Configura un archivo YAML o JSON de política de invitados
Debes proporcionar las especificaciones de la política de invitados mediante un archivo JSON o YAML. Para ver opciones de configuración de muestra, consulta los archivos YAML de política de invitado de ejemplo.
El archivo YAML o JSON contiene las siguientes dos secciones principales:
Tareas
Puedes asignar políticas de invitado a todas las VM del proyecto o puedes usar la clave
assignment
en tu archivo JSON o YAML para apuntar a un grupo específico de VM.Por ejemplo, puedes apuntar un grupo de VM mediante cualquiera de las siguientes opciones:
Para asignar una política de invitado mediante la información del sistema operativo, el agente de configuración del SO debe enviar la información del sistema operativo al extremo de los atributos de invitado para la VM. Para garantizar la privacidad, la información del sistema operativo de las VM no está disponible de forma predeterminada. Para agrupar las VM por información del sistema operativo, debes asegurarte de que los atributos de invitado y servicios de OS Inventory Management estén habilitados. Para habilitar estos servicios, consulta la sección sobre cómo configurar tu VM.
La configuración de políticas de invitado se aplica de forma automática a todas las VM nuevas que coinciden con la asignación.
Configuración necesaria
La configuración necesaria se puede aplicar mediante una o varias de las siguientes tareas:
Archivos YAML de políticas de invitado de ejemplo
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
A fin de obtener más información sobre cómo asignar políticas de invitado para paquetes, consulta el documento de referencia sobre la representación JSON de paquetes.
Ejemplo 2
Instala el agente de Cloud Monitoring, mediante el administrador de paquetes de 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
Si deseas obtener más información sobre cómo asignar políticas de invitado para los repositorios de paquetes, consulta el documento de referencia de la representación JSON de PackageRepository.
Ejemplo 3
Instala
my-package
y quitabad-package-1
ybad-package-2
de las instancias con un conjunto específico de etiquetas. También agrega repositorios para los administradores de paquetes de 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
Instala el software de un 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 las políticas de recetas, consulta el documento de referencia de la representación JSON de SoftwareRecipe.
Ejemplo 5
Instala el software mediante la ejecución de una secuencia de comandos intercalada 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 cómo configurar las políticas de recetas, consulta el documento de referencia de la 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 las políticas de recetas, consulta el documento de referencia de la representación JSON de SoftwareRecipe.
Crea una política de invitado.
Cuando creas una política de invitado, el nombre de la política de invitado debe cumplir con los siguientes requisitos de denominación:
Usa uno de los siguientes métodos para crear una política de invitado.
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
Reemplaza lo siguiente:
REST
En la API, crea 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 }
Reemplaza lo siguiente:
Para ver opciones de configuración de muestra, consulta los archivos YAML de política de invitado de ejemplo.
Soluciona problemas
Para solucionar problemas de una política de invitado, consulta Depura una política de invitado.
Próximos pasos
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-12-22 (UTC)
-