Configuration de Terraform pour le plan standard Hyper Protect Crypto Services

Terraform sur IBM Cloud® permet une mise à disposition prévisible et cohérente des services IBM Cloud afin que vous puissiez générer rapidement des environnements de cloud complexes et à plusieurs niveaux, à la suite des principes IaC (Infrastructure as Code). Comme pour l'utilisation de l'interface de ligne de commande ou de l'API et des SDK de IBM Cloud, vous pouvez automatiser la mise à disposition, la mise à jour et la suppression de vos instances Hyper Protect Crypto Services grâce au langage de configuration HashiCorp (HCL).

Cette rubrique explique uniquement comment configurer Terraform pour le plan standard Hyper Protect Crypto Services.

Vous recherchez un Terraform géré sur une solution IBM Cloud ? Essayez IBM Cloud® Schematics. Avec Schematics, vous pouvez utiliser le langage de script Terraform que vous connaissez, mais vous n'avez pas à vous inquiéter de la configuration et de la maintenance de la ligne de commande Terraform et du plug-in IBM Cloud Provider. Schematics fournit également des modèles Terraform prédéfinis que vous pouvez installer facilement à partir du catalogue IBM Cloud.

Avant de commencer, vérifiez que vous disposez de l'accès requis pour créer et utiliser des ressources Hyper Protect Crypto Services.

Exemple : Mise à disposition et initialisation des instances de service à l'aide de Terraform

