Verwaltete Einschränkungen

Verwaltete Einschränkungen sind vordefinierte Organisationsrichtlinien, die auf einer modernen Plattform basieren und eine zentrale, programmatische Steuerung Ihrer Compute Engine-Ressourcen ermöglichen. Sie bieten integrierte Unterstützung für Tools für die sichere Einführung wie den Policy Simulator und den Probelauf.

Verwaltete Einschränkungen sind am Präfix compute.managed.* zu erkennen und dienen als direkter Ersatz für die alten compute.*-Einschränkungen.

Vorteile

  • Sichere Einführung und Monitoring: Implementieren Sie Richtlinien mit vollständigen Tools, schnellerer Änderungskontrolle und schrittweiser Bereitstellung mithilfe von Simulations- und Probelauffunktionen.
  • Einheitliches Logging: Erzwingt Einheitlichkeit bei Logging und Fehlermeldungen, was das zentrale Monitoring vereinfacht und Audits optimiert.

Übernahme von Richtlinien

Organisationsrichtlinien, die Sie für eine Ressource festlegen, werden von den untergeordneten Elementen dieser Ressource in der Ressourcenhierarchie übernommen. Wenn Sie beispielsweise eine Richtlinie für einen Ordner erzwingen, erzwingt Cloud de Confiance by S3NS die Richtlinie für alle Projekte in diesem Ordner.

Preise

Der Organisationsrichtliniendienst, einschließlich vordefinierter (Legacy-), verwalteter und benutzerdefinierter Organisationsrichtlinien, wird kostenlos angeboten.

Hinweis

  • Sie müssen Ihre Organisations-ID kennen.
  • Installieren Sie die gcloud CLI, falls noch nicht geschehen, und initialisieren Sie sie mit dem Befehl gcloud init.
  • Legen Sie ein Standardprojekt für Ihre Tests fest.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Verwalten von Organisationsrichtlinien mit verwalteten Einschränkungen benötigen:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Verwalten von Organisationsrichtlinien mit verwalteten Einschränkungen erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind für die Verwaltung von Organisationsrichtlinien mit verwalteten Einschränkungen erforderlich:

  • orgpolicy.constraints.list
  • orgpolicy.policies.create
  • orgpolicy.policies.delete
  • orgpolicy.policies.list
  • orgpolicy.policies.update
  • orgpolicy.policy.get
  • orgpolicy.policy.set
  • Zum Testen der Einschränkungen benötigen Sie folgende Rollen:
    • compute.instances.create für das Projekt
    • Zum Erstellen der VM mit einem benutzerdefinierten Image: compute.images.useReadOnly für das Image
    • Zum Erstellen der VM mit einem Snapshot: compute.snapshots.useReadOnly für den Snapshot
    • Zum Erstellen der VM mit einer Instanzvorlage: compute.instanceTemplates.useReadOnly für die Instanzvorlage
    • Zum Zuweisen eines Legacy-Netzwerks zur VM: compute.networks.use für das Projekt
    • Zum Festlegen einer statische IP-Adresse für die VM: compute.addresses.use für das Projekt
    • Zum Zuweisen einer externen IP-Adresse zur VM bei Verwendung eines Legacy-Netzwerks: compute.networks.useExternalIp für das Projekt
    • Zum Angeben eines Subnetzes für die VM: compute.subnetworks.use für das Projekt oder für das ausgewählte Subnetz
    • Zum Zuweisen einer externen IP-Adresse zur VM, wenn Sie ein VPC-Netzwerk verwenden: compute.subnetworks.useExternalIp für das Projekt oder für das ausgewählte Subnetz
    • Zum Festlegen von Metadaten der VM-Instanz für die VM: compute.instances.setMetadata für das Projekt
    • Zum Festlegen von Tags für die VM: compute.instances.setTags für die VM
    • Zum Festlegen von Labels für die VM: compute.instances.setLabels für die VM
    • Zum Festlegen eines Dienstkontos, das die VM verwenden soll: compute.instances.setServiceAccount für die VM
    • Zum Erstellen eines neuen Laufwerks für die VM: compute.disks.create für das Projekt
    • Zum Anhängen eines vorhandenen Laufwerks im Lese- oder Lese-/Schreibmodus: compute.disks.use für das Laufwerk
    • Um ein vorhandenes Laufwerk im Lesemodus anzuhängen: compute.disks.useReadOnly für das Laufwerk

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Verfügbare verwaltete Einschränkungen

Die folgenden verwalteten Einschränkungen für Organisationsrichtlinien sind für Compute Engine verfügbar:

Hierarchische Metadatenauswertung

Verwaltete Einschränkungen, die auf vordefinierten Metadatenschlüsseln wie OS Login oder Serial Port Access basieren, unterstützen die hierarchische Auswertung. Wenn Compute Engine diese Einschränkungen auswertet, werden Metadatenwerte geprüft, die auf VM-Instanz-, Projekt- oder Zonenebene festgelegt sind.

