Damit Ressourcen in Ihrer Organisation nicht den veralteten Container-Start-Agent (konlet) und die zugehörigen gce-container-declaration-Metadaten verwenden, empfiehlt Google, eine Organisationsrichtlinie zu erzwingen. Die verwaltete Einschränkung compute.managed.disableVmsWithContainerStartupAgent, wenn erzwungen, deaktiviert die Erstellung von Ressourcen, die die veralteten Metadaten verwenden.
In diesem Dokument wird Folgendes beschrieben:
- Erzwingen einer Organisationsrichtlinie zum Deaktivieren der Erstellung von Compute Engine-Instanzen, die den Container-Start-Agent verwenden.
- Auswirkungen der Organisationsrichtlinie überwachen, indem Sie die Richtlinie im Probelaufmodus erzwingen.
- Projekte identifizieren, die versuchen, den veralteten Container-Start-Agent mit dem Log-Explorer zu verwenden.
Organisationsrichtlinie erzwingen, um die Erstellung von VMs zu deaktivieren, die die Container-Metadaten verwenden
Um die Erstellung von Ressourcen zu verhindern, die den veralteten Container-Start-Agent verwenden,
empfiehlt Google, eine Organisationsrichtlinie zu erzwingen.
Die Einschränkung constraints/compute.managed.disableVmsWithContainerStartupAgent verhindert, dass neue Ressourcen mit dem Metadatenschlüssel gce-container-declaration erstellt werden. Diese Einschränkung wirkt sich nicht auf vorhandene Instanzen oder Instanzvorlagen aus.
Sie können diese Einschränkung mit der Cloud de Confiance Console, der Google Cloud CLI oder der Compute Engine API erzwingen.
Console
So legen Sie die Organisationsrichtlinie mit der Console fest:
Wechseln Sie in der Cloud de Confiance Console zur Seite Organisationsrichtlinien.
Wählen Sie in der Projektauswahl das Projekt, den Ordner oder die Organisation aus, für die Sie Organisationsrichtlinien bearbeiten möchten.
Auf der Seite Organisationsrichtlinien wird eine Liste der verfügbaren Einschränkungen für Organisationsrichtlinien angezeigt.
Wählen Sie in der Liste der Einschränkungen die Einschränkung Erstellung von Compute Engine-Instanzen deaktivieren, die den veralteten Container-Start-Agent (konlet) verwenden aus. Auf der Seite Richtliniendetails wird die Einschränkung beschrieben und es werden Informationen zur Anwendung der Einschränkung bereitgestellt.
Zum Konfigurieren der Organisationsrichtlinie für diese Ressource klicken Sie auf Richtlinie verwalten.
Klicken Sie auf der Seite Richtlinie bearbeiten auf Richtlinie des übergeordneten Elements überschreiben.
Wählen Sie Regel hinzufügen aus.
Wählen Sie unter Erzwingung die Option An aus.
Optional können Sie eine Vorschau der Auswirkungen der Änderung an der Organisationsrichtlinie ansehen, bevor sie erzwungen wird. Klicken Sie dazu auf Änderungen testen. Weitere Informationen zum Testen von Änderungen an Organisationsrichtlinien finden Sie unter Änderungen an Organisationsrichtlinien mit dem Policy Simulator testen.
Klicken Sie auf Probelaufrichtlinie festlegen, um die Organisationsrichtlinie im Probelaufmodus zu erzwingen. Weitere Informationen finden Sie unter Organisationsrichtlinie im Probelaufmodus aus einer Live-Richtlinie erstellen.
Nachdem Sie geprüft haben, ob die Organisationsrichtlinie im Probelaufmodus wie gewünscht funktioniert, legen Sie die Live-Richtlinie fest, indem Sie auf Richtlinie festlegen klicken.
gcloud
Erstellen Sie eine YAML-Datei, um die Organisationsrichtlinie zu definieren.
name: RESOURCE_TYPE/RESOURCE_ID/policies/compute.managed.disableVmsWithContainerStartupAgent spec: rules: - enforce: true dryRunSpec: rules: - enforce: trueErsetzen Sie Folgendes:
RESOURCE_TYPEdurchorganizations,foldersoderprojects.RESOURCE_IDdurch Ihre Organisations-ID, Ordner-ID, Projekt-ID oder Projektnummer, je nach Ressourcentyp, der inRESOURCE_TYPEangegeben ist.
Das folgende Beispiel zeigt eine YAML-Datei, die die Organisationsrichtlinie für das Projekt mit der ID
123456erzwingt:name: projects/123456/policies/compute.managed.disableVmsWithContainerStartupAgent spec: rules: - enforce: true dryRunSpec: rules: - enforce: trueOptional können Sie die Organisationsrichtlinie von einem Tag abhängig machen. Fügen Sie dazu einen
condition-Block zu denruleshinzu. Wenn Sie einer Organisationsrichtlinie eine bedingte Regel hinzufügen, müssen Sie mindestens eine bedingungsfreie Regel hinzufügen oder die Richtlinie kann nicht gespeichert werden. Weitere Informationen finden Sie unter Organisationsrichtlinie mit Tags festlegen.Führen Sie den
org-policies set-policyBefehl mit demdryRunSpecFlag aus, um die Organisationsrichtlinie im Probelaufmodus festzulegen:gcloud org-policies set-policy POLICY_PATH \ --update-mask=dryRunSpecErsetzen Sie
POLICY_PATHdurch den vollständigen Pfad zur YAML-Datei Ihrer Organisationsrichtlinie.Weitere Informationen zu Organisationsrichtlinien im Probelaufmodus finden Sie unter Organisationsrichtlinie im Probelaufmodus erstellen.
Verwenden Sie den
policy-intelligence simulate orgpolicyBefehl, um eine Vorschau der Auswirkungen der Änderung an der Organisationsrichtlinie anzusehen, bevor sie erzwungen wird:gcloud policy-intelligence simulate orgpolicy \ --organization=ORGANIZATION_ID \ --policies=POLICY_PATHErsetzen Sie Folgendes:
ORGANIZATION_IDdurch Ihre Organisations-ID, z. B.1234567890123. Das Simulieren von Änderungen für mehrere Organisationen wird nicht unterstützt.POLICY_PATHdurch den vollständigen Pfad zur YAML-Datei Ihrer Organisationsrichtlinie.
Weitere Informationen zum Testen von Änderungen an Organisationsrichtlinien finden Sie unter Änderungen an Organisationsrichtlinien mit dem Richtliniensimulator testen.
Nachdem Sie geprüft haben, ob die Organisationsrichtlinie im Probelaufmodus wie gewünscht funktioniert, legen Sie die Live-Richtlinie mit dem Befehl
org-policies set-policyund dem Flagspecfest:gcloud org-policies set-policy POLICY_PATH \ --update-mask=specErsetzen Sie
POLICY_PATHdurch den vollständigen Pfad zur YAML-Datei Ihrer Organisationsrichtlinie.
REST
Verwenden Sie die
organizations.policies.create
Methode, um die Organisationsrichtlinie festzulegen.
POST https://orgpolicy.googleapis.com/v2/{parent=organizations/ORGANIZATION_ID}/policies
Der JSON-Anfragetext enthält die Definition einer Organisationsrichtlinie.
Wenn diese Einschränkung keine Parameter unterstützt, lassen Sie den Block parameters unter rules weg.
{
"name": "RESOURCE_TYPE/RESOURCE_ID/policies/compute.managed.disableVmsWithContainerStartupAgent",
"spec": {
"rules": [
{
"enforce": true,
}
]
},
"dryRunSpec": {
"rules": [
{
"enforce": true,
}
]
}
}
Ersetzen Sie Folgendes:
RESOURCE_TYPEdurchorganizations,foldersoderprojects.RESOURCE_IDdurch Ihre Organisations-ID, Ordner-ID, Projekt-ID oder Projektnummer, je nach Ressourcentyp, der inRESOURCE_TYPEangegeben ist.
Das folgende Beispiel zeigt einen Anfragetext, der die Organisationsrichtlinie für das Projekt mit der ID 123456 erzwingt:
{
"name": "projects/123456/policies/compute.managed.disableVmsWithContainerStartupAgent",
"spec": {
"rules": [
{
"enforce": true,
}
]
},
"dryRunSpec": {
"rules": [
{
"enforce": true,
}
]
}
}
```
Optionally, to make the organization policy conditional on a tag, add a
`condition` block to the `rules`. If you add a conditional rule to an
organization policy, you must add at least one unconditional rule or the
policy cannot be saved. For more details, see
[Setting an organization policy with tags](/resource-manager/docs/organization-policy/tags-organization-policy).
For more information about dry-run organization policies, see
[Create an organization policy in dry-run mode](/resource-manager/docs/organization-policy/dry-run-policy).
Nutzung der veralteten Metadaten überwachen, indem Sie die Richtlinie im Probelaufmodus erzwingen
Anstatt die Richtlinie direkt zu erzwingen, wodurch die Erstellung von Instanzen blockiert wird, die die Metadaten der Containerdeklaration verwenden, können Sie die Richtlinie im Probelaufmodus anwenden. Mit dieser Einstellung können Sie alle Aktionen überwachen und protokollieren, die von der Richtlinie blockiert werden können, ohne die Vorgänge tatsächlich zu beeinträchtigen. Weitere Informationen finden Sie unter Organisationsrichtlinie im Probelauf modus erstellen.
Wenn eine Aktion die Probelaufrichtlinie auslöst (z. B. wenn Sie versuchen, eine Instanz mit dem Metadatenschlüssel gce-container-declaration zu
erstellen), wird ein Log
eintrag in Cloud-Audit-Logs generiert.
So identifizieren Sie Projekte, die versuchen, den veralteten Container-Start-Agent zu verwenden:
Rufen Sie in der Cloud de Confiance Console die Seite Log-Explorer auf.
Geben Sie im Bereich Abfrage die folgende Abfrage ein:
protoPayload.metadata.dryRun="true" protoPayload.methodName="CheckOrgPolicy" protoPayload.resourceName =~ "/compute.managed.disableVmsWithContainerStartupAgent"Klicken Sie auf Abfrage ausführen.
Sehen Sie sich die Logeinträge an, um die Projekte zu identifizieren, die versuchen, den veralteten Container-Start-Agent zu verwenden. Die Logs für Probelaufverstöße haben die folgenden Merkmale:
- Sie beziehen sich auf
orgpolicy.googleapis.com. - Das Feld
protoPayload.metadata.dryRunist auftruegesetzt. - Die Einschränkung
constraints/compute.managed.disableVmsWithContainerStartupAgentist in den Details zum Verstoß enthalten.
- Sie beziehen sich auf
Sehen Sie sich die Informationen in den Audit-Logs an, um zu erfahren, wo und warum der veraltete Container-Start-Agent noch verwendet wird. Diese Informationen können Ihnen helfen, diese Arbeitslasten zu unterstützten Alternativen zu migrieren.
Nachdem Sie geprüft haben, ob die Organisationsrichtlinie im Probelaufmodus wie gewünscht funktioniert, erzwingen Sie die Richtlinie, indem Sie den Erzwingungsstatus vom Probelaufmodus in den Live-Modus ändern.
Weitere Informationen zur Verwendung des Log-Explorers finden Sie unter Logs mit dem Log-Explorer ansehen.
Nächste Schritte
- Erfahren Sie, wie Sie Container migrieren, die während der VM-Erstellung auf VMs bereitgestellt wurden.