Procédez comme suit pour créer et initialiser une instance Hyper Protect Crypto Services à l'aide de Terraform :

  1. Installez l'interface de ligne de commande Terraform et configurez le plug-in IBM Cloud Provider pour conformément au tutoriel d'initiation à Terraform on IBM Cloud.

    Le plug-in extrait les API IBM Cloud utilisées pour la mise à disposition, la mise à jour ou la suppression des instances de service et des ressources Hyper Protect Crypto Services. Les versions recommandées de Terraform sont 0.13.x, 0.14.x et 0.15.x. Dans le fichier versions.tf, vous devez spécifier le paramètre version sur 1.29.0.

  2. Configurez les clés de signature de l'administrateur de l'unité de chiffrement. Vous pouvez sélectionner l'une des méthodes suivantes pour créer les clés de signature de l'administrateur :

    • Utilisation du plug-in de l'interface de ligne de commande TKE (Trusted Key Entry) IBM Cloud

      Une fois que vous avez installé et configuré le plug-in de l'interface de ligne de commande TKE en suivant ces instructions, vous pouvez utiliser la commande ibmcloud tke sigkey-add pour créer des clés de signature d'administrateur. Les clés de signature sont stockées dans des fichiers protégés par des mots de passe sur votre poste de travail local. Le chemin d'accès au fichier est spécifié par la variable d'environnement CLOUDTKEFILES.

    • Utilisation d'un service de signature tiers

      Un service de signature tiers peut être utilisé pour créer, stocker et accéder aux clés de signature utilisées par le plug-in CLI TKE et Terraform. Pour activer le service de signature dans le plug-in de l'interface de ligne de commande TKE, vous devez définir la variable d'environnement TKE_SIGNSERV_URL du poste de travail local sur l'URL et le numéro de port où le service de signature est exécuté. Pour activer le service de signature sous Terraform, vous devez définir le paramètre signature_server_url dans le bloc de ressources sur la même valeur.

  3. Créez un fichier de configuration Terraform main.tf dans le même dossier que versions.tf. Dans ce fichier, vous ajoutez les configurations pour effectuer les actions correspondantes.

    Le modèle suivant est un exemple de fichier de configuration pour mettre à disposition une instance Hyper Protect Crypto Services avec 2 unités de chiffrement opérationnelles dans la région us-south. Cette instance est facturée selon le plan de tarification standard et est initialisée avec 2 administrateurs. La clé principale est générée automatiquement dans les unités de chiffrement de récupération qui sont affectées à l'instance. Les clés de signature sont créées à l'aide du plug-in de l'interface de ligne de commande TKE et stockées dans des fichiers protégés locaux.

    L'utilisation de Terraform pour initialiser des instances Hyper Protect Crypto Services est prise en charge dans des régions autres que Madrid (eu-es). Pour plus d'informations sur l'initialisation manuelle, voir Présentation des approches d'initialisation d'instance de service.

    resource ibm_hpcs hpcs {
       location             = "us-south"
       name                 = "test-hpcs"
       plan                 = "standard"
       units                = 2
       signature_threshold  = 1
       revocation_threshold = 1
       admins {
         name  = "admin1"
         key   = "/cloudTKE/1.sigkey"
         token = "sensitive1234"
       }
       admins {
         name  = "admin2"
         key   = "/cloudTKE/2.sigkey"
         token = "sensitive1234"
       }
    }
    
    resource "ibm_iam_user_policy" "policy" {
       ibm_id = "user@ibm.com"
       roles  = ["Manager"]
    
       resources {
         service              = "test-hpcs"
         resource_instance_id = element(split(":", ibm_resource_instance.hpcs.id), 7)
       }
    }
    

    Dans les environnements de production, il est suggéré de fournir les mots de passe pour les fichiers de clés de signature ou les jetons pour le service de signature pendant le processus d'application de Terraform au lieu de les écrire en clair dans le fichier de configuration. Dans ce cas, vous êtes invité à saisir les mots de passe ou les jetons d'authentification lorsque vous exécutez les commandes Terraform. Après l'initialisation de l'instance, les valeurs que vous entrez pour les mots de passe ou les jetons sont stockées dans un fichier .tfstate. Pour plus d'informations sur la sécurisation des données sensibles dans Terraform, voir Données sensibles dans l'état.

    Le tableau suivant répertorie les paramètres pris en charge lorsque vous créez et initialisez une instance de service avec Terraform :

    Tableau 1. Paramètres pris en charge pour la mise à disposition d'une instance de service avec Terraform
    Paramètre Description
    name Obligatoire. Nom de votre instance Hyper Protect Crypto Services.
    location Obligatoire. Abréviation de la région, telle que us-south, qui représente la zone géographique où se trouvent les unités de chiffrement opérationnelles de votre instance de service. Pour plus d'informations, voir Régions et emplacements. Comme les unités de chiffrement de reprise ne sont pas prises en charge dans Madrid (eu-es), vous ne pouvez pas utiliser Terraform pour l'initialisation d'instance dans cette région.
    plan Obligatoire. Plan de tarification de votre instance de service.
    units Obligatoire. Nombre d'unités de chiffrement opérationnelles de votre instance de service. Les valeurs valides sont 2 ou 3.
    failover_units Facultatif. Nombre d'unités de chiffrement de basculement de votre instance de service. Les valeurs valides sont 0, 2 ou 3, et elles doivent être inférieures ou égales au nombre d'unités de chiffrement opérationnelles. Si vous définissez la valeur 0, la haute disponibilité entre régions ne sera pas activée. Actuellement, vous ne pouvez activer cette option que dans la région us-south et us-east. Si vous ne spécifiez pas de valeur, la valeur par défaut est 0.
    service_endpoints Facultatif. Accès réseau à votre instance de service. Les valeurs valides sont public-and-private et private-only. Si vous ne spécifiez pas de valeur, le paramètre par défaut est public-and-private.
    tags Facultatif. Les balises associées à votre instance sont utilisées pour organiser vos ressources. Pour plus d'informations sur les balises, voir Utilisation des balises.
    resource_group_id Facultatif. Groupe de ressources dans lequel vous souhaitez organiser et gérer votre instance de service. Si vous ne spécifiez pas de valeur, le groupe de ressources par défaut est Default.
    signature_threshold Obligatoire. Nombre de signatures d'administrateur requises pour exécuter des commandes d'administration. La valeur valide est dans la plage 1 à 8. Vous devez la définir à au moins 2 pour activer l'authentification de quorum.
    revocation_threshold Obligatoire. Nombre de signatures d'administrateur requises pour supprimer un administrateur après avoir quitté le mode imprint. La valeur valide est dans la plage 1 à 8.
    admins Obligatoire. Liste des administrateurs des unités de chiffrement de l'instance. Vous pouvez définir jusqu'à huit administrateurs et le nombre doit être supérieur ou égal aux seuils que vous spécifiez. Les valeurs suivantes doivent être définies pour chaque administrateur:

    name:
    Nom de l'administrateur. Elle ne doit pas comporter plus de 30 caractères.

    key:

    • Si vous utilisez des fichiers de clés de signature sur le poste de travail local qui sont créés par le plug-in d'interface de ligne de commande TKE et n'utilisent pas de service de signature tiers, indiquez le chemin d'accès absolu et le nom de fichier du fichier de clés de signature à utiliser.
    • Si vous utilisez un service de signature pour fournir des clés de signature, indiquez le nom de la clé de signature en fonction de la définition du service de signature. La chaîne de caractères du nom de clé est ajoutée à un URI envoyé au service de signature et ne doit contenir que des caractères non réservés, comme défini dans la section 2.3 de RFC3986. Jeton

    :

    • Si vous utilisez des fichiers de clés de signature sur le poste de travail local qui sont créés par le plug-in d'interface de ligne de commande TKE et qui n'utilisent pas de service de signature tiers, Indiquez le mot de passe de l'administrateur pour accéder au fichier de clé de signature correspondant.
    • Si vous utilisez un service de signature pour fournir des clés de signature, spécifiez le jeton qui autorise l'utilisation de la clé de signature en fonction de la définition du service de signature.

    Remarque: Le paramètre token est facultatif. Si vous ne spécifiez pas le jeton, vous êtes invité à entrer la valeur du jeton lorsque vous exécutez des commandes Terraform. Après l'initialisation de l'instance, la valeur que vous entrez pour le paramètre de jeton est stockée dans un fichier .tfstate. Pour plus d'informations sur la sécurisation des données sensibles dans Terraform, voir Données sensibles dans l'état.

    signature_server_url Facultatif. URL et numéro de port où le service de signature est exécuté. Si vous utilisez un service de signature tiers pour fournir des clés de signature d'administrateur, vous devez spécifier ce paramètre.

    Si vous gérez plusieurs instances de service dans le fichier main.tf, veillez à définir le même paramètre signature_server_url pour chaque instance. Sinon, vous ne pourrez pas exécuter les actions correctement.

  4. Initialisez l'interface de ligne de commande Terraform avec la commande suivante.

    terraform init
    
  5. Créez un plan d'exécution Terraform avec la commande suivante. Le plan d'exécution Terraform récapitule toutes les actions à exécuter pour créer l'instance Hyper Protect Crypto Services dans votre compte.

    terraform plan
    
  6. Créez et initialisez l'instance Hyper Protect Crypto Services en appliquant Terraform.

    terraform apply
    
  7. Vérifiez si l'instance Hyper Protect Crypto Services est créée et initialisée à partir de la liste de ressourcesIBM Cloud.

  8. Vérifiez que la règle d'accès a été affectée. Pour plus d'informations, voir Examen des accès affectés dans l'interface utilisateur.

Étape suivante ?