Cette page explique comment créer une clé dans Cloud KMS. Une clé peut être une clé de chiffrement symétrique ou asymétrique, une clé de signature asymétrique ou une clé de signature MAC.
Lorsque vous créez une clé, vous l'ajoutez à un trousseau dans un emplacement Cloud KMS spécifique. Vous pouvez créer un trousseau de clés ou en utiliser un existant. Sur cette page, vous allez générer une clé Cloud KMS ou Cloud HSM et l'ajouter à un trousseau de clés existant. Pour créer une clé Cloud EKM, consultez Créer une clé externe. Pour importer une clé Cloud KMS ou Cloud HSM, consultez Importer une clé.
Avant de commencer
Avant d'effectuer les tâches décrites sur cette page, vous devez disposer des éléments suivants :
- Ressource de projet Google Cloud contenant vos ressources Cloud KMS. Nous vous recommandons d'utiliser un projet distinct pour vos ressources Cloud KMS, qui ne contient aucune autre ressource Google Cloud .
- Nom et emplacement du trousseau de clés dans lequel vous souhaitez créer votre clé. Choisissez un trousseau de clés dans un emplacement proche de vos autres ressources et qui est compatible avec le niveau de protection que vous avez sélectionné. Pour afficher les emplacements disponibles et les niveaux de protection qu'ils prennent en charge, consultez Emplacements Cloud KMS. Pour créer un trousseau de clés, consultez Créer un trousseau de clés.
- Facultatif : Pour utiliser la gcloud CLI, préparez votre environnement.
Dans la console Google Cloud , activez Cloud Shell.
Rôles requis
Pour obtenir les autorisations nécessaires pour créer des clés, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet ou une ressource parente :
- Administrateur Cloud KMS (
roles/cloudkms.admin) -
Pour créer des clés HSM à locataire unique :
Créateur de clés HSM à locataire unique Cloud KMS (
roles/cloudkms.hsmSingleTenantKeyCreator)
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Ces rôles prédéfinis contiennent les autorisations requises pour créer des clés. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour créer des clés :
-
cloudkms.cryptoKeys.create -
cloudkms.cryptoKeys.get -
cloudkms.cryptoKeys.list -
cloudkms.cryptoKeyVersions.create -
cloudkms.cryptoKeyVersions.get -
cloudkms.cryptoKeyVersions.list -
cloudkms.keyRings.get -
cloudkms.keyRings.list -
cloudkms.locations.get -
cloudkms.locations.list -
resourcemanager.projects.get -
Pour récupérer une clé publique :
cloudkms.cryptoKeyVersions.viewPublicKey -
Pour créer des clés HSM à locataire unique :
-
cloudkms.singleTenantHsmInstances.get -
cloudkms.singleTenantHsmInstances.use
-
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Créer une clé de chiffrement symétrique
Console
Dans la console Google Cloud , accédez à la page Gestion des clés.
Cliquez sur le nom du trousseau de clés pour lequel vous souhaitez créer une clé.
Cliquez sur Créer une clé.
Dans le champ Nom de la clé, saisissez un nom pour votre clé.
Pour le champ Niveau de protection, sélectionnez Logiciel, HSM ou HSM à locataire unique.
Si vous avez sélectionné HSM à locataire unique, sélectionnez l'instance HSM à locataire unique dans laquelle vous souhaitez créer la clé.
Dans le champ Matériel de clé, sélectionnez Clé générée.
Sous Objectif, sélectionnez Chiffrement/Déchiffrement symétriques.
Acceptez les valeurs par défaut pour Rotation period (Période de rotation) et Starting on (Rotation à partir du).
Cliquez sur Créer.
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer ou mettre à jour Google Cloud CLI.
Pour créer une clé logicielle ou Cloud HSM multitenant, utilisez la commande kms keys create :
gcloud kms keys create KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--purpose "encryption" \
--protection-level "PROTECTION_LEVEL"
Remplacez les éléments suivants :
KEY_NAME: nom de la clé.KEY_RING: nom du trousseau de clés qui inclut la cléLOCATION: emplacement Cloud KMS du trousseau de clés.PROTECTION_LEVEL: niveau de protection à utiliser pour la clé (par exemple,softwareouhsm). Vous pouvez omettre l'option--protection-levelpour les cléssoftware.
Pour en savoir plus sur toutes les options et valeurs possibles, exécutez la commande avec l'option --help.
--crypto-key-backend à la commande kms keys create :
gcloud kms keys create KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--purpose "encryption" \
--protection-level "hsm-single-tenant" \
--crypto-key-backend="projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME"
Remplacez les éléments suivants :
INSTANCE_PROJECT: identifiant du projet dans lequel se trouve votre instance Cloud HSM à locataire unique.INSTANCE_NAME: nom de l'instance Single-tenant Cloud HSM dans laquelle vous souhaitez créer la clé. Pour en savoir plus sur les instances Cloud HSM à locataire unique, consultez Créer et gérer une instance Cloud HSM à locataire unique.
Pour en savoir plus sur toutes les options et valeurs possibles, exécutez la commande avec l'option --help.
C#
Pour exécuter ce code, commencez par configurer un environnement de développement C#, puis installez le SDK Cloud KMS pour C#.
Go
Pour exécuter ce code, commencez par configurer un environnement de développement Go, puis installez le SDK Cloud KMS pour Go.
Java
Pour exécuter ce code, commencez par configurer un environnement de développement Java et installez le SDK Cloud KMS pour Java.
Node.js
Pour exécuter ce code, commencez par configurer un environnement de développement Node.js, puis installez le SDK Cloud KMS pour Node.js.
PHP
Pour exécuter ce code, commencez par en apprendre plus sur l'utilisation de PHP sur Google Cloud, puis installez le SDK Cloud KMS pour PHP.
Python
Pour exécuter ce code, commencez par configurer un environnement de développement Python, puis installez le SDK Cloud KMS pour Python.
Ruby
Pour exécuter ce code, commencez par configurer un environnement de développement Ruby, puis installez le SDK Cloud KMS pour Ruby.
API
Ces exemples utilisent curl comme client HTTP pour démontrer l'utilisation de l'API. Pour en savoir plus sur le contrôle des accès, consultez la page Accéder à l'API Cloud KMS.
Pour créer une clé logicielle ou Cloud HSM multitenant, utilisez la méthode CryptoKey.create :
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \
--request "POST" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{"purpose": "ENCRYPT_DECRYPT", "versionTemplate": { "protectionLevel": "PROTECTION_LEVEL", "algorithm": "ALGORITHM" }}'
Remplacez les éléments suivants :
PROJECT_ID: ID du projet contenant le trousseau de clés.LOCATION: emplacement Cloud KMS du trousseau de clés.KEY_RING: nom du trousseau de clés qui inclut la cléKEY_NAME: nom de la clé.PROTECTION_LEVEL: niveau de protection de la clé (par exemple,SOFTWAREouHSM).ALGORITHM: algorithme de signature HMAC (par exemple,HMAC_SHA256). Pour afficher tous les algorithmes HMAC compatibles, consultez Algorithmes de signature HMAC.
PROTECTION_LEVEL sur HSM_SINGLE_TENANT et ajoutez l'option --crypto-key-backend à la commande kms keys create :
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME" \
--request "POST" \
--header "authorization: Bearer TOKEN" \
--header "content-type: application/json" \
--data '{"purpose": "ENCRYPT_DECRYPT", "versionTemplate": { "protectionLevel": "HSM_SINGLE_TENANT",
"algorithm": "ALGORITHM",
"crypto-key-backend": "projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME" }}'
Remplacez les éléments suivants :
INSTANCE_PROJECT: identifiant du projet dans lequel se trouve votre instance Cloud HSM à locataire unique.INSTANCE_NAME: nom de l'instance Single-tenant Cloud HSM dans laquelle vous souhaitez créer la clé. Pour en savoir plus sur les instances Cloud HSM à locataire unique, consultez Créer et gérer une instance Cloud HSM à locataire unique.
Pour en savoir plus sur toutes les options et valeurs possibles, exécutez la commande avec l'option --help.
Créer une clé de chiffrement symétrique avec rotation automatique personnalisée
Lorsque vous créez une clé, vous pouvez spécifier sa période de rotation, qui correspond au délai entre la création automatique de nouvelles versions de la clé. Vous pouvez également spécifier indépendamment la prochaine date de rotation, de sorte que la prochaine rotation ait lieu plus tôt ou plus tard qu'une période de rotation à partir de maintenant.
Console
Lorsque vous utilisez la console Google Cloud pour créer une clé, Cloud KMS définit automatiquement la période de rotation et la prochaine date de rotation. Vous pouvez choisir d'utiliser les valeurs par défaut ou d'en spécifier d'autres.
Pour spécifier une période de rotation et une date de début différentes, effectuez la procédure de création de la clé, mais effectuez les étapes ci-dessous avant de cliquer sur le bouton Create (Créer) :
Dans le champ Période de rotation des clés, sélectionnez une option.
Pour À partir du, sélectionnez la date à laquelle vous souhaitez que la première rotation automatique ait lieu. Vous pouvez laisser la valeur par défaut de À partir du pour que la première rotation automatique commence une période de rotation des clés après la création de la clé.
gcloud
Pour utiliser Cloud KMS sur la ligne de commande, commencez par installer ou mettre à jour Google Cloud CLI.
gcloud kms keys create KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--purpose "encryption" \
--rotation-period ROTATION_PERIOD \
--next-rotation-time NEXT_ROTATION_TIME
Remplacez les éléments suivants :
KEY_NAME: nom de la clé.KEY_RING: nom du trousseau de clés qui inclut la cléLOCATION: emplacement Cloud KMS du trousseau de clés.ROTATION_PERIOD: intervalle de rotation de la clé (par exemple,30dpour effectuer une rotation de la clé tous les 30 jours). La période de rotation ne doit pas être inférieure à un jour ni supérieure à 100 ans. Pour en savoir plus, consultez CryptoKey.rotationPeriod.NEXT_ROTATION_TIME: code temporel auquel effectuer la première rotation, par exemple2023-01-01T01:02:03. Vous pouvez omettre--next-rotation-timepour programmer la première rotation pour une période de rotation à partir du moment où vous exécutez la commande. Pour en savoir plus, consultez la page concernantCryptoKey.nextRotationTime
Pour en savoir plus sur toutes les options et valeurs possibles, exécutez la commande avec l'option --help.
C#
Pour exécuter ce code, commencez par configurer un environnement de développement C#, puis installez le SDK Cloud KMS pour C#.