Schlüssel erstellen und löschen

Das Key Management System (KMS) unterstützt verschiedene Schlüsseltypen für kryptografische Vorgänge wie Verschlüsselung, Entschlüsselung, Signierung und Überprüfung. Weitere Informationen zu den verfügbaren Schlüsseltypen und Algorithmen finden Sie unter Unterstützte Schlüssel.

Diese Seite richtet sich an Zielgruppen in der Gruppe der Anwendungsoperatoren, z. B. DevOps-Teams, die Schlüsselverwaltungsvorgänge in Google Distributed Cloud (GDC) mit Air Gap ausführen. Weitere Informationen finden Sie unter Dokumentation zu Zielgruppen für GDC mit Air Gap.

Hinweis

Wenn Sie Schlüssel erstellen und verwalten möchten, fordern Sie die erforderlichen Berechtigungen an und bereiten Sie Ihre Umgebung vor.

IAM-Rollen anfordern

Wenden Sie sich an Ihren IAM-Administrator der Organisation, um sich die folgenden Rollen in Ihrem Projektnamespace zu gewähren:

  • KMS-Ersteller (kms-creator): Ressourcen vom Typ AEADKey und SigningKey in einem Projekt ansehen und erstellen.
  • KMS-Administrator (kms-admin): Schlüssel in einem Projekt ansehen, erstellen und löschen.

Umgebung vorbereiten

  1. Installieren und initialisieren Sie die gdcloud CLI, falls Sie noch nicht geschehen.

  2. Authentifizieren Sie sich mit der gdcloud CLI bei GDC. Für diesen Vorgang ist das Zertifikat der Zertifizierungsstelle (Certificate Authority, CA) für die Konsole Ihrer Organisation erforderlich:

    1. Laden Sie das CA-Zertifikat herunter:

      echo -n | openssl s_client -showcerts -connect CONSOLE_URL:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > CA_CERT_PATH
      

      Ersetzen Sie Folgendes:

      • CONSOLE_URL: die Konsolen-URL Ihrer Organisation, z. B. console.org-1.zone1.google.gdch.test
      • CA_CERT_PATH: der vollständige Pfad, unter dem Sie die CA-Zertifikatsdatei speichern möchten, z. B. /tmp/my-org-ca.crt
    2. Melden Sie sich mit dem heruntergeladenen CA-Zertifikat an:

      gdcloud auth login --login-config-cert=CA_CERT_PATH
      
  3. Rufen Sie eine kubeconfig-Datei ab mit der gdcloud CLI für den Management API-Server.

Schlüssel erstellen

Sie können Schlüssel für verschiedene kryptografische Zwecke erstellen.

AEAD-Schlüssel erstellen

Wenn Sie authentifizierte Verschlüsselung mit verknüpften Daten (Authenticated Encryption with Associated Data, AEAD) ausführen möchten, erstellen Sie eine AEADKey-Ressource in Ihrem Projektnamespace:

kubectl --kubeconfig KUBECONFIG_PATH \
apply -f - << EOF
apiVersion: "kms.gdc.goog/v1"
kind: AEADKey
metadata:
  name: KEY_NAME
  namespace: PROJECT
spec:
  algorithm: AES_256_GCM
EOF

Ersetzen Sie Folgendes:

  • KUBECONFIG_PATH: der Pfad zur kubeconfig-Datei für den Management API-Server
  • KEY_NAME: ein Name für den AEAD-Schlüssel, den Sie erstellen möchten, z. B. key-1
  • PROJECT: der Name des Projekts, z. B. kms-test1

Signierschlüssel erstellen

Wenn Sie Daten signieren und überprüfen möchten, erstellen Sie eine SigningKey-Ressource in Ihrem Projektnamespace:

kubectl --kubeconfig KUBECONFIG_PATH \
apply -f - << EOF
apiVersion: "kms.gdc.goog/v1"
kind: SigningKey
metadata:
  name: KEY_NAME
  namespace: PROJECT
spec:
  algorithm: EC_SIGN_P384_SHA384
EOF

Ersetzen Sie Folgendes:

  • KUBECONFIG_PATH: der Pfad zur kubeconfig-Datei für den Management API-Server
  • KEY_NAME: ein Name für den Signierschlüssel, den Sie erstellen möchten, z. B. key-1
  • PROJECT: der Name des Projekts, z. B. kms-test1

Erstellung des Schlüssels überprüfen

Nachdem Sie einen Schlüssel erstellt haben, prüfen Sie, ob der Vorgang erfolgreich war und die Schlüsselressource bereit ist.

Erstellung des AEAD-Schlüssels überprüfen

Prüfen Sie den Status eines AEAD-Schlüssels:

kubectl --kubeconfig KUBECONFIG_PATH \
  get aeadkey KEY_NAME \
  --namespace=PROJECT -o yaml

Ersetzen Sie Folgendes:

  • KUBECONFIG_PATH: der Pfad zur kubeconfig-Datei für den Management API-Server
  • KEY_NAME: der Name des AEAD-Schlüssels, der überprüft werden soll, z. B. key-1
  • PROJECT: der Name des Projekts, z. B. kms-test1

Wenn die Schlüsselerstellung erfolgreich war, suchen Sie in der Ausgabe nach einer Ready-Bedingung mit dem Status True.

Erstellung des Signierschlüssels überprüfen

Prüfen Sie den Status eines Signierschlüssels:

kubectl --kubeconfig KUBECONFIG_PATH \
  get signingkey KEY_NAME \
  --namespace=PROJECT -o yaml

Ersetzen Sie Folgendes:

  • KUBECONFIG_PATH: der Pfad zur kubeconfig-Datei für den Management API-Server
  • KEY_NAME: der Name des Signierschlüssels, der überprüft werden soll, z. B. key-1
  • PROJECT: der Name des Projekts, z. B. kms-test1

Wenn die Schlüsselerstellung erfolgreich war, suchen Sie in der Ausgabe nach einer Ready-Bedingung mit dem Status True.

Schlüssel löschen

Wenn Sie eine Schlüsselressource löschen möchten, geben Sie den Schlüsseltyp und den Namen an.

  1. Löschen Sie den Schlüssel im Projektnamespace:

    kubectl --kubeconfig KUBECONFIG_PATH \
      delete KEY_PRIMITIVE KEY_NAME \
      --namespace=PROJECT
    

    Ersetzen Sie Folgendes:

    • KUBECONFIG_PATH: der Pfad zur kubeconfig-Datei für den Management API-Server
    • KEY_PRIMITIVE: der Typ der Schlüsselressource, die Sie löschen möchten, z. B. aeadkey für den AEAD-Schlüssel oder signingkey für den Signierschlüssel
    • KEY_NAME: der Name des Schlüssels, den Sie löschen möchten, z. B. key-1.
    • PROJECT: der Name des Projekts, z. B. kms-test1.
  2. Prüfen Sie, ob der Schlüssel gelöscht wurde, indem Sie versuchen, ihn abzurufen:

    kubectl --kubeconfig KUBECONFIG_PATH \
      get KEY_PRIMITIVE  KEY_NAME \
      --namespace=PROJECT
    

    Wenn der Schlüssel erfolgreich gelöscht wurde, gibt der Befehl das Schlüsselobjekt nicht zurück.