Erstellung von VMs verhindern, die die Containermetadaten verwenden

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:

  1. Wechseln Sie in der Cloud de Confiance Console zur Seite Organisationsrichtlinien.

    Zu den Organisationsrichtlinien

  2. 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.

  3. 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.

  4. Zum Konfigurieren der Organisationsrichtlinie für diese Ressource klicken Sie auf Richtlinie verwalten.

  5. Klicken Sie auf der Seite Richtlinie bearbeiten auf Richtlinie des übergeordneten Elements überschreiben.

  6. Wählen Sie Regel hinzufügen aus.

  7. Wählen Sie unter Erzwingung die Option An aus.

  8. 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.

  9. 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.

  10. 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

  1. 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: true
    

    Ersetzen Sie Folgendes:

    • RESOURCE_TYPE durch organizations, folders oder projects.

    • RESOURCE_ID durch Ihre Organisations-ID, Ordner-ID, Projekt-ID oder Projektnummer, je nach Ressourcentyp, der in RESOURCE_TYPE angegeben ist.

    Das folgende Beispiel zeigt eine YAML-Datei, die 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
    

    Optional können Sie die Organisationsrichtlinie von einem Tag abhängig machen. Fügen Sie dazu einen condition-Block zu den rules hinzu. 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.

  2. Führen Sie den org-policies set-policy Befehl mit dem dryRunSpec Flag aus, um die Organisationsrichtlinie im Probelaufmodus festzulegen:

     gcloud org-policies set-policy POLICY_PATH \
       --update-mask=dryRunSpec
    

    Ersetzen Sie POLICY_PATH durch den vollständigen Pfad zur YAML-Datei Ihrer Organisationsrichtlinie.

    Weitere Informationen zu Organisationsrichtlinien im Probelaufmodus finden Sie unter Organisationsrichtlinie im Probelaufmodus erstellen.

  3. Verwenden Sie den policy-intelligence simulate orgpolicy Befehl, 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_PATH
    

    Ersetzen Sie Folgendes:

    • ORGANIZATION_ID durch Ihre Organisations-ID, z. B. 1234567890123. Das Simulieren von Änderungen für mehrere Organisationen wird nicht unterstützt.

    • POLICY_PATH durch 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.

  4. 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-policy und dem Flag spec fest:

    gcloud org-policies set-policy POLICY_PATH \
      --update-mask=spec
    

    Ersetzen Sie POLICY_PATH durch 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_TYPE durch organizations, folders oder projects.

  • RESOURCE_ID durch Ihre Organisations-ID, Ordner-ID, Projekt-ID oder Projektnummer, je nach Ressourcentyp, der in RESOURCE_TYPE angegeben 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:

  1. Rufen Sie in der Cloud de Confiance Console die Seite Log-Explorer auf.

    Zum Log-Explorer

  2. Geben Sie im Bereich Abfrage die folgende Abfrage ein:

    protoPayload.metadata.dryRun="true"
    protoPayload.methodName="CheckOrgPolicy"
    protoPayload.resourceName =~ "/compute.managed.disableVmsWithContainerStartupAgent"
    
  3. Klicken Sie auf Abfrage ausführen.

  4. 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.dryRun ist auf true gesetzt.
    • Die Einschränkung constraints/compute.managed.disableVmsWithContainerStartupAgent ist in den Details zum Verstoß enthalten.
  5. 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.

  6. 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