Configuración de Terraform para Secrets Manager

Terraform en IBM Cloud permite crear de forma predecible y coherente servicios de « IBM Cloud », lo que te permite desarrollar rápidamente entornos en la nube complejos y de varios niveles que siguen los principios de «Infraestructura como código» ( IaC ). Al igual que al utilizar la CLI de « IBM Cloud » o la API y los SDK, puedes automatizar la creación, actualización y eliminación de tus instancias de « Secrets Manager » mediante el lenguaje de configuración de « HashiCorp » (HCL).

¿Busca un Terraform gestionado en la solución IBM Cloud? Pruebe IBM Cloud® Schematics. Con Schematics, puede utilizar el lenguaje de scripting de Terraform con el que esté familiarizado. Pero no tiene que preocuparse de configurar y mantener la línea de comando de Terraform y el complemento IBM Cloud Provider. Schematics también proporciona plantillas predefinidas de Terraform que puede instalar fácilmente desde el catálogo 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 obtener más información, consulta 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
    
    1. 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, selecciona la instancia « Secrets Manager » que has creado y anota el ID de la 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 esté diseñando su proyecto Terraform, siga las mejores prácticas de Terraform para gestionar la deriva y los cambios en el ciclo de vida para evitar la destrucción o recreación involuntaria 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.

Para implantaciones de producción, considere el IBM Cloud® Secrets Manager que proporciona configuraciones listas para la empresa. Más información sobre los módulos de Terraform IBM.