Remplacement de la gestion des clés dans une architecture déployable de zone d'arrivée
Les architectures déployables de la zone d'arrivée fournissent des fonctions de gestion de clés en intégrant IBM Key Protect ou Hyper Protect Crypto Services. Pour apporter des modifications plus avancées à la gestion des clés qui ne sont pas possibles dans la plupart des entrées, utilisez une entrée de substitution.
Pour remplacer les valeurs, vous transmettez l'objet JSON key_management dans une variable d'entrée de substitution. Pour les déploiements avec des projets ou IBM Cloud Schematics, les valeurs sont ajoutées dans l'entrée override_json_string.
IBM Key Protect et Hyper Protect Crypto Services sont pris en charge dans les architectures déployables de zone d'arrivée.
Vous pouvez également utiliser l'outil de configuration de zone d'arrivée pour personnaliser vos architectures déployables.
Exemples de substitutions de gestion de clés
Ces exemples identifient certains cas d'utilisation courants pour inclure un service de gestion de clés (KMS) dans votre architecture déployable.
- Création d'une instance et de clés Key Protect
- Créer des clés dans un KMS existant
- Utiliser des clés existantes sans KMS
- Utiliser des clés existantes et créer d'autres clés
- Edition d'une configuration de projet
Pour obtenir la liste complète des attributs de gestion de clés pris en charge dans l'architecture déployable de la zone d'arrivée, voir l'objet key_management dans la section Entrées du référentiel terraform-ibm-landing-zone dans GitHub.
Créer une instance Key Protect et des clés
Cet exemple décrit la configuration par défaut et ne nécessite pas de valeur de substitution. Toutefois, l'exemple montre que vous pouvez remplacer des valeurs qui ne sont pas disponibles dans d'autres variables d'entrée (par exemple, le nom
de la clé). Cet exemple de substitution crée une instance de IBM Key Protect nommée test-kms et crée des clés nommées slz-slz-key, slz-atracker-key, slz-roks-key et slz-vsi-volume-key dans
l'instance test-kms.
-
Copiez le JSON suivant.
{ "key_management": { "keys": [ { "key_ring": "slz-slz-ring", "name": "slz-slz-key", "root_key": true }, { "key_ring": "slz-slz-ring", "name": "slz-atracker-key", "root_key": true }, { "key_ring": "slz-slz-ring", "name": "slz-roks-key", "root_key": true }, { "key_ring": "slz-slz-ring", "name": "slz-vsi-volume-key", "root_key": true } ], "name": "test-kms", "resource_group": "testrg" } } -
Suivez les étapes de la section Edition de la configuration de projet pour modifier votre architecture déployable.
Créer des clés dans un KMS existant
Cet exemple de substitution utilise une instance IBM Key Protect existante appelée test-kms. Vous pouvez utiliser une instance existante en définissant use_data sur true. Le reste de l'exemple crée quatre
clés dans un fichier de clés nommé slz-slz-ring dans l'instance existante.
Pour utiliser Hyper Protect Crypto Services à la place de Key Protect, transmettez "use_hs_crypto": true à la place de "use_data": true.
-
Copiez le JSON suivant.
{ "key_management": { "keys": [ { "key_ring": "slz-slz-ring", "name": "slz-slz-key", "root_key": true }, { "key_ring": "slz-slz-ring", "name": "slz-atracker-key", "root_key": true }, { "key_ring": "slz-slz-ring", "name": "slz-roks-key", "root_key": true }, { "key_ring": "slz-slz-ring", "name": "slz-vsi-volume-key", "root_key": true } ], "name": "test-kms", "resource_group": "testrg", "use_data": true } } -
Suivez les étapes de la section Edition de la configuration de projet pour modifier votre architecture déployable.
Utiliser des clés existantes sans KMS
Pour utiliser des clés existantes sans extraire d'instance KMS existante, incluez le CRN de la clé. Le CRN peut faire référence à une clé dans le compte qui déploie l'architecture déployable ou dans un autre compte. Les attributs des clés existantes
sont name et existing_key_crn. Lorsque vous utilisez un CRN de clé existant, vous devez disposer d'une règle d'authentification qui permet à block-storage et cloud-object-storage d'accéder
au KMS dans le compte externe. Pour plus d'informations, voir Utilisation des autorisations pour accorder l'accès entre les services
Veillez à omettre key_management.name et key_management.resource_group lorsque vous ne souhaitez pas que l'architecture déployable crée un KMS.
-
Copiez le JSON suivant.
{ "key_management": { "keys": [ { "name": "slz-slz-key", "existing_key_crn": "crn:v1:bluemix:public:kms:ca-tor:a/testaccountid:15658dcb-7434-4ff7-961a-79cae8d9baca:key:6128229e-1bbb-4c25-827c-c97f077fb585" }, { "name": "slz-atracker-key", "existing_key_crn": "crn:v1:bluemix:public:kms:ca-tor:a/testaccountid:15658dcb-7434-4ff7-961a-79cae8d9baca:key:9157cce8-3c1a-42be-b67f-0103426bc147" }, { "name": "slz-roks-key", "existing_key_crn": "crn:v1:bluemix:public:kms:ca-tor:a/testaccountid:7ccfb2a6-4d7d-4e85-af35-9548cda719d0:key:682c774b-c781-4bbb-b3b7-3ddf1831ab2f" }, { "name": "slz-vsi-volume-key", "existing_key_crn": "crn:v1:bluemix:public:kms:ca-tor:a/testaccountid:15658dcb-7434-4ff7-961a-79cae8d9baca:key:8c2ac54e-ac85-47da-8d03-06acb7f60ab3" } ] } } -
Suivez les étapes de la section Edition de la configuration de projet pour modifier votre architecture déployable.
Utiliser des clés existantes et en créer d'autres
Cet exemple crée des clés et utilise également une clé existante. Une instance Key Protect appelée test-kms est créée avec trois clés appelées slz-slz-key, slz-atracker-key et slz-roks-key.
En outre, la clé slz-vsi-volume-key existante est utilisée.
Dans cet exemple, la clé existante est identifiée par CRN pour extraire la clé sans l'instance KMS. Vous pouvez également définir "use_data": true comme dans l'exemple Create keys in an existing KMS.
Lorsque vous utilisez un CRN de clé existant, vous devez disposer d'une règle d'authentification qui autorise block-storage, cloud-object-storage et secrets-manager à accéder au KMS dans le compte externe.
Pour plus d'informations, voir Utilisation des autorisations d'octroi d'accès entre services.
-
Copiez le JSON suivant.
{ "key_management": { "keys": [ { "key_ring": "slz-slz-ring", "name": "slz-slz-key", "root_key": true }, { "key_ring": "slz-slz-ring", "name": "slz-atracker-key", "root_key": true }, { "key_ring": "slz-slz-ring", "name": "slz-roks-key", "root_key": true }, { "name": "slz-vsi-volume-key", "existing_key_crn": "crn:v1:bluemix:public:kms:ca-tor:a/testaccountid:15658dcb-7434-4ff7-961a-79cae8d9baca:key:8c2ac54e-ac85-47da-8d03-06acb7f60ab3" } ], "name": "test-kms", "resource_group": "testrg" } } -
Suivez les étapes de la section Edition de la configuration de projet pour modifier votre architecture déployable.
Edition de la configuration de projet
Utilisez les étapes suivantes avec l'un des exemples pour remplacer la configuration de votre architecture déployable.
-
Copiez l'exemple JSON. Modifiez-la en fonction de vos besoins.
-
Ajoutez le code JSON à la variable d'entrée override_json_string de votre architecture déployable:
- Accédez à la page Projets et sélectionnez un projet.
- Accédez à l'onglet Configurations et sélectionnez une configuration d'architecture déployable.
- Cliquez sur le bouton Editer.
- Dans la section Configuration, cliquez sur le panneau Facultatif.
- Recherchez override_json_string et cliquez sur Editer JSON.
- Collez dans ce fichier JSON que vous avez copié précédemment et cliquez sur Sauvegarder.
-
Validez et approuvez vos modifications.