Löschen von Schlüsselversionen steuern

Google Cloud bietet zwei Einschränkungen für Organisationsrichtlinien, um die Richtlinie zum Löschen von Schlüsselversionen in einer Organisation festzulegen:

  • constraints/cloudkms.minimumDestroyScheduledDuration wird verwendet, um eine Mindestdauer für den zum Löschen vorgemerkten Zeitraum für neue Schlüssel innerhalb der Organisation festzulegen.
  • Mit constraints/cloudkms.disableBeforeDestroy wird verlangt, dass eine Schlüsselversion deaktiviert wurde, bevor sie zum Löschen geplant werden kann.

Hinweise

Bei den Anleitungen 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

Sie benötigen folgende Ressourcen, um die Schritte auf dieser Seite ausführen zu können:

  • Eine Organisation.
  • Optional: Ein Ordner oder eine Projektressource in Ihrer Organisation.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Administrator für Organisationsrichtlinien (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 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 zum Verwalten von Organisationsrichtlinien erforderlich:

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

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

Mindestdauer für das geplante Löschen festlegen

Die Einschränkung Minimale geplante Dauer für das Löschen pro Schlüssel (constraints/cloudkms.minimumDestroyScheduledDuration) wird verwendet, um eine Mindestlänge für die Zeit zum Löschen vorgemerkt für neue Schlüssel festzulegen. Diese Einschränkung überschreibt die Mindestdauer für das geplante Löschen auf Projekt-, Ordner- oder Organisationsebene. Diese Einschränkung verringert das Risiko, dass ein noch benötigter Schlüssel versehentlich gelöscht wird. Sie können für diese Einschränkung einen höheren Wert festlegen, damit Sie genügend Zeit haben, das Löschen von Schlüsseln zu verhindern, bevor dies nicht rückgängig gemacht werden kann.

Verwenden Sie höhere Werte für diese Einschränkung, wenn das Löschen von Schlüsseln schädlicher wäre, z. B. bei Produktionsdaten, die Anforderungen an die Datenaufbewahrung unterliegen. Verwenden Sie niedrigere Werte für diese Einschränkung, wenn das Löschen unerwünschter Schlüssel weniger schädlich wäre, z. B. in Entwicklungs- oder Testumgebungen. Sie können auch niedrigere Werte verwenden, um ein zeitnahes Crypto-Shredding zu ermöglichen. Als Mindestwert kann diese Einschränkung jedoch nicht gewährleisten, dass neue Schlüssel mit einer kurzen Zeit zum Löschen vorgemerkt werden.

So legen Sie eine Mindestdauer für das geplante Löschen 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 Kennzeichnung der Organisationsressource. Die Organisations-ID ist als Dezimalzahl formatiert und darf keine führenden Nullen enthalten.

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

    Die Antwort gibt die aktuelle Organisationsrichtlinie zurück, 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 ist, 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: die Mindestdauer des Status zum Löschen vorgemerkt für Schlüssel in dieser Organisation in Tagen. 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 Übernahme möglich ist, übernommen.

Erzwingen, dass Schlüssel vor dem Löschen deaktiviert werden

Mit der Einschränkung Löschen von Schlüssel auf deaktivierte Schlüssel einschränken (constraints/cloudkms.disableBeforeDestroy) können Sie erzwingen, dass ein Schlüssel deaktiviert wurde, bevor Sie das Löschen des Schlüssels planen. Es wird empfohlen, einen Schlüssel vor dem Löschen zu deaktivieren, da Sie so prüfen können, ob der Schlüssel nicht verwendet wird. Sie können diese Einschränkung mit einer sorgfältigen Richtlinie für Identity and Access Management kombinieren, um einen mehrstufigen Löschvorgang zu erstellen, der die Zusammenarbeit mehrerer Rollen erfordert.

Achten Sie darauf, dass kein Nutzer sowohl die Berechtigungen cloudkms.cryptoKeyVersions.update als auch cloudkms.cryptoKeyVersions.destroy hat, um mit dieser Einschränkung einen mehrstufigen Löschvorgang zu erstellen. Für diesen Anwendungsfall müssen Sie benutzerdefinierte Rollen verwenden.

Gehen Sie so vor, wenn ein Schlüssel deaktiviert sein muss, bevor Sie das Löschen planen können:

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 Kennzeichnung der Organisationsressource. Die Organisations-ID ist als Dezimalzahl formatiert und darf keine führenden Nullen enthalten.

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

    Die Antwort gibt die aktuelle Organisationsrichtlinie zurück, 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 ist, 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. Mit diesem Befehl werden alle Richtlinien überschrieben, die bereits 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.disableBeforeDestroy
      spec:
        rules:
        - enforce: true
      

      Ersetzen Sie ORGANIZATION_ID durch die eindeutige Kennzeichnung 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 Übernahme möglich ist, übernommen.

Nächste Schritte