Wenn Sie Metadatenwerte auf Projekt- oder Zonenebene festlegen, können Sie VM-Instanzen im großen Maßstab verwalten. Die Erzwingung von Einschränkungen erfolgt jedoch nur bei API-Aufrufen zum Erstellen oder Aktualisieren von VM-Instanzen. Änderungen an Projekt- oder zonenbezogenen Metadaten wirken sich daher nur dann auf die Einhaltung von Einschränkungen einer VM-Instanz aus, wenn diese Instanz erstellt oder aktualisiert wird.

Metadatenbasierte Einschränkungen und Ebenen

Einschränkung Metadatenschlüssel Hierarchieebenen für Metadaten
compute.managed.disableSerialPortAccess serial-port-enable Projekt, zonal, Instanz
compute.managed.requireOsLogin enable-oslogin Projekt, zonal, Instanz
compute.managed.disableGuestAttributesAccess enable-guest-attributes Projekt, zonal, Instanz
compute.managed.requireOsConfig enable-osconfig Projekt, zonal, Instanz
compute.managed.disallowGlobalDns VmDnsSetting Projekt, Instanz

Sichere Einführung: Der Richtlinienlebenszyklus

Um Dienstunterbrechungen zu vermeiden, wenn Sie nach und nach neue Einschränkungen implementieren, empfiehlt Google, verwaltete Einschränkungen so zu implementieren:

Analyse mit Policy Simulator

Bevor Sie eine Richtlinie erzwingen, können Sie mit dem Policy Simulator sehen, welche vorhandenen Ressourcen gegen die Richtlinie verstoßen. Gehen Sie so vor:

  1. Rufen Sie in der Cloud de Confiance Console die Seite Organisationsrichtlinien auf.

    Zu den Organisationsrichtlinien

  2. Suchen Sie in der Filterleiste nach der Einschränkung und klicken Sie dann auf den Namen der Einschränkung, um die Seite Richtliniendetails aufzurufen.

  3. Klicken Sie auf Änderungen testen, um einen Simulationsbericht zu erstellen.

  4. Es kann einige Stunden dauern, bis Änderungen an hierarchischen Metadaten im Simulationsbericht für Einschränkungen bei VM-Metadateneinstellungen angezeigt werden.

  5. Sehen Sie sich den Bericht an, um nicht konforme Ressourcen neu zu konfigurieren oder Ausnahmen zu beantragen.

Mit Probelauf validieren

Im Probelaufmodus werden Verstöße in Cloud Logging protokolliert, es werden jedoch keine Einschränkungen erzwungen.

Verwenden Sie den Befehl gcloud org-policies set-policy, um eine Einschränkung zu testen:

  1. Erstellen Sie eine YAML-Datei für die Richtlinie (z. B. dry-run-policy.yaml) mit einem dryRunSpec:

    name: projects/PROJECT_ID/policies/compute.managed.requireOsLogin
    dryRunSpec:
      rules:
      - enforce: true
    

    Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID.

  2. Wenden Sie die Richtlinie an:

    gcloud org-policies set-policy dry-run-policy.yaml
    

Vollständige Durchsetzung

Nachdem Sie Ihre Richtlinie simuliert und getestet haben, können Sie sie für eine Ressource erzwingen. Es kann bis zu 15 Minuten dauern, bis Richtlinienänderungen in allenCloud de Confiance by S3NS -Systemen wirksam werden.

Erzwingung von Einschränkungen testen

Nachdem Sie eine Richtlinie festgelegt haben, können Sie die Durchsetzung mit der gcloud CLI prüfen. So testen Sie beispielsweise die Einschränkung compute.managed.requireOsLogin:

  1. Vorhandene Richtlinien auflisten, um die Konfiguration zu bestätigen:

    gcloud org-policies list --project=PROJECT_ID
    
  2. Erzwingungsrichtlinie mit einer YAML-Datei anwenden:

    gcloud org-policies set-policy enforce_managed_constraint.yaml
    
  3. Prüfen Sie die Erzwingung durch Aufrufen einer Mutations-API. Der Versuch, eine VM-Instanz mit nicht konformen Metadaten zu erstellen, sollte fehlschlagen:

    gcloud compute instances create VM_NAME \
        --machine-type=MACHINE_TYPE \
        --image-family=IMAGE_FAMILY \
        --image-project=IMAGE_PROJECT \
        --metadata=enable-oslogin=false
    

    Ersetzen Sie Folgendes:

    • VM_NAME ist der Name für die neue VM-Instanz.
    • MACHINE_TYPE: Ein gültiger Maschinentyp, z. B. e2-micro.
    • IMAGE_FAMILY: Eine gültige Image-Familie, z. B. debian-11.
    • IMAGE_PROJECT: Das Projekt der Image-Familie, z. B. debian-cloud.
  4. Lesen Sie die Fehlermeldung. Sie sollten eine Ablehnung mit der spezifischen Einschränkung sehen, die verletzt wurde: ERROR: (gcloud.compute.instances.create) Could not fetch resource: - Operation denied by org policy: [constraints/compute.managed.requireOsLogin]

Bedingte Ausnahmen mit Tags

Mit Tags können Sie Ausnahmen für bestimmte Ressourcen basierend auf geschäftlichen Anforderungen gewähren. In diesem Beispiel verwenden wir ein Tag namens osLoginOptional, um Ressourcen zu identifizieren, die von der OS Login-Anforderung ausgenommen sind. Wenn Sie dieses Tag mit dem Wert true an eine Ressource binden, erlaubt die Organisationsrichtlinie, dass diese bestimmte Ressource ohne aktiviertes OS Login vorhanden ist, auch wenn die Richtlinie für den Rest Ihrer Umgebung weiterhin streng durchgesetzt wird.

So gewähren Sie eine Ausnahme mithilfe von Tags:

  1. Tag erstellen: Verwenden Sie die gcloud CLI, um einen Tag-Schlüssel und einen Tag-Wert zu erstellen.

    1. Erstellen Sie den Tag-Schlüssel:

      gcloud resource-manager tags keys create osLoginOptional \
          --parent=organizations/ORGANIZATION_ID
      
    2. Erstellen Sie den Tag-Wert:

      gcloud resource-manager tags values create true \
          --parent=organizations/ORGANIZATION_ID/tagKeys/osLoginOptional
      

    Ersetzen Sie ORGANIZATION_ID durch Ihre Organisations-ID.

  2. Binden Sie das Tag an eine Ressource. Wenn Sie ein Projekt von der Einschränkung compute.managed.requireOsLogin ausnehmen möchten, binden Sie das Tag osLoginOptional=true mit dem gcloud resource-manager tags bindings create-Befehl an das Projekt:

    gcloud resource-manager tags bindings create \
        --tag-value=ORGANIZATION_ID/osLoginOptional/true \
        --parent=//cloudresourcemanager.googleapis.com/projects/PROJECT_ID \
        --location=global
    

    Ersetzen Sie ORGANIZATION_ID durch Ihre Organisations-ID und PROJECT_ID durch die ID des Projekts, das Sie ausnehmen möchten.

    Informationen zum Binden von Tags an andere Ressourcen finden Sie unter Tag an eine Ressource binden.

  3. Richtlinie aktualisieren: Erstellen oder aktualisieren Sie die YAML-Datei für Ihre Richtlinie (z. B. policy.yaml), um die bedingte Regel einzufügen.

    name: projects/PROJECT_ID/policies/compute.managed.requireOsLogin
    spec:
      rules:
      - condition:
          expression: "resource.matchTag('ORGANIZATION_ID/osLoginOptional', 'true')"
        enforce: false
      - enforce: true
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Ihre Projekt-ID.
    • ORGANIZATION_ID: Ihre Organisations-ID.
  4. Richtlinie anwenden: Verwenden Sie den folgenden gcloud CLI-Befehl, um die Konfiguration zu aktivieren:

    gcloud org-policies set-policy policy.yaml
    

Migration von alten Einschränkungen

Beachten Sie bei der Migration, dass verwaltete Beschränkungen das Verhalten von Legacy-Richtlinien verbessern, aber nicht genau replizieren. Verwaltete Einschränkungen bieten eine höhere Vorhersagbarkeit, da nur bei API-Anfragen, mit denen Ressourcen erstellt oder geändert werden, nach Verstößen gesucht wird. Wenn eine Anfrage gegen eine Einschränkung verstößt, schlägt der API-Aufruf mit einem eindeutigen Fehler fehl. Das unterscheidet sich von den alten Richtlinien, die in verschiedenen Phasen eines Vorgangs erzwungen oder als Ressourcenattribute verwendet werden konnten, was das Erzwingungsverhalten weniger vorhersehbar machte.

Wenn Sie von einer alten compute.*-Einschränkung zu einer modernen compute.managed.*-Einschränkung wechseln, gehen Sie so vor, um eine unbeabsichtigte Verschärfung der Einschränkungen zu vermeiden:

  1. Entdecken: Identifizieren Sie die neue Alternative zur verwalteten Beschränkung.
  2. Analysieren und validieren: Verwenden Sie den Policy Simulator und den Probelauf wie oben beschrieben.
  3. Verwaltete Einschränkung erzwingen: Wenden Sie die neue verwaltete Einschränkung zusammen mit der alten an.
  4. So löschen Sie Legacy-Richtlinien:
    • Rufen Sie in der Cloud de Confiance -Konsole das Asset Inventory auf und filtern Sie nach orgpolicy.Policy und dem Namen der alten Einschränkung, um alle Richtlinien zu ermitteln, in denen die alte Einschränkung verwendet wird.
    • Löschen Sie alle Richtlinien, in denen die alte Einschränkung verwendet wird. Wenn Sie eine Richtlinie löschen, wird sie für diese Einschränkung auf das von Google verwaltete Standardverhalten zurückgesetzt.

Nächste Schritte