Übersicht über die Key Management Service API

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

Wenn Sie die KMS API verwenden möchten, müssen Sie die GDC Console verwenden. Wenn Ihre Anwendung Ihre eigenen 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 zonaler oder globaler Bereitstellung in zwei Paketen bereitgestellt.

Die API-Endpunkte für die zonenbezogenen und globalen KMS-APIs sind 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.

Rufen Sie mit dem Befehl kubectl proxy die URL in Ihrem Browser auf, um das Discovery-Dokument für die KMS API abzurufen. Mit dem Befehl kubectl proxy wird ein Proxy auf 127.0.0.1:8001 zum Kubernetes API-Server auf Ihrem lokalen Computer geöffnet. 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 auf der Seite Schlüssel erstellen und löschen im Abschnitt Schlüssel erstellen.

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