Configuration de Terraform pour Secrets Manager
Terraform sur IBM Cloud permet la création prévisible et cohérente de services IBM Cloud afin que vous puissiez créer rapidement des environnements cloud complexes et multi-niveaux qui suivent les principes de l'Infrastructure as Code (IaC). Comme pour l'utilisation de la CLI ou de l'API et des SDK, vous pouvez automatiser la création, la mise à jour et la suppression de vos instances Secrets Manager en utilisant le HashiCorp Configuration Language (HCL).
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. Toutefois, vous n'avez pas à vous soucier 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 facilement installer à partir du catalogue IBM Cloud.
Installation de Terraform et configuration des ressources pour Secrets Manager
Avant de créer une autorisation à l'aide de Terraform, veillez à effectuer les étapes suivantes:
- Vérifiez que vous disposez des droits d'accès requis pour créer et utiliser les ressources Secrets Manager.
- Installez l'interface de ligne de commande Terraform et configurez le plug-in IBM Cloud Provider pour Terraform. Pour plus d'informations, voir le tutoriel Initiation à Terraform sur IBM Cloud. Ce plug-in résume les API IBM Cloud utilisées pour effectuer cette tâche.
- Créez un fichier de configuration Terraform nommé
main.tf
. Dans ce fichier, vous définissez des ressources à l'aide du langage de configuration HashiCorp. Pour plus d'informations, voir la documentation Terraform.
-
Une fois que vous avez terminé de générer votre fichier de configuration, initialisez l'interface de ligne de commande Terraform. Pour plus d'informations, voir Initialisation des répertoires de travail.
terraform init
-
Créez une instance Secrets Manager en utilisant l'argument de ressource
ibm_resource_instance
dans votre fichiermain.tf
.-
L'instance Secrets Manager de l'exemple suivant s'appelle
secrets-manager-london
et est créée avec le plan d'essai dans la régioneu-gb
. Le rôle d'administrateur est affecté àuser@ibm.com
dans la règle d'accès IAM. Pour les autres régions prises en charge, voir Régions et noeuds finaux. Les options de plan incluenttrial
etstandard
.resource "ibm_resource_instance" "sm_instance" { name = "Secrets Manager-London" service = "secrets-manager" plan = "trial" location = "eu-gb" timeouts { create = "60m" delete = "2h" }, }
Pour afficher la liste complète des attributs pris en charge, voir
ibm_resource_instance
. -
Vous pouvez éventuellement créer une source de données pour extraire des informations sur une instance Secrets Manager existante à partir de IBM Cloud, en exécutant la commande suivante.
data "ibm_resource_instance" "sm_resource_instance" { name = "Secrets Manager-London" location = "eu-gb" service = "secrets-manager" }
Pour obtenir la liste complète des attributs pris en charge, voir
ibm_resource_instance
. -
-
Mettez à disposition les ressources à partir du fichier
main.tf
. Pour plus d'informations, voir Mise à disposition d'une infrastructure avec Terraform.-
Exécutez
terraform plan
pour générer un plan d'exécution Terraform afin de prévisualiser les actions proposées.terraform plan
-
Exécutez
terraform apply
pour créer les ressources définies dans le plan.terraform apply
-
-
Définissez des valeurs locales pour votre instance Secrets Manager à utiliser lorsque vous créez des ressources.
locals { instance_id = data.ibm_resource_instance.sm_resource_instance.guid region = data.ibm_resource_instance.sm_resource_instance.location }
-
Dans la liste de ressources IBM Cloud de l'interface utilisateur, sélectionnez l'instance Secrets Manager que vous avez créée et notez l'identifiant de l'instance.
-
Vérifiez que la règle d'accès a été affectée. Pour plus d'informations, voir Vérification de l'accès affecté à la console.
Gestion de la dérive des ressources
Avec Terraform, vous pouvez gérer en toute sécurité et de manière prévisible le cycle de vie de votre infrastructure à l'aide de fichiers de configuration déclaratifs. La dérive est un défi qui existe lorsque vous gérez l'infrastructure en tant que code. La dérive se produit lorsque des ressources sont ajoutées, supprimées ou modifiées en dehors de l'application des modifications de configuration Terraform. Par exemple, lorsqu'un secret expire ou fait l'objet d'une rotation. Pour éviter la dérive, utilisez toujours Terraform pour gérer les ressources initialement créées avec Terraform.
Le fichier d'état Terraform est un enregistrement de toutes les ressources gérées par Terraform. Vous ne devez pas apporter de modifications manuelles aux ressources contrôlées par Terraform car, ce faisant, le fichier d'état devient désynchronisé ou "dérive", à partir de l'infrastructure réelle. Si votre état et votre configuration ne correspondent pas à votre infrastructure, Terraform tente de réconcilier votre infrastructure, ce qui peut involontairement détruire ou recréer des ressources.
Lorsque vous utilisez le fournisseur Terraform Secrets Manager, une dérive peut se produire dans les cas suivants:
- Expiration du secret
- Rotation automatique des secrets
- Modifications externes apportées aux ressources de Secret Manager contrôlées par Terraform
Lorsque vous concevez votre projet Terraform, suivez les meilleures pratiques de Terraform pour la gestion de la dérive et des modifications du cycle de vie afin d'éviter la destruction ou la recréation non intentionnelles des ressources Secrets Manager.
Étape suivante ?
Maintenant que vous avez créé votre première instance de service Secrets Manager avec Terraform sur IBM Cloud, vous pouvez passer en revue les ressources et les sources de données Secrets Manager dans le registre Terraform. Vous pouvez également consulter la procédure de gestion de vos ressources Secrets Manager en suivant les étapes Terraform incluses dans la section How to. Par exemple, vous pouvez suivre les instructions de création de secrets arbitraires à l'aide de Terraform.