IBM Cloud Docs
Configuración de Terraform para Secrets Manager

Configuración de Terraform para Secrets Manager

Terraform en IBM Cloud permite la creación predecible y consistente de servicios IBM Cloud para que puedas construir rápidamente entornos cloud complejos y multinivel que sigan los principios de la Infraestructura como Código (IaC). De forma similar al uso de la IBM Cloud CLI o la API y los SDK, puede automatizar la creación, actualización y eliminación de sus Secrets Manager instancias mediante el HashiCorp (HCL).

¿Busca un Terraform gestionado en la solución IBM Cloud? Pruebe IBM Cloud® Schematics. Con Schematics, puede utilizar el lenguaje de scripts de Terraform con el que está familiarizado. Pero no es necesario que se preocupe por configurar y mantener la línea de mandatos de Terraform y el plug-in de proveedor IBM Cloud. Schematics también proporciona plantillas de Terraform predefinidas que puede instalar fácilmente desde el catálogo de IBM Cloud.

Instalación de Terraform y configuración de recursos para Secrets Manager

Antes de poder crear una autorización utilizando Terraform, asegúrese de que ha completado los pasos siguientes:

  • Asegúrese de que tiene el acceso necesario para crear y trabajar con recursos de Secrets Manager.
  • Instale la CLI de Terraform y configure el plugin de proveedor de IBM Cloud para Terraform. Para obtener más información, consulte la guía de aprendizaje de Iniciación a Terraform en IBM Cloud. El plug-in abstrae las API de IBM Cloud que se utilizan para completar esta tarea.
  • Cree un archivo de configuración de Terraform denominado main.tf. En este archivo, puede definir recursos utilizando HashiCorp Configuration Language. Para más información, consulte la documentación de Terraform.
  1. Después de terminar de crear el archivo de configuración, inicialice la CLI de Terraform. Para obtener más información, consulte Inicialización de directorios de trabajo.

    terraform init
    
  2. Cree una instancia de Secrets Manager utilizando el argumento de recurso ibm_resource_instance en el archivo main.tf.

    • La instancia Secrets Manager del ejemplo siguiente se denomina secrets-manager-london y se crea con el plan de prueba en la región eu-gb. A user@ibm.com se le asigna el rol de administrador en la política de acceso de IAM. Para otras regiones soportadas, consulte Regiones y puntos finales. Las opciones de plan incluyen trial y standard.

       resource "ibm_resource_instance" "sm_instance" {
           name = "Secrets Manager-London"
           service = "secrets-manager"
           plan = "trial"
           location = "eu-gb"
           timeouts {
            create = "60m"
            delete = "2h"
        },
       }
      

      Para ver una lista completa de los atributos soportados, consulte ibm_resource_instance.

    • Opcionalmente, puede crear un origen de datos para recuperar información sobre una instancia Secrets Manager existente desde IBM Cloud, ejecutando el mandato siguiente.

      data "ibm_resource_instance" "sm_resource_instance" {
          name              = "Secrets Manager-London"
          location          = "eu-gb"
          service           = "secrets-manager"
      }
      

    Para obtener una lista completa de los atributos soportados, consulte ibm_resource_instance.

  3. Suministre los recursos desde el archivo main.tf. Para obtener más información, consulte Infraestructura de suministro con Terraform.

    1. Ejecute terraform plan para generar un plan de ejecución de Terraform para obtener una vista previa de las acciones propuestas.

      terraform plan
      
    2. Ejecute terraform apply para crear los recursos definidos en el plan.

      terraform apply
      
  4. Defina valores locales para la instancia de Secrets Manager que se utilizará al crear recursos.

        locals {
            instance_id = data.ibm_resource_instance.sm_resource_instance.guid
            region = data.ibm_resource_instance.sm_resource_instance.location
        }
    
  5. En la lista de recursos IBM Cloud de la interfaz de usuario, seleccione la instancia Secrets Manager que ha creado y anote el ID de instancia.

  6. Verifique que la política de acceso se ha asignado correctamente. Para obtener más información, consulte Revisión del acceso asignado en la consola.

Gestión de desviación de recursos

Con Terraform, puede gestionar de forma segura y previsible el ciclo de vida de la infraestructura utilizando archivos de configuración declarativos. Un reto que existe cuando se gestiona la infraestructura como código es la desviación. La desviación se produce cuando se añaden, suprimen o modifican recursos fuera de la aplicación de cambios de configuración de Terraform. Por ejemplo, cuando un secreto caduca o se rota. Para evitar la desviación, utilice siempre Terraform para gestionar los recursos creados inicialmente con Terraform.

El archivo de estado de Terraform es un registro de todos los recursos que gestiona Terraform. No debe realizar cambios manuales en los recursos controlados por Terraform porque, al hacerlo, el archivo de estado queda desincronizado o "deriva" de la infraestructura real. Si el estado y la configuración no coinciden con la infraestructura, Terraform intenta reconciliar la infraestructura, lo que puede destruir o volver a crear recursos de forma involuntaria.

Cuando utiliza el proveedor de Terraform Secrets Manager, puede producirse una desviación en casos como:

  • Caducidad de secreto
  • Rotación automática secreta
  • Cambios externos en los recursos del Gestor secreto controlados por Terraform

Cuando diseñe el proyecto de Terraform, siga las prácticas recomendadas de Terraform para gestionar cambios de ciclo de vida y desviación para evitar la destrucción o la recreación no intencionadas de los recursos de Secrets Manager.

¿Qué hacer a continuación?

Ahora que ha creado correctamente la primera instancia de servicio de Secrets Manager con Terraform en IBM Cloud, puede revisar los recursos y orígenes de datos de Secrets Manager en el registro de Terraform. También puede revisar cómo gestionar los recursos de Secrets Manager siguiendo los pasos de Terraform que se incluyen en la sección Cómo. Por ejemplo, puede seguir las instrucciones sobre cómo crear secretos arbitrarios utilizando Terraform.