Configuración de Terraform para Hyper Protect Crypto Services con Unified Key Orchestrator

Terraform en IBM Cloud® permite un suministro predecible y coherente de servicios de IBM Cloud para que pueda crear rápidamente entornos de nube complejos y de varios niveles siguiendo los principios de Infraestructura como Código (IaC). De forma similar al uso de la CLI de IBM Cloud o la API y los SDK, puede automatizar el suministro, la actualización y la supresión de sus instancias de Hyper Protect Crypto Services utilizando el lenguaje de configuración de HashiCorp (HCL).

Este tema sólo describe cómo configurar Terraform para Hyper Protect Crypto Services con Unified Key Orchestrator.

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

Antes de comenzar, asegúrese de que tiene el acceso necesario para crear y trabajar con recursos de Hyper Protect Crypto Services.

Ejemplo: Suministro e inicialización de instancias de servicio mediante Terraform

Complete los pasos siguientes para crear e inicializar una instancia de Hyper Protect Crypto Services utilizando Terraform:

  1. Instale la CLI de Terraform y configure el plugin de proveedor de IBM Cloud para Terraform siguiendo la Guía de iniciación de Terraform en IBM Cloud.

    El plugin abstrae las API de IBM Cloud API que se utilizan para suministrar, actualizar o suprimir las instancias de servicio de Hyper Protect Crypto Services y los recursos. Las versiones preferidas de Terraform son 0.13.x, 0.14.x y 0.15.x. En el archivo versions.tf, debe especificar el parámetro version en 1.29.0.

  2. Configure las claves de firma del administrador de unidades criptográficas. Puede seleccionar uno de los modos siguientes para crear claves de firma de administrador:

    • Utilización del plugin de la CLI de TKE (Trusted Key Entry) de IBM Cloud

      Después de instalar y configurar el plugin de la CLI de TKE siguiendo estas instrucciones, puede utilizar el mandato ibmcloud tke sigkey-add para crear claves de firma de administrador. Las claves de firma se almacenan en archivos protegidos mediante contraseñas en su estación de trabajo local. La vía de acceso de archivo la especifica la variable de entorno CLOUDTKEFILES.

    • Utilización de un servicio de firma de terceros

      Se puede utilizar un servicio de firma de terceros para crear, almacenar y acceder a las claves de firma que utilizan tanto el plug-in de CLI de TKE como Terraform. Para habilitar el servicio de firma en el plugin de la CLI de TKE, debe establecer la variable de entorno TKE_SIGNSERV_URL de la estación de trabajo local en el URL y el número de puerto en el que se está ejecutando el servicio de firma. Para habilitar el servicio de firma en Terraform, debe establecer el parámetro signature_server_url del bloque de recursos en el mismo valor.

  3. Cree un archivo de configuración de Terraform main.tf en la misma carpeta que versions.tf. En este archivo, añade las configuraciones para realizar las acciones correspondientes.

    La plantilla siguiente es un archivo de configuración de ejemplo para suministrar una instancia de Hyper Protect Crypto Services instancia con 2 unidades criptográficas operativas en la región us-south. Esta instancia se carga según el plan de precios Unified Key Orchestrator y se inicializa con 2 administradores. La clave maestra se genera automáticamente en las unidades criptográficas de recuperación que se han asignado a la instancia. Las claves de firma se crean utilizando el plugin de la CLI de TKE y se almacenan en archivos protegidos locales.

    Puesto que las unidades criptográficas de recuperación están disponibles actualmente en regiones soportadas distintas de Madrid (eu-es), el uso de Terraform para inicializar las instancias de Hyper Protect Crypto Services no está soportado en esta región. Para obtener más información sobre la inicialización manual, consulte Introducción a los métodos de inicialización de instancias de servicio.

    resource ibm_hpcs hpcs {
       location             = "us-south"
       name                 = "test-hpcs"
       plan                 = "hpcs-hourly-uko"
       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)
       }
    }
    

    En entornos de producción, se recomienda proporcionar las contraseñas para los archivos de claves de firma o las señales para el servicio de firma durante el proceso de aplicación de Terraform en lugar de escribirlo en texto sin formato en el archivo de configuración. En este caso, se le solicitará que especifique las contraseñas o señales de autenticación cuando ejecute mandatos de Terraform. Después de la inicialización de la instancia, los valores que especifique para las contraseñas o las señales se almacenan en un archivo .tfstate. Para obtener más información sobre la protección de datos confidenciales en Terraform, consulte Datos confidenciales en estado.

    La tabla siguiente lista los parámetros soportados cuando crea e inicializa una instancia de servicio con Terraform:

    Tabla 1. Parámetros soportados para el suministro de una instancia de servicio con Terraform
    Parámetro Descripción
    name Obligatorio. El nombre de su instancia de Hyper Protect Crypto Services.
    location Obligatorio. La abreviatura de región, tal como us-south, que representa el área geográfica en la que se encuentran las unidades criptográficas operativas de su instancia de servicio. Para obtener más información, consulte Regiones y ubicaciones. Como las unidades criptográficas de recuperación no están disponibles en Madrid (eu-es), no puede utilizar Terraform para la inicialización de la instancia en la región eu-es.
    plan Obligatorio. El plan de precios para su instancia de servicio.
    units Obligatorio. El número de unidades criptográficas operativas para su instancia de servicio. Los valores válidos son 2 o 3
    failover_units No aplicable. La alta disponibilidad entre regiones no está soportada actualmente para Unified Key Orchestrator.
    service_endpoints No aplicable. El valor predeterminado es public-and-private.
    tags Opcional. Las etiquetas asociadas a la instancia se utilizan para organizar los recursos. Para obtener más información sobre las etiquetas, consulte Trabajar con etiquetas.
    resource_group_id Opcional. El grupo de recursos en el que desea organizar y gestionar la instancia de servicio. Si no especifica el valor, el grupo de recursos predeterminado es Default.
    signature_threshold Obligatorio. El número de firmas de administrador necesarias para ejecutar mandatos administrativos. El valor válido está en el rango de 1 a 8. Debe establecerlo en al menos 2 para habilitar la autenticación de quórum.
    revocation_threshold Obligatorio. El número de firmas de administrador necesarias para eliminar un administrador después de salir de la modalidad de impresión. El valor válido está en el rango de 1 a 8.
    admins Obligatorio. La lista de administradores para las unidades criptográficas de la instancia. Puede configurar hasta ocho administradores y el número debe ser igual o mayor que los umbrales que especifique. Es necesario establecer los valores siguientes para cada administrador:

    nombre:
    Nombre del administrador. No debe tener más de 30 caracteres de longitud.

    clave:

    • Si está utilizando archivos de claves de firma en la estación de trabajo local creados por el plugin de CLI TKE y no está utilizando un servicio de firma de terceros, especifique la vía de acceso absoluta y el nombre de archivo del archivo de claves de firma que se va a utilizar.
    • Si utiliza un servicio de firma para proporcionar claves de firma, especifique el nombre de la clave de firma en función de la definición del servicio de firma. La serie de caracteres para el nombre de clave se añade a un URI que se envía al servicio de firma y debe contener sólo caracteres no reservados tal como se define en la sección 2.3 de RFC3986.

    señal:

    • Si está utilizando archivos de claves de firma en la estación de trabajo local creados por el plugin de CLI TKE y no está utilizando un servicio de firma de terceros, especifique la contraseña del administrador para acceder al archivo de claves de firma correspondiente.
    • Si utiliza un servicio de firma para proporcionar claves de firma, especifique la señal que autoriza el uso de la clave de firma, en función de la definición del servicio de firma.

    Nota: El parámetro de señal es opcional. Si no especifica la señal, se le solicitará que especifique el valor de la señal cuando ejecute mandatos de Terraform. Después de inicializar la instancia, el valor que especifique para el parámetro token se almacena en un archivo .tfstate. Para obtener más información sobre la protección de datos confidenciales en Terraform, consulte Datos confidenciales en estado.

    signature_server_url Opcional. El URL y el número de puerto en el que se está ejecutando el servicio de firma. Si utiliza un servicio de firma de terceros para proporcionar claves de firma de administrador, debe especificar este parámetro.

    Si gestiona varias instancias de servicio en el archivo main.tf, asegúrese de que establece el mismo parámetro signature_server_url para cada instancia. De lo contrario, no podrá realizar las acciones correctamente.

  4. Inicialice la CLI de Terraform con el mandato siguiente.

    terraform init
    
  5. Cree un plan de ejecución de Terraform con el mandato siguiente. El plan de ejecución de Terraform resume todas las acciones que se deben ejecutar para crear la instancia de Hyper Protect Crypto Services en su cuenta.

    terraform plan
    
  6. Cree e inicialice la instancia de Hyper Protect Crypto Services aplicando Terraform.

    terraform apply
    
  7. Compruebe si la instancia de Hyper Protect Crypto Services se ha creado e inicializado desde la lista de recursos deIBM Cloud.

  8. 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 interfaz de usuario.

¿Qué hacer a continuación?

Para obtener más información sobre cómo utilizar Terraform para gestionar instancias de Hyper Protect Crypto Services con Unified Key Orchestrator, consulte la siguiente documentación de Terraform: