Création de clés racine

Utilisez IBM® Key Protect for IBM Cloud® pour créer des clés racines.

Les clés racine sont des clés d'encapsulage de clés symétriques qui permettent d'assurer la sécurité des données chiffrées dans le cloud. Pour en savoir plus sur les clés racine, voir Protection des données avec le chiffrement d'enveloppe.

Les clés de chiffrement qui sont créées dans une région peuvent être utilisées pour chiffrer des magasins de données partout dans IBM Cloud.

Création de clés racine dans la console

Après avoir créé une instance du service, procédez comme suit pour créer une clé racine dans Console IBM Cloud.

Si vous déployez l'offre Dedicated Key Protect, vous devez d'abord initialiser votre instance avant de pouvoir créer des ressources.

Si vous activez les paramètres d'autorisation double pour votre instance Key Protect, gardez à l'esprit que les clés que vous ajoutez au service requièrent une autorisation de deux utilisateurs pour pouvoir être supprimées.

  1. Connectez-vous à la console IBM Cloud.

  2. Accédez à Menu > Liste de ressources pour afficher la liste de vos ressources.

  3. Dans la liste de ressources IBM Cloud, sélectionnez votre instance Key Protect mise à disposition.

  4. Pour créer une nouvelle clé, cliquez sur « Ajouter une clé ». Un panneau latéral s'ouvre. Assurez-vous que l'option Créer une clé est sélectionnée. Notez que pour définir un alias de clé, un trousseau de clés ou une politique de rotation pour cette clé, vous devez cliquer sur l'onglet « Options avancées » afin de les afficher.

Si vous n'êtes pas un Manager (ou si vous disposez d'un niveau de droits équivalent), l'option Politique de rotation n'apparaît pas.

Specify the key's details:
Décrit les paramètres de création d'une clé.
Paramètre Description
Type Type de clé que vous souhaitez gérer dans Key Protect. Les clés racine sont sélectionnées par défaut.
Nom de la clé Nom d'affichage lisible par l'utilisateur pour faciliter l'identification de votre clé. Le nom doit comprendre entre 2 et 90 caractères (inclus). Pour protéger votre vie privée, assurez-vous que le nom de clé ne contient pas d'informations identifiant la personne, comme votre nom ou votre emplacement. Notez que les noms de clé n'ont pas besoin d'être uniques.
Description de la clé Facultatif. Les descriptions sont un moyen utile d'ajouter des informations sur une clé (par exemple, une phrase décrivant son objectif) d'une manière qui n'est pas possible d'utiliser un alias ou son nom. Cette description doit comporter au moins deux caractères et pas plus de 240, et ne peut pas être modifiée ultérieurement. Afin de protéger votre vie privée, n'utilisez pas de données personnelles, telles que votre nom ou votre localisation, comme description de votre clé.
Alias de clé Facultatif. Un alias de clé permet également de décrire une clé. Les clés peuvent avoir jusqu'à 5 alias.
Fichier de clés Facultatif. Les fichiers de clés sont des regroupements de clés qui permettent de gérer ces regroupements indépendamment, si nécessaire. Chaque clé doit faire partie d'un fichier de clés. Si aucun fichier de clés n'est sélectionné, les clés sont placées dans le fichier de clés default. Notez que pour placer la clé que vous créez dans un fichier de clés, vous devez avoir le rôle Gestionnaire pour ce fichier de clés. Pour plus d'informations sur les rôles, voir Gestion de l'accès utilisateur.
Règle de rotation Facultatif. Si vous détenez le Rôle Gestionnaire, vous pouvez définir une règle de rotation pour la clé au moment de la création de la clé. Si une règle d'instance existe pour créer des règles de rotation sur les clés par défaut, vous pouvez également remplacer cette règle lors de la création de la clé par un autre intervalle. Notez que si une règle de rotation est activée pour votre instance et que vous désactivez la règle de rotation au moment de la création de la clé, celle-ci est toujours écrite dans votre clé à l'état Désactivé. Si vous souhaitez activer cette règle ultérieurement, vous pouvez le faire. Consultez la rubrique Définition d'une règle de rotation après la création de la clé pour plus d'informations.

Une fois que vous avez terminé de renseigner les informations relatives à la clé, cliquez sur « Ajouter » pour valider.

Si vous savez dans quel trousseau de clés vous souhaitez ajouter une clé et que vous êtes gestionnaire de ce trousseau, vous pouvez également accéder au panneau « Trousseaux de clés », sélectionner ⋯ puis cliquer sur « Ajouter une nouvelle clé ». Cela ouvre le panneau que vous voyez lorsque vous cliquez sur Ajouter sur la page Clés avec la variable Fichiers de clés complétée par le nom du fichier de clés.

