Sie können Gastrichtlinien verwenden, um konsistente Softwarekonfigurationen über virtuelle Linux- und Windows-Maschineninstanzen (VMs) hinweg zu erhalten.
So richten Sie eine Gastrichtlinie für eine Gruppe von VMs ein:
- Weisen Sie Nutzern die erforderlichen Berechtigungen zu.
- Richten Sie Ihre VM ein.
- Konfigurieren Sie die JSON- oder YAML-Datei für die Gastrichtlinie.
- Erstellen Sie die Gastrichtlinie.
Hinweise
- Prüfen Sie die OS Config-Kontingente.
-
Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben.
Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Trusted Cloud by S3NS -Dienste und APIs überprüft.
Zum Ausführen von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei der Compute Engine authentifizieren:
Select the tab for how you plan to use the samples on this page:
gcloud
-
Installieren Sie die Google Cloud CLI und melden Sie sich dann mit Ihrer föderierten Identität in der gcloud CLI an. Nach der Anmeldung initialisieren Sie die Google Cloud CLI mit folgendem Befehl:
gcloud init
- Set a default region and zone.
REST
Wenn Sie die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, nutzen Sie die Anmeldedaten, die Sie der gcloud CLI bereitstellen.
Installieren Sie die Google Cloud CLI und melden Sie sich dann mit Ihrer föderierten Identität in der gcloud CLI an. Nach der Anmeldung initialisieren Sie die Google Cloud CLI mit folgendem Befehl:
gcloud init
Weitere Informationen finden Sie in der Dokumentation zur Trusted Cloud -Authentifizierung unter Für die Verwendung von REST authentifizieren.
Beschränkungen
- Bei Ziel-VMs wird die Gastrichtlinie jedes Mal aktualisiert, wenn sich der Agent beim Dienst anmeldet. Diese Prüfung erfolgt alle 10 bis 15 Minuten.
- Für diese Gastrichtlinien für Legacy-Betriebssysteme sind keine Compliance-Dashboards, Benachrichtigungen oder Benachrichtigungsdienste verfügbar. VMs, auf denen der OS Config-Agent nicht ausgeführt wird, melden keinen Fehler. Die besten Ergebnisse erzielen Sie, wenn Sie dieses Feature mit OS Inventory Management oder einem anderen Compliance-Monitoringtool verwenden.
Ein Softwareschema mit einem bestimmten Namen wird nur einmal ausgeführt, wenn Sie eine Gastrichtlinie erstellen. So führen Sie ein Softwareschema noch einmal aus:
- Benennen Sie das Softwareschema um.
- Löschen und erstellen Sie die Gastrichtlinie mit dem umbenannten Softwareschema neu.
Berechtigungen
Da Sie Gastrichtlinien zur Installation und Verwaltung von Softwarepaketen auf einer VM verwenden können, entspricht die Erstellung und Verwaltung von Gastrichtlinien dem Gewähren des Zugriffs auf die Remote-Codeausführung auf einer VM.
Wenn Sie Gastrichtlinien einrichten, werden IAM-Berechtigungen zur Steuerung des Zugriffs auf die Richtlinienressource verwendet, und Aktivitäten werden protokolliert. Nutzer können jedoch weiterhin Code auf der VM ausführen, was ein potenzielles Sicherheitsrisiko darstellt. Deshalb sollten Sie jedem Nutzer nur den erforderlichen Zugriff gewähren.
Die Inhaber eines Projekts haben uneingeschränkten Zugriff zum Erstellen und Verwalten von Richtlinien. Für alle anderen Nutzer müssen Sie Berechtigungen erteilen. Dafür können Sie eine dieser detaillierten Rollen zuweisen:
- GuestPolicy-Administrator (
roles/osconfig.guestPolicyAdmin
): enthält Berechtigungen zum Erstellen, Löschen, Aktualisieren, Abrufen und Auflisten von Gastrichtlinien. - GuestPolicy-Bearbeiter (
roles/osconfig.guestPolicyEditor
): enthält Berechtigungen zum Abrufen, Aktualisieren und Auflisten von Gastrichtlinien. - GuestPolicy-Betrachter (
roles/osconfig.guestPolicyViewer
): Enthält Berechtigungen für Lesezugriff, um Gastrichtlinien abzurufen und aufzulisten.
Führen Sie beispielsweise den folgenden Befehl aus, um einem Nutzer Administratorzugriff auf Gastrichtlinien zu gewähren:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member user:USER_ID@gmail.com \ --role roles/osconfig.guestPolicyAdmin
Ersetzen Sie Folgendes:
PROJECT_ID
: die Projekt-ID.USER_ID
: der Google Workspace-Nutzername des Nutzers.
VM einrichten
Wenn Sie Gastrichtlinien verwenden möchten, müssen Sie VM Manager einrichten.
YAML- oder JSON-Datei für Gastrichtlinien konfigurieren
Geben Sie Spezifikationen für Gastrichtlinien an, indem Sie entweder eine JSON- oder eine YAML-Datei verwenden. Beispielkonfigurationen finden Sie unter Beispiele für YAML-Dateien für Gastrichtlinien.
Die YAML- oder JSON-Datei enthält die folgenden beiden Hauptabschnitte:
- Der Abschnitt zu Zuweisungen enthält die Liste der Ziel-VMs.
- Den erforderlichen Konfigurationsabschnitt, der den Zustand enthält, den Sie auf den VMs verwalten möchten.
Tool „Aufgaben“
Sie können allen VMs in Ihrem Projekt Gastrichtlinien zuweisen oder Sie können den Schlüssel
assignment
in Ihrer JSON- oder YAML-Datei verwenden, um auf eine bestimmte Gruppe von VMs abzuzielen.Sie können dafür beispielsweise eine der folgenden Eigenschaften verwenden:
- Instanzname. Siehe Beispiel 1.
- Präfix des Instanznamens. Siehe Beispiel 2.
- Instanzlabel. Siehe Beispiel 3.
- Zone. Siehe Beispiel 4.
- Informationen zum Betriebssystem, die den Namen, die Version und die Architektur des Betriebssystems enthalten. Siehe Beispiel 5. Mit dem Befehl os-inventory describe können Sie den Betriebssystemnamen, die Version und die Architektur von VMs ermitteln.
Der OS Configuration-Agent muss Betriebssysteminformationen an den Gastattribut-Endpunkt für die VM senden, um eine Gastrichtlinie mithilfe von Betriebssysteminformationen zuzuweisen. Aus Datenschutzgründen sind standardmäßig keine Betriebssysteminformationen für VMs verfügbar. Aktivieren Sie die Gastattribute und OS Inventory Management-Dienste, um VMs nach Betriebssysteminformationen zu gruppieren. Informationen zum Aktivieren dieser Dienste finden Sie unter VM einrichten.
Konfigurationen von Gastrichtlinien werden automatisch auf alle neuen VMs angewendet, die der Zuweisung entsprechen.
Erforderliche Konfiguration
Die erforderliche Konfiguration kann mithilfe einer der folgenden Aufgaben oder einer Kombination dieser Aufgaben erreicht werden:
- Softwarepakete installieren, entfernen und automatisch aktualisieren Siehe Beispiel 1.
- Softwarepaket-Repositories konfigurieren Siehe Beispiel 1 oder Beispiel 3.
- Installieren Sie Software mithilfe von Softwareschemas.
- Informationen zu Linux-VMs finden Sie in Beispiel 5.
- Informationen zu Windows-VMs finden Sie in Beispiel 4 und Beispiel 6.
Beispiele für YAML-Dateien für Gastrichtlinien
Beispiel 1
Installieren Sie das Paket
my-package
, das auf den folgenden VM-Instanzen auf dem neuesten Stand gehalten werden muss:my-instance-1
undmy-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
Weitere Informationen zum Zuweisen von Gastrichtlinien für Pakete finden Sie im Referenzdokument zur Package-JSON-Darstellung.
Beispiel 2
Installieren Sie den Cloud Monitoring-Agent mithilfe des yum-Paketmanagers auf allen VM-Instanzen, die eines der folgenden Instanznamenpräfixe haben:
test-instance-
oderdev-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
Weitere Informationen zum Zuweisen von Gastrichtlinien für Paket-Repositories finden Sie im Referenzdokument zur PackageRepository-JSON-Darstellung.
Beispiel 3
Installieren Sie
my-package
und entfernen Siebad-package-1
sowiebad-package-2
aus Instanzen mit einem bestimmten Satz von Labels. Fügen Sie auch Repositories für die Paketmanager von apt und yum hinzu.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
- Weitere Informationen zum Zuweisen von Gastrichtlinien für Pakete finden Sie im Referenzdokument zur Package-JSON-Darstellung.
- Weitere Informationen zum Zuweisen von Gastrichtlinien für Paket-Repositories finden Sie im Referenzdokument zur PackageRepository-JSON-Darstellung.
Beispiel 4
Installieren Sie Software von einer in Cloud Storage gehosteten MSI-Datei auf allen Instanzen in
us-east1-b
undus-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"
Weitere Informationen zum Konfigurieren von Schemarichtlinien finden Sie im Referenzdokument zur SoftwareRecipe-JSON-Darstellung.
Beispiel 5
Installieren Sie Software, indem Sie ein Inline-Skript auf allen VM-Instanzen ausführen, die die folgenden Anforderungen erfüllen:
- Betriebssystem: Red Hat Enterprise Linux 7
- Label:
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
Weitere Informationen zum Konfigurieren von Schemarichtlinien finden Sie im Referenzdokument zur SoftwareRecipe-JSON-Darstellung.
Beispiel 6
Installiert die Anwendung auf allen Windows-Instanzen mithilfe eines ausführbaren Installationsprogramms mit dem folgenden Instanznamenspräfix:
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
Weitere Informationen zum Konfigurieren von Schemarichtlinien finden Sie im Referenzdokument zur SoftwareRecipe-JSON-Darstellung.
Gastrichtlinie erstellen
Wenn Sie eine Gastrichtlinie erstellen, muss der Name der Gastrichtlinie die folgenden Benennungsanforderungen erfüllen:
- Er darf nur Kleinbuchstaben, Ziffern und Bindestriche umfassen.
- Er muss mit einem Buchstaben beginnen.
- Ein Name muss mit einer Ziffer oder einem Buchstaben enden.
- Er muss 1 bis 63 Zeichen lang sein.
- Jede Richtlinien-ID muss innerhalb eines Projekts eindeutig sein.
Verwenden Sie eine der folgenden Methoden, um eine Gastrichtlinie zu erstellen.
gcloud
Verwenden Sie den Befehl
os-config guest-policies create
, um eine Gastrichtlinie zu erstellen.gcloud beta compute os-config guest-policies create POLICY_ID \ --file=FILE
Dabei gilt:
POLICY_ID
: der Name der Gastrichtlinie, die Sie erstellen möchten.FILE
: die JSON- oder YAML-Datei, die die Gastrichtlinienspezifikationen enthält. Beispielkonfigurationen finden Sie unter Beispiele für YAML-Dateien für Gastrichtlinien.
REST
Erstellen Sie in der API eine
POST
-Anfrage an die Methodeprojects.guestPolicies.create
.POST https://osconfig.googleapis.com/v1beta/projects/PROJECT_ID/guestPolicies?guestPolicyId=POLICY_ID { For more information, see Guest policy JSON }
Dabei gilt:
PROJECT_ID
: Ihre Projekt-ID.POLICY_ID
: der Name der Gastrichtlinie.
Beispielkonfigurationen finden Sie unter Beispiele für YAML-Dateien für Gastrichtlinien.
Fehlerbehebung
Informationen zur Fehlerbehebung in Gastrichtlinien finden Sie unter Fehlerbehebung einer Gastrichtlinie.
Nächste Schritte
- Weitere Informationen zu Betriebssystem-Gastrichtlinien (Legacy).
- Gastrichtlinien verwalten
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2025-08-08 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-08-08 (UTC)."],[[["This page outlines how to use legacy OS guest policies for maintaining consistent software configurations across virtual machines (VMs)."],["Setting up guest policies involves assigning user permissions, preparing the VM, configuring a guest policy file (JSON or YAML), and then creating the guest policy."],["Guest policies can target specific VMs using criteria such as instance name, label, zone, or operating system, and they support tasks like installing, removing, and updating software packages."],["Creating a guest policy requires a unique policy ID within your project and involves using either the `gcloud` command-line tool or a REST API `POST` request."],["It is important to note that a newer, Generally Available (GA) version of OS policies exists, and this page is specific to the legacy policies, with limited support, and no compliance dashboards, notifications, or alerting."]]],[]] -