Configuración de Terraform para Secrets Manager
Terraform en IBM Cloud permite la creación predecible y coherente de servicios de IBM Cloud, de modo que puedas construir rápidamente entornos en la nube complejos y de varios niveles que sigan los principios de Infraestructura como código ( IaC ). Al igual que al utilizar la CLI o la API de IBM Cloud y los SDK, puede automatizar la creación, actualización y eliminación de sus instancias de Secrets Manager utilizando 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.
-
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 -
Cree una instancia de Secrets Manager utilizando el argumento de recurso
ibm_resource_instanceen el archivomain.tf.- La instancia Secrets Manager del ejemplo siguiente se denomina
secrets-manager-londony se crea con el plan de prueba en la regióneu-gb. Auser@ibm.comse 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 incluyentrialystandard.
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. - La instancia Secrets Manager del ejemplo siguiente se denomina
-
Suministre los recursos desde el archivo
main.tf. Para obtener más información, consulte Infraestructura de suministro con Terraform.- Ejecute
terraform planpara generar un plan de ejecución de Terraform para obtener una vista previa de las acciones propuestas.
terraform plan- Ejecute
terraform applypara crear los recursos definidos en el plan.
terraform apply - Ejecute
-
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 } -
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.
-
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 su primera instancia del servicio Secrets Manager con Terraform en IBM Cloud, puede continuar con los siguientes pasos según su plan:
Para los planes de prueba y estándar, puede consultar los recursos y las fuentes de datos de Secrets Manager en elregistro 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, puedes seguir las instrucciones sobre cómo crear secretos arbitrarios utilizando Terraform.
En el caso del plan Vault Dedicated, una vez que hayas aprovisionado tu instancia de Vault Dedicated, puedes utilizar el proveedor de Terraform de HashiCorp Vault para gestionar tu instancia de Vault. Consulte Obtener detalles de la instancia con Terraform y Generar un token de administrador con Terraform para saber cómo obtener el punto final de la API de Vault y el token de administrador de Vault.
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.