Key Management Service API – Übersicht

Die Key Management Service (KMS) API verwendet benutzerdefinierte Kubernetes-Ressourcen, um den Lebenszyklus der kryptografischen Schlüssel zu verwalten.

Verwenden Sie die GDC-Konsole, um die KMS API zu verwenden. Wenn Ihre Anwendung eigene Bibliotheken verwendet, um die API aufzurufen, übernehmen Sie den Beispiel-Dienstendpunkt im folgenden Abschnitt und die vollständigen API-Definitionen, um Ihre Anfragen zu erstellen:

Dienstendpunkt und Discovery-Dokument

Die KMS APIs werden je nach zonenbasierter oder globaler Bereitstellung in zwei Paketen bereitgestellt.

Die API-Endpunkte für die zonenbasierte und globale KMS API sind jeweils die folgenden:

  • https://MANAGEMENT_API_SERVER_ENDPOINT/apis/kms.gdc.goog/v1
  • https://MANAGEMENT_API_SERVER_ENDPOINT/apis/kms.global.gdc.goog/v1

Die Variable MANAGEMENT_API_SERVER_ENDPOINT ist der Endpunkt des Management API-Servers.

Greifen Sie mit dem Befehl kubectl proxy in Ihrem Browser auf die URL zu, um das Discovery-Dokument für die KMS API abzurufen. Der Befehl kubectl proxy öffnet einen Proxy auf 127.0.0.1:8001 zum Kubernetes API-Server auf Ihrem lokalen Computer. Nachdem der Befehl ausgeführt wurde, können Sie über die folgenden URLs auf die Dokumente zugreifen:

  • http://127.0.0.1:8001/apis/kms.gdc.goog/v1
  • http://127.0.0.1:8001/apis/kms.global.gdc.goog/v1

Beispielressourcen

Im Folgenden finden Sie Beispielressourcen. Der Namespace ist ein Projekt-Namespace. Weitere Informationen zum Erstellen von Schlüsseln finden Sie im Abschnitt Schlüssel erstellen auf der Seite Schlüssel erstellen und löschen.

AEADKey-Ressource

apiVersion: "kms.gdc.goog/v1"
kind: AEADKey
metadata:
  name: my-test-key
  namespace: user-kms-project
spec:
  algorithm: AES_256_GCM

SigningKey-Ressource

apiVersion: "kms.gdc.goog/v1"
kind: SigningKey
metadata:
  name: my-test-key
  namespace: user-kms-project
spec:
  algorithm: EC_SIGN_P384_SHA384

KeyImport-Ressource

apiVersion: "kms.gdc.goog/v1"
kind: KeyImport
metadata:
  name: my-test-key-import
  namespace: user-kms-project
spec:
  context:
    mechanism: ECDH_P521_AES256

KeyExport-Ressource

apiVersion: "kms.gdc.goog/v1"
kind: KeyExport
metadata:
  name: my-test-key-export
  namespace: user-kms-project
spec:
  context:
    mechanism: ECDH_P521_AES256
    publicKey: pub_key_from_import
  keyToExport:
    kind: AEADKey
    name: key_name_to_export

RotationJob-Ressource

apiVersion: "kms.gdc.goog/v1"
kind: RotationJob
metadata:
  name: my-test-rotate-job
spec:
  rootKeyResourceName: namespaces/kms-system/secrets/kms-key-ctm-root

MZAEADKey-Ressource

apiVersion: "kms.global.gdc.goog/v1"
kind: MZAEADKey
metadata:
  name: my-test-mz-key
  namespace: user-kms-project
spec:
  algorithm: AES_256_GCM