Les clés générées par le service sont des clés symétriques de 256 bits, prises en charge par l'algorithme AES_KW. Pour renforcer la sécurité, elles sont générées par des modules de sécurité matériels (ou modules HSM) certifiés FIPS 140-2 niveau 3 résidant dans des centres de données IBM Cloud sécurisés.

Si vous devez fournir des clés racine de manière cohérente pour tous les comptes ou environnements, vous pouvez l'automatiser avec le module Key Protect Key. Pour une installation complète comprenant également l'instance Key Protect et les porte-clés, consultez le site Key Protect module. Pour une vue d'ensemble, voir Terraform IBM Modules.

Création de clés racine à l'aide de l'API

Si vous déployez l'offre Dedicated Key Protect, vous devez d'abord initialiser votre instance avant de pouvoir créer des ressources.

Créez une clé racine en soumettant une demande POST au noeud final suivant.

https://<region>.kms.cloud.ibm.com/api/v2/keys
  1. Extrayez vos données d'authentification afin d'utiliser les clés dans le service.

  2. Créez une clé racine en exécutant la commande curl suivante.

    $ curl -X POST \
        "https://<region>.kms.cloud.ibm.com/api/v2/keys" \
        -H "authorization: Bearer <IAM_token>" \
        -H "bluemix-instance: <instance_ID>" \
        -H "content-type: application/vnd.ibm.kms.key+json" \
        -H "x-kms-key-ring: <key_ring_ID>" \
        -H "correlation-id: <correlation_ID>" \
        -d '{
                "metadata": {
                    "collectionType": "application/vnd.ibm.kms.key+json",
                    "collectionTotal": 1
                },
                "resources": [
                    {
                        "type": "application/vnd.ibm.kms.key+json",
                        "name": "<key_name>",
                        "aliases": [alias_list],
                        "description": "<key_description>",
                        "expirationDate": "<expiration_date>",
                        "extractable": <key_type>
                    }
                ]
            }'
    

    Remplacez les variables de l'exemple de demande conformément au tableau suivant :

Décrit les variables nécessaires pour ajouter une clé racine à l'aide de l'API « Key Protect ».
Variable Description
région Obligatoire. Abréviation de la région, telle que us-south ou eu-gb, qui représente la zone géographique où réside votre instance Key Protect. Pour plus d'informations, voir Points d'extrémité de service.
IAM_token Obligatoire. Votre jeton d'accès IBM Cloud. Incluez le contenu complet du jeton IAM, notamment la valeur Bearer, dans la requête curl. Pour plus d'informations, voir Extraction d'un jeton d'accès.
instance_ID Obligatoire. Identificateur unique affecté à votre instance de service Key Protect. Pour plus d'informations, voir Extraction d'un ID d'instance.
key_ring_ID Facultatif. Identificateur unique du fichier de clés cible dont vous souhaitez que la clé nouvellement créée fasse partie. S'il n'est pas indiqué, l'en-tête est automatiquement défini sur 'default' et la clé est placée dans le fichier de clés par défaut de l'instance de service Key Protect indiquée. Pour plus d'informations, voir Grouping keys.
correlation_ID Identificateur unique qui est utilisé pour suivre et corréler des transactions.
key_name Obligatoire. Nom lisible par l'utilisateur pour l'identification pratique de votre clé. Important : pour protéger votre vie privée, ne stockez aucune donnée personnelle comme métadonnées pour votre clé.
alias_list Un ou plusieurs alias lisibles par l'utilisateur affectés à votre clé. Important : pour protéger votre vie privée, ne stockez aucune donnée personnelle comme métadonnées pour votre clé. Chaque alias doit être alphanumérique, sensible à la casse et ne peut pas contenir d'espaces ou de caractères spéciaux autres que des tirets (-) ou des traits de soulignement (_). L'alias ne peut pas être un UUID de version 4 et ne doit pas être un nom réservé Key Protect : allowed_ip, key, keys, metadata, policy, policies, registration, registrations, ring, rings, rotate, wrap, unwrap, rewrap, version, versions. La taille de l'alias peut être comprise entre 2 et 90 caractères (inclus).
key_description Description étendue de votre clé. Important : pour protéger votre vie privée, ne stockez aucune donnée personnelle comme métadonnées pour votre clé.
expiration_date Facultatif. La date et l'heure d'expiration de la clé dans le système, au format RFC 3339 (AAAA-MM-JJ HH:MM:SS.SS, par exemple 2019-10-12T07:20:50.52Z ). Soyez prudent lorsque vous définissez une date d'expiration, car les clés créées avec une date d'expiration passent automatiquement à l'état désactivé dans l'heure qui suit l'expiration. Dans cet état, les seules actions autorisées sur la clé sont le déballage, le remballage, la rotation et la suppression. Les clés désactivées ne peuvent pas être utilisées pour crypter (envelopper) de nouvelles données, même si elles ont été tournées pendant la désactivation. La rotation ne réinitialise pas la date d'expiration, ne la prolonge pas et ne permet pas de la modifier. Il est recommandé que toutes les données cryptées à l'aide d'une clé expirant ou périmée soient recryptées à l'aide d'une nouvelle clé racine du client (CRK) avant que la CRK originale n'expire, afin d'éviter toute interruption de service. L'effacement et la restauration d'une clé désactivée ne la ramènent pas à l'état actif. Si l'attribut « expiration_date » est omis, la clé n'expire pas.
key_type Valeur booléenne qui détermine si les informations de clé peuvent quitter le service. Lorsque vous définissez l'attribut extractible sur false, le service crée une clé racine que vous pouvez utiliser pour les opérations d'encapsulage ou de décapsulage.

Soyez prudent lorsque vous définissez une date d'expiration, car les clés créées avec une date d'expiration passent automatiquement à l'état désactivé dans l'heure qui suit l'expiration. Dans cet état, les seules actions autorisées sur la clé sont le déballage, le remballage, la rotation et la suppression. Les clés désactivées ne peuvent pas être utilisées pour crypter (envelopper) de nouvelles données, même si elles ont été tournées pendant la désactivation. La rotation ne réinitialise pas la date d'expiration, ne la prolonge pas et ne permet pas de la modifier. Il est recommandé que toutes les données cryptées à l'aide d'une clé expirant ou périmée soient recryptées à l'aide d'une nouvelle clé racine du client (CRK) avant que la CRK originale n'expire, afin d'éviter toute interruption de service. La suppression et la restauration d'une clé désactivée ne la ramènent pas à l'état actif. Si l'attribut « expiration_date » est omis, la clé n'expire pas.

Vous pouvez contrôler l'utilisation des clés avec des dates d'expiration en utilisant la fonction IBM Cloud Logs. Les journaux indiquent la date d'expiration et le nombre de jours restants à l'aide des propriétés JSON responseData.expirationDate et responseData.daysToKeyExpire pour les clés qui ont une date d'expiration et pour les valeurs action suivantes : kms.secrets.wrap, kms.secrets.unwrap, kms.secrets.rewrap, kms.secrets.read, kms.secrets.readmetadata, kms.secrets.create, kms.secrets-with-policy-overrides.create et kms.secrets.expire. En outre, un appel REST réussi à GET /api/v2/keys renvoie la propriété expirationDate pour chaque clé ayant une date d'expiration.

Pour protéger la confidentialité de vos données personnelles, évitez d'entrer des informations identifiant la personne, comme votre nom ou votre emplacement, lorsque vous ajoutez des clés au service.

Une réponse POST api/v2/keys qui aboutit renvoie la valeur de l'ID de la clé, ainsi que d'autres métadonnées. L'ID est un identificateur unique qui est affecté à la clé et qui est utilisé pour les appels adressés ultérieurement à Key Protect.

{
    "metadata": {
        "collectionType": "application/vnd.ibm.kms.key+json",
        "collectionTotal": 1
    },
    "resources": [
        {
            "type": "application/vnd.ibm.kms.key+json",
            "id": "02fd6835-6001-4482-a892-13bd2085f75d",
            "name": "test-root-key",
            "aliases": [
                "alias-1",
                "alias-2"
              ],
            "description": "A test root key",
            "state": 1,
            "extractable": false,
            "crn": "crn:v1:bluemix:public:kms:us-south:a/f047b55a3362ac06afad8a3f2f5586ea:12e8c9c2-a162-472d-b7d6-8b9a86b815a6:key:02fd6835-6001-4482-a892-13bd2085f75d",
            "imported": false,
            "creationDate": "2020-03-12T03:37:32Z",
            "createdBy": "...",
            "algorithmType": "Deprecated",
            "algorithmMetadata": {
                "bitLength": "256",
                "mode": "Deprecated"
            },
            "algorithmBitSize": 256,
            "algorithmMode": "Deprecated",
            "lastUpdateDate": "2020-03-12T03:37:32Z",
            "keyVersion": {
                "id": "2291e4ae-a14c-4af9-88f0-27c0cb2739e2",
                "creationDate": "2020-03-12T03:37:32Z"
            },
            "dualAuthDelete": {
                "enabled": false
            },
            "deleted": false
        }
    ]
}

Pour une description détaillée des paramètres de réponse, consultez la documentation de référence de l'API REST de Key Protect.

Etapes suivantes