Le système de gestion des clés (KMS, Key Management System) est compatible avec différents types de clés pour les opérations de chiffrement telles que le chiffrement, le déchiffrement, la signature et la validation. Pour en savoir plus sur les types de clés et les algorithmes disponibles, consultez Clés compatibles.
Cette page s'adresse aux audiences du groupe d'opérateurs d'applications, telles que les équipes DevOps, lorsqu'elles effectuent des opérations de gestion des clés dans Google Distributed Cloud (GDC) sous air gap. Pour en savoir plus, consultez la documentation sur les audiences pour GDC sous air gap.
Avant de commencer
Pour créer et gérer des clés, demandez les autorisations nécessaires et préparez votre environnement.
Demander des rôles IAM
Contactez l'administrateur IAM de votre organisation pour qu'il vous attribue les rôles suivants dans l'espace de noms de votre projet :
- Créateur KMS (
kms-creator) : permet d'afficher et de créer des ressourcesAEADKeyetSigningKeydans un projet. - Administrateur KMS (
kms-admin) : permet d'afficher, de créer et de supprimer des clés dans un projet.
Préparer votre environnement
Installez et initialisez le gdcloud CLI, si vous ne l'avez pas déjà fait.
Authentifiez-vous auprès de GDC à l'aide de gdcloud CLI. Ce processus nécessite le certificat d'autorité de certification (CA) pour la console de votre organisation :
Téléchargez le certificat CA :
echo -n | openssl s_client -showcerts -connect CONSOLE_URL:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > CA_CERT_PATHRemplacez les éléments suivants :
CONSOLE_URL: URL de la console de votre organisation (par exemple,console.org-1.zone1.google.gdch.test).CA_CERT_PATH: chemin d'accès complet où vous souhaitez enregistrer le fichier de certificat CA (par exemple,/tmp/my-org-ca.crt).
Connectez-vous à l'aide du certificat CA téléchargé :
gdcloud auth login --login-config-cert=CA_CERT_PATH
Obtenez un fichier kubeconfig pour le serveur d'API Management à l'aide de gdcloud CLI.
Créer une clé
Vous pouvez créer des clés à des fins de chiffrement différentes.
Créer une clé AEAD
Pour effectuer un chiffrement authentifié avec les données associées (AEAD), créez une ressource AEADKey dans l'espace de noms de votre projet :
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
Remplacez les éléments suivants :
KUBECONFIG_PATH: chemin d'accès au fichier kubeconfig pour le serveur d'API Management.KEY_NAME: nom de la clé AEAD que vous souhaitez créer (par exemple,key-1).PROJECT: nom du projet (par exemple,kms-test1).
Créer une clé de signature
Pour signer et valider des données, créez une ressource SigningKey dans l'espace de noms de votre projet :
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
Remplacez les éléments suivants :
KUBECONFIG_PATH: chemin d'accès au fichier kubeconfig pour le serveur d'API Management.KEY_NAME: nom de la clé de signature que vous souhaitez créer (par exemple,key-1).PROJECT: nom du projet (par exemple,kms-test1).
Vérifier la création de la clé
Après avoir créé une clé, vérifiez que l'opération a réussi et que la ressource de clé est prête.
Vérifier la création de la clé AEAD
Vérifiez l'état d'une clé AEAD :
kubectl --kubeconfig KUBECONFIG_PATH \
get aeadkey KEY_NAME \
--namespace=PROJECT -o yaml
Remplacez les éléments suivants :
KUBECONFIG_PATH: chemin d'accès au fichier kubeconfig pour le serveur d'API Management.KEY_NAME: nom de la clé AEAD à valider (par exemple,key-1).PROJECT: nom du projet (par exemple,kms-test1).
Si la création de la clé a réussi, recherchez dans la sortie une condition Ready avec l'état True.
Vérifier la création de la clé de signature
Vérifiez l'état d'une clé de signature :
kubectl --kubeconfig KUBECONFIG_PATH \
get signingkey KEY_NAME \
--namespace=PROJECT -o yaml
Remplacez les éléments suivants :
KUBECONFIG_PATH: chemin d'accès au fichier kubeconfig pour le serveur d'API Management.KEY_NAME: nom de la clé de signature à valider (par exemple,key-1).PROJECT: nom du projet (par exemple,kms-test1).
Si la création de la clé a réussi, recherchez dans la sortie une condition Ready avec l'état True.
Supprimer une clé
Pour supprimer une ressource de clé, spécifiez le type et le nom de la clé.
Supprimez la clé dans l'espace de noms du projet :
kubectl --kubeconfig KUBECONFIG_PATH \ delete KEY_PRIMITIVE KEY_NAME \ --namespace=PROJECTRemplacez les éléments suivants :
KUBECONFIG_PATH: chemin d'accès au fichier kubeconfig pour le serveur d'API Management.KEY_PRIMITIVE: type de ressource de clé que vous souhaitez supprimer, par exempleaeadkeypour la clé AEAD ousigningkeypour la clé de signature.KEY_NAME: nom de la clé que vous souhaitez supprimer (par exemple,key-1).PROJECT: nom du projet (par exemple,kms-test1).
Vérifiez la suppression de la clé en tentant de la récupérer :
kubectl --kubeconfig KUBECONFIG_PATH \ get KEY_PRIMITIVE KEY_NAME \ --namespace=PROJECTSi la clé a été supprimée, la commande ne renvoie pas l'objet clé.