Présentation de l'API Key Management Service

L'API Key Management Service (KMS) utilise des ressources personnalisées Kubernetes pour gérer le cycle de vie des clés de chiffrement.

Pour utiliser l'API KMS, utilisez la console GDC. Si votre application utilise vos propres bibliothèques pour appeler l'API, adoptez l'exemple de point de terminaison de service dans la section suivante et les définitions d'API complètes pour créer vos requêtes :

Point de terminaison du service et document de découverte

Les API KMS sont fournies dans deux packages selon le déploiement zonal ou global.

Les points de terminaison de l'API pour les API KMS zonales et globales sont les suivants :

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

La variable MANAGEMENT_API_SERVER_ENDPOINT est le point de terminaison du serveur de l'API Management.

À l'aide de la commande kubectl proxy, accédez à l'URL dans votre navigateur pour obtenir le document de découverte de l'API KMS. La commande kubectl proxy ouvre un proxy sur 127.0.0.1:8001 vers le serveur d'API Kubernetes sur votre machine locale. Une fois cette commande exécutée, accédez aux documents aux URL suivantes :

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

Exemples de ressources

Voici des exemples de ressources. L'espace de noms est un espace de noms de projet. Pour en savoir plus sur la création de clés, consultez la section Créer une clé de la page Créer et supprimer des clés.

Ressource AEADKey

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

Ressource SigningKey

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

Ressource KeyImport

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

Ressource KeyExport

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

Ressource RotationJob

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

Ressource MZAEADKey

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