¿Te suena Terraform? Seguro que sí, ya que es una de las herramientas de Infraestructura como Código (IaaC) más utilizadas en la industria en estos momentos. ¿No has oído hablar de ella? ¿Qué te parecen las herramientas de HashiCorp? HashiCorp es una empresa de desarrollo de software que crea herramientas para procesos DevOps y computación en la nube.
Quédate aquí mientras te llevo a través de todas las herramientas de la nube que ofrece HashiCorp.
4 Herramientas de HashiCorp y sus funciones
1. Terraform
Empezando por Terraform, esta herramienta se ha convertido en una herramienta extremadamente popular para construir IaaC, debido a que sirve a más de 100 proveedores de nube. En otras palabras, si tu proveedor tiene una API, entonces debería funcionar con Terraform.
Terraform es un lenguaje imperativo que es muy útil para usted y su equipo. Al ser un lenguaje imperativo, elimina gran parte del trabajo duro de la ecuación. En caso de que no lo sepas, un lenguaje imperativo tomará lo que está escrito y hará todos los pasos necesarios para que esa infraestructura esté en el estado que tú le digas. Si solicitas crear una vm de linux, hará todo el trabajo en el lado del proveedor (AWS, Azure) para hacerlo.
Ahora, echemos un vistazo a lo que Terraform puede hacer por ti.
Mantener el estado
Terraform es único porque tiene un estado y ese estado se puede mantener en una nube o en un servidor. Esto significa que tiene una única fuente de verdad y muchos ingenieros pueden trabajar con el mismo estado. El estado se actualizará una vez que hayas hecho tus cambios y ejecutes el comando «terraform apply». El estado se actualizará y pasará los cambios al proveedor que, a su vez, realizará los cambios solicitados en la infraestructura.
Reutilizar código con módulos
Además, Terraform le ofrece una gran manera de empaquetar y reutilizar el código común en forma de módulos. Los módulos de Terraform son similares a las funciones o métodos de los lenguajes de programación. Presentan una interfaz típica para crear recursos proporcionando entradas y devolviendo salidas. Al crear módulos, es fácil duplicar los recursos o compartir los módulos con otros equipos de su organización.
En resumen, Terraform tiene un montón de grandes características que lo convierten en una de las mejores herramientas de HashiCorp. Es una de las herramientas de IaaC mejor valoradas en la industria ahora mismo porque es fácil de usar y proporciona mucha eficiencia añadida a tus cargas de trabajo de DevOps.
A continuación, vamos a sumergirnos en Vault, lo que es y lo que hace.
2. Vault
Pregunta: ¿Dónde guardas tus secretos? La respuesta es sencilla: En una cámara acorazada. Vault fue diseñado para proteger la información sensible en entornos de baja confianza. Puede actuar como cifrado, y también puede gestionar secretos y ofrecer acceso basado en la identidad. Vault es capaz de almacenar todos tus tokens de acceso, contraseñas, certificados, claves de cifrado y otros secretos. Esto puede hacerse mediante la interfaz de usuario de Vault, el terminal o la API.
Ahora que tienes una idea de lo que es Vault, vamos a tocar algunas de sus funciones.
Gestión de secretos de forma sencilla
La principal especialidad de Vault es almacenar secretos. También puede almacenar cualquier tipo de secreto que desee con tokens de acceso, claves API, nombres de usuario y contraseñas. Puedes controlar fácilmente el acceso a estos secretos. ¿Necesitas rotar las claves? Eso no es un problema. A veces puede ser una tarea ardua, pero Vault lo hace fácil. ¿Se ha ido un empleado y necesitas revocar el acceso de inmediato? Ya está hecho. Vault te da un control total sobre tus secretos y sobre quién tiene acceso a ellos.
Encriptación como servicio (EaaS)
Vault ofrece el cifrado como servicio (EaaS), cifrando los datos en tránsito con TLS y en reposo, utilizando el cifrado CBC AES de 256 bits. Esto protege los datos sensibles del acceso no autorizado cuando viajan a través de su red. También los protege cuando están almacenados en la nube o en centros de datos locales.
Si tiene una gestión de claves centralizada, es fácil actualizar y desplegar nuevas claves en toda la infraestructura distribuida.
El acceso basado en la identidad controla quién puede utilizarlo
Vault gestiona la identidad tanto de personas como de máquinas. Para los usuarios humanos, la identidad se gestiona con el control de acceso basado en roles (RBAC). El RBAC permite conceder o restringir el acceso en función del rol del usuario, y este RBAC funciona en base al RBAC secreto que el usuario actual está utilizando.
Para las máquinas, es un proceso diferente: se conectan con un secreto diferente o apuntan a un servidor diferente. Vault ayuda a crear tokens de acceso temporales que pueden ser revocados inmediatamente si se encuentra alguna actividad sospechosa o una brecha real en la red. También puede generar secretos a la carta que se asignan y revocan inmediatamente después de realizar el trabajo.
En definitiva, Vault es una gran herramienta para gestionar y almacenar secretos, así como para utilizar RBAC para sistemas y usuarios, y por último, pero no menos importante, para utilizar el cifrado en tránsito con TLS y en el almacenamiento con el cifrado AES de 256 bits CBC. Para poner todo en orden, tomemos un tiempo para revisar Consul, la malla de servicios de HashiCorp.
3. Consul
Consul es la tercera de las herramientas de HashiCorp que veremos, y es una malla de servicios que permite a los ingenieros de DevOps comprobar la salud de las aplicaciones, almacenar claves, conectar bases de datos y proporcionar el descubrimiento de servicios, todo desde el principio. Esencialmente, Consul es una aplicación muy ordenada que proporciona varios servicios.
Comprobación de la salud de forma sencilla
El demonio del agente de Consul ejecuta una comprobación de la salud de todos los servidores conectados y proporciona actualizaciones en el panel de control. No es necesaria ninguna configuración. Esta es una forma muy útil de hacer un seguimiento del rendimiento de sus servidores. Además, con el DNS round-robin combinado con la comprobación de salud, puede deshacerse de los equilibradores de carga internos al utilizar Consul.
Almacenamiento de claves que no es confuso
Consul incluye un almacenamiento de claves básico, pero si estás usando Vault junto con Consul, entonces no necesitas el almacenamiento de claves de Consul ya que Vault es el ganador obvio. Sin embargo, si no estás usando Vault, entonces Consul tiene cubierto tu almacenamiento de claves.
Conexiones de bases de datos rápidas
Puede definir múltiples centros de datos, donde cada centro de datos tiene su propio almacén de datos de clave/valor (KV). Esta es una poderosa manera de almacenar sus KVs no productivos por separado de su almacén de KVs productivos.