Löschen von Schlüsselversionen steuern

Google Cloud bietet zwei Einschränkungen für Organisationsrichtlinien, mit denen Sie die Richtlinie zum Vernichten von Schlüsselversionen für eine gesamte Organisation festlegen können:

  • Mit constraints/cloudkms.minimumDestroyScheduledDuration wird eine Mindestdauer für den Status Löschen geplant für neue Schlüssel innerhalb der Organisation festgelegt.
  • Mit constraints/cloudkms.disableBeforeDestroy wird festgelegt, dass eine Schlüsselversion deaktiviert werden muss, bevor sie zum Löschen vorgemerkt werden kann.

Hinweise

In der Anleitung auf dieser Seite wird davon ausgegangen, dass Sie mit der Verwendung von Einschränkungen vertraut sind und die erforderlichen Ressourcen und Rollen haben.

Erforderliche Ressourcen

Bevor Sie die Schritte auf dieser Seite ausführen können, benötigen Sie die folgenden Ressourcen:

  • Eine Organisation.
  • Optional: Ordner- oder Projektressource innerhalb Ihrer Organisation.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Organization policy administrator (roles/orgpolicy.policyAdmin) für die Organisation zu gewähren, um die Berechtigungen zu erhalten, die Sie zum Verwalten von Organisationsrichtlinien benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierte Rolle enthält die Berechtigungen, die zum Verwalten von Organisationsrichtlinien erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind für die Verwaltung von Organisationsrichtlinien erforderlich:

  • orgpolicy.constraints.list
  • orgpolicy.policies.create
  • orgpolicy.policies.delete
  • orgpolicy.policies.list
  • orgpolicy.policies.update
  • orgpolicy.policy.get
  • orgpolicy.policy.set

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

Mindestdauer für Geplant für Löschdauer

Mit der Einschränkung Mindestwert für die geplante Dauer für das Löschen pro Schlüssel (constraints/cloudkms.minimumDestroyScheduledDuration) wird eine Mindestlänge für den Status Löschen geplant für neue Schlüssel festgelegt. Mit dieser Einschränkung wird die Mindestdauer für zur Vernichtung geplante Elemente auf Projekt-, Ordner- oder Organisationsebene überschrieben. Dadurch wird das Risiko verringert, dass ein noch benötigter Schlüssel versehentlich gelöscht wird. Sie können diese Einschränkung auf einen höheren Wert festlegen, um sicherzustellen, dass Sie Zeit haben, die Schlüsselvernichtung zu verhindern, bevor sie irreversibel ist.

Verwenden Sie höhere Werte für diese Einschränkung, wenn das unbeabsichtigte Löschen von Schlüsseln schädlicher wäre, z. B. bei Produktionsdaten, die Aufbewahrungsanforderungen unterliegen. Verwenden Sie niedrigere Werte für diese Einschränkung, wenn eine unbeabsichtigte Schlüsselvernichtung weniger schädlich wäre, z. B. in Entwicklungs- oder Testumgebungen. Sie können auch niedrigere Werte verwenden, um ein zeitnahes Krypto-Schreddern zu ermöglichen. Da es sich jedoch um einen Mindestwert handelt, kann diese Einschränkung nicht dafür sorgen, dass neue Schlüssel mit einer kurzen geplanten Dauer für das Löschen erstellt werden.

So legen Sie eine Mindestdauer für die Zerstörung fest:

  1. Rufen Sie mit dem Befehl describe die aktuelle Richtlinie für die Organisationsressource ab. Dieser Befehl gibt die Richtlinie zurück, die direkt auf diese Ressource angewendet wird:

    gcloud org-policies describe \
      constraints/cloudkms.minimumDestroyScheduledDuration \
      --organization=ORGANIZATION_ID
    

    Ersetzen Sie ORGANIZATION_ID durch die eindeutige Kennung der Organisationsressource. Die Organisations-ID ist als Dezimalzahl formatiert und darf keine führenden Nullen enthalten.

    Sie können die Organisationsrichtlinie für einen Ordner oder ein Projekt auch mit den Flags --folder oder --project und der entsprechenden Ordner-ID bzw. Projekt-ID aufrufen.

    In der Antwort wird die aktuelle Organisationsrichtlinie zurückgegeben, sofern vorhanden. Die Ausgabe sieht in etwa so aus:

    name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration
    spec:
      etag: COTP+KYGELiCmsoB
      inheritFromParent: true
      rules:
      - values:
          allowedValues:
          - in:7d
      updateTime: '2023-08-17T14:00:04.424051Z'
    

    Wenn keine Richtlinie festgelegt wurde, gibt der Befehl describe den Fehler NOT_FOUND zurück:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. Legen Sie die Richtlinie für die Organisation mit dem Befehl set-policy fest. Dieser Befehl überschreibt alle Richtlinien, die derzeit an die Ressource angehängt sind.

    1. Erstellen Sie die temporäre Datei /tmp/policy.yaml zum Speichern der Richtlinie:

      name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration
      spec:
        rules:
        - values:
            allowedValues:
            - in:MINIMUM_DURATION
      

      Ersetzen Sie Folgendes:

      • ORGANIZATION_ID: die numerische ID Ihrer Organisation.
      • MINIMUM_DURATION: Mindestdauer in Tagen für den Status Zum Löschen vorgemerkt für Schlüssel in dieser Organisation. Muss einer der folgenden Werte sein: 7d, 15d, 30d, 60d, 90d oder 120d.
    2. Führen Sie den Befehl set-policy aus:

      gcloud org-policies set-policy /tmp/policy.yaml
      
  3. Rufen Sie die aktuell geltende Richtlinie mit describe --effective auf: Durch diesen Befehl wird die Organisationsrichtlinie zurückgegeben, wie sie zu diesem Zeitpunkt in der Ressourcenhierarchie einschließlich Übernahme evaluiert wird.

    gcloud org-policies describe \
      constraints/cloudkms.minimumDestroyScheduledDuration --effective \
      --organization=ORGANIZATION_ID
    

    Die Ausgabe sieht in etwa so aus:

    name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration
    spec:
      rules:
        - values:
            allowedValues:
            - 30d
            - 15d
            - 90d
            - 60d
            - 7d
            - 120d
    

    Da diese Organisationsrichtlinie auf Organisationsebene festgelegt wurde, wird sie von allen untergeordneten Ressourcen, für die eine Richtlinienübernahme möglich ist, übernommen.

Schlüssel müssen vor der Vernichtung deaktiviert werden

Mit der Einschränkung Löschen von Schlüsseln auf deaktivierte Schlüsselversionen beschränken (constraints/cloudkms.disableBeforeDestroy) können Sie festlegen, dass ein Schlüssel deaktiviert sein muss, bevor Sie ihn zum Löschen vormerken können. Es wird empfohlen, einen Schlüssel vor dem Entfernen zu deaktivieren, da Sie so prüfen können, ob er nicht verwendet wird. Sie können diese Einschränkung mit einer sorgfältigen Identitäts- und Zugriffsverwaltungsrichtlinie kombinieren, um einen mehrstufigen Vernichtungsprozess zu erstellen, der die Zusammenarbeit mehrerer Rollen erfordert.

Wenn Sie diese Einschränkung verwenden möchten, um einen mehrstufigen Vernichtungsprozess zu erstellen, darf kein Nutzer sowohl die Berechtigung cloudkms.cryptoKeyVersions.update als auch die Berechtigung cloudkms.cryptoKeyVersions.destroy haben. Für diesen Anwendungsfall müssen Sie benutzerdefinierte Rollen verwenden.

Wenn Sie festlegen möchten, dass ein Schlüssel den Status deaktiviert haben muss, bevor Sie ihn zum Löschen vormerken können, gehen Sie so vor:

gcloud

  1. Rufen Sie mit dem Befehl describe die aktuelle Richtlinie für die Organisationsressource ab. Dieser Befehl gibt die Richtlinie zurück, die direkt auf diese Ressource angewendet wird:

    gcloud org-policies describe \
      constraints/cloudkms.disableBeforeDestroy \
      --organization=ORGANIZATION_ID
    

    Ersetzen Sie ORGANIZATION_ID durch die eindeutige Kennung der Organisationsressource. Die Organisations-ID ist als Dezimalzahl formatiert und darf keine führenden Nullen enthalten.

    Sie können die Organisationsrichtlinie für einen Ordner oder ein Projekt auch mit den Flags --folder oder --project und der entsprechenden Ordner-ID bzw. Projekt-ID aufrufen.

    In der Antwort wird die aktuelle Organisationsrichtlinie zurückgegeben, sofern vorhanden. Die entsprechende Ausgabe sieht etwa so aus:

    name: organizations/ORGANIZATION_ID/policies/cloudkms.disableBeforeDestroy
    spec:
      etag: CPvY+KYGENDwgxA=
      rules:
      - enforce: true
      updateTime: '2023-08-17T14:19:39.033618Z'
    

    Wenn keine Richtlinie festgelegt wurde, gibt der Befehl describe den Fehler NOT_FOUND zurück:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    
  2. Legen Sie die Richtlinie für die Organisation mit dem Befehl set-policy fest. Dieser Befehl überschreibt alle Richtlinien, die bereits mit der Ressource verknüpft sind.

    1. Erstellen Sie die temporäre Datei /tmp/policy.yaml zum Speichern der Richtlinie:

      name: organizations/ORGANIZATION_ID/policies/cloudkms.disableBeforeDestroy
      spec:
        rules:
        - enforce: true
      

      Ersetzen Sie ORGANIZATION_ID durch die eindeutige Kennung der Organisationsressource.

    2. Führen Sie den Befehl set-policy aus:

      gcloud org-policies set-policy /tmp/policy.yaml
      
  3. Rufen Sie die aktuell geltende Richtlinie mit describe --effective auf: Durch diesen Befehl wird die Organisationsrichtlinie zurückgegeben, wie sie zu diesem Zeitpunkt in der Ressourcenhierarchie einschließlich Übernahme evaluiert wird.

    gcloud org-policies describe \
      constraints/cloudkms.disableBeforeDestroy --effective \
      --organization=ORGANIZATION_ID
    

    Die Ausgabe sieht in etwa so aus:

    name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration
    spec:
      rules:
      - enforce: true
    

    Da diese Organisationsrichtlinie auf Organisationsebene festgelegt wurde, wird sie von allen untergeordneten Ressourcen, für die eine Richtlinienübernahme möglich ist, übernommen.

Nächste Schritte