En el mundo actual impulsado por los datos, la gestión segura de credenciales de bases de datos es una preocupación primordial para las organizaciones de todos los tamaños. Como nos esforzamos por ofrecerle soluciones de vanguardia, estamos encantados de anunciar el lanzamiento de nuestro plugin HashiCorp Vault para la gestión de credenciales de base de datos Capella. 

La incorporación de HashiCorp Vault a Capella ofrece un enfoque polifacético de la seguridad de las bases de datos:

    • Una de las principales ventajas es la gestión de usuarios externa y centralizada, en la que las identidades de usuario y los permisos de acceso se gestionan de forma unificada y segura. Esto garantiza que el acceso a sus bases de datos esté controlado, auditado y sea coherente en toda la organización. 
    • Las capacidades de Vault se extienden a la auditoría del uso de credenciales, proporcionando registros detallados e información sobre quién accedió a sus bases de datos, cuándo y con qué propósito. Este nivel de transparencia es inestimable para los equipos de cumplimiento y seguridad, ya que les permite rastrear el acceso a los datos y cumplir los requisitos normativos con eficacia. 
    • La automatización de Vault brilla con la rotación y revocación automática de credenciales, reduciendo el riesgo de acceso no autorizado debido a credenciales obsoletas o comprometidas. 
    • Por último, Vault permite la emisión de credenciales temporales dinámicas, que conceden a los usuarios un acceso limitado en el tiempo a las bases de datos. Esto no sólo mejora la seguridad, sino que también simplifica la gestión de usuarios al reducir la necesidad de credenciales a largo plazo. Juntas, estas funciones transforman la forma de gestionar el acceso a las bases de datos, haciéndola más segura, eficiente y conforme a la normativa.

Este artículo sirve como guía para ayudarte a aprovechar las capacidades de nuestro plugin de forma efectiva. Te guiaremos a través de todo el proceso, desde la configuración de un contenedor local Docker Vault hasta la gestión de credenciales dinámicas sin esfuerzo. Al final de este tutorial, estarás bien equipado para mejorar la seguridad de tu base de datos con facilidad.

Sumerjámonos en el mundo de la gestión segura de credenciales de bases de datos y desbloqueemos el potencial de nuestro plugin HashiCorp Vault para Capella

Paso 1: Preparativos

Antes de entrar en detalles, es esencial sentar las bases. En este paso inicial, le guiaremos a través de los preparativos esenciales necesarios para sentar las bases de una integración perfecta. Desde la creación de una clave API hasta la configuración de una base de datos sandbox y la recopilación de detalles organizativos cruciales, estos preparativos garantizan que tengas todo lo que necesitas para completar la configuración del plugin.

Crear una clave API de Capella

Comience por asegurarse de que dispone de las claves API necesarias. Vaya a la configuración de su organización y diríjase a la sección Sección Clave API. Aquí, genere una clave de la Versión 4 con el rol de propietario de la organización. Esta clave será fundamental en nuestro proceso de gestión de credenciales. La razón para el rol de dueño de la organización es que rotaremos la credencial raíz más adelante.

Create a Capella API Key

Descifrar credenciales de clave API

Tendremos que proporcionar el Capella CLAVE_ACCESO y el CLAVE_SECRETA cuando configuremos el plugin de la bóveda. Obtendremos esto de la clave API que generamos anteriormente. 

    • Descargar la clave
    • Haga clic dos veces en el botón de copia al final del campo API Key Token. 

Decode API Key Credentials

    • Decodifícalo usando base64

La clave descodificada tendrá dos valores separados por punto y coma:

El primero es su CLAVE_ACCESO y el segundo es su CLAVE_SECRETA. Lo necesitará más adelante cuando configure el plugin.

Configurar una base de datos Sandbox

Para facilitar esta demostración, configure una base de datos sandbox. Esto servirá como un entorno seguro para probar nuestro plugin.

Crear un cubo y un ámbito

También crearemos un cubo bóveda-cubo-1 y un ámbito bóveda-cubo-1-ámbito-1 dentro de nuestro clúster, que se utilizará al crear credenciales dinámicas más adelante.

Create a Bucket and Scope

Recopilar información esencial

Para la configuración del plugin, necesitará el ID de su organización, el ID del proyecto y el ID del clúster. La forma más sencilla de obtener estos datos es copiarlos de la URL y guardarlos en un archivo de texto para consultarlos.

    • oid es su organización Id
    • projectId es el identificador de su proyecto
    • dbid es el id de su base de datos

Gather Essential Information

Paso 2: Configurar la bóveda

Ahora, empecemos con el aspecto técnico. Tenemos dos opciones para ejecutar la demo. 

    1. Para ejecutar la demo, clona el repositorio y utiliza el Dockerfile que contiene. Este Dockerfile incluye los pasos para compilar el plugin desde el código fuente. 
    2. Como alternativa, descargue la versión binaria del plugin desde la página de versiones y utilícela en su instalación de Vault.

Proporcionaré instrucciones para ambos métodos. Por favor, elija la ruta que se adapte a sus necesidades y siga los pasos correspondientes. No es necesario ejecutar ambos métodos

Opción 1: Utilice el archivo Dockerfile del repositorio de plugins

Comienza clonando nuestro repositorio de GitHub:

Este repositorio contiene el código fuente del plugin, que necesitaremos para construir el plugin. Para esta demostración vamos a construir una imagen Docker utilizando la imagen de la bóveda de Hashicorp. El plugin será construido durante el proceso de creación de la imagen Docker. Este método sólo debe utilizarse para fines de demostración. Por favor, siga las instrucciones de Hashicorp sobre cómo instalar el plugin y utilizarlo en su entorno.

Use the Dockerfile in the plugin repository

Ahora que la imagen ha sido construida, vamos a lanzar un servidor Vault en un contenedor Docker, configurado para el modo de desarrollo. Esto nos permite evitar ciertas características de seguridad para facilitar las pruebas. El servidor de Vault escuchará en el puerto 8200 y se inicializará con un token raíz configurado como contraseña. También habilitaremos el registro a nivel de depuración para capturar información detallada durante nuestras pruebas.

Vault server will listen on port 8200

Vaya directamente al paso 3, sin pasar por la opción 2.

Opción 2: Descargar el plugin binario

Para empezar, descargue el plugin de la página página de comunicados. En el momento de escribir este artículo, la última versión es la 1.0.0, y como estoy usando Linux, procederé a descargarla. la versión linux

Asegúrese de descargar la versión adecuada para la arquitectura de su ordenador. 

Como buena práctica de seguridad, es importante validar la integridad del archivo. Por lo tanto, descarga también las sumas de comprobación de los binarios, que puedes encontrar en la página de versiones.

Localice dentro del archivo de texto la suma de comprobación correspondiente al archivo que ha descargado.

Locate the checksum

Generar la suma de comprobación y validar el resultado

checksum comparison indicates a match

La comparación de la suma de comprobación indica una coincidencia, lo que confirma que la validación del archivo se ha realizado correctamente.

Ahora es seguro extraer el contenido del archivo zip y recuperar el plugin de la bóveda. 

En este punto, el binario del plugin vault debería estar en nuestra carpeta. El paso final es generar el hash de este binario, que es necesario para registrar el plugin con Vault más tarde. Es importante tener en cuenta que este hash es para el propio binario, no para el archivo zip descargado anteriormente.

La ejecución de este comando debería haber dado como resultado la creación de un nuevo archivo que contiene el hash del plugin de la bóveda.

También necesitaremos crear una configuración de bóveda que defina dónde reside el plugin.

 El último paso consiste en crear una política de contraseñas personalizada que refleje la política utilizada en Capella.

Una vez descargado el plugin vault y generado su hash, iniciaremos ahora un servidor Vault en un contenedor Docker, configurado en modo de desarrollo. Esta configuración nos permite eludir algunas características de seguridad para realizar pruebas simplificadas. 

El servidor Vault escuchará en el puerto 8200 y se inicializará con un token raíz establecido en contraseña. También habilitaremos el registro a nivel de depuración para capturar información detallada durante nuestras pruebas. También es importante tener en cuenta que tendremos que montar nuestro plugin y sha como un volumen:

Vault server will listen on port 8200

Paso 3: Activar los secretos de la base de datos

Vault ya está funcionando en modo de desarrollo. A continuación habilitaremos el motor de secretos de base de datos de Vault. Este motor permite a Vault generar credenciales dinámicas para bases de datos, y es crucial para que nuestro plugin funcione correctamente. Al habilitarlo, estamos preparando el escenario para que Vault gestione las credenciales de nuestra base de datos Capella. Abre una nueva terminal y ejecuta lo siguiente:

Enable Database Secrets

Paso 4: Registrar el plugin

Registraremos nuestro plugin personalizado en Vault. Esto implica calcular el hash SHA-256 del binario del complemento para garantizar su integridad. Vault utiliza este hash para verificar que el plugin no ha sido manipulado cuando es invocado. Una vez calculado el hash, lo utilizaremos para registrar el complemento.

Register the Plugin

Ahora el plugin se ha registrado correctamente.

Paso 5: Cargar la política de contraseñas

Cargaremos en Vault una política de contraseñas que se ajuste a los requisitos de Capella en materia de contraseñas. Esto asegura que cualquier credencial generada por Vault para Capella cumplirá con los estándares de seguridad de Capella. La política se definirá en un archivo HashiCorp Configuration Language (HCL). Este archivo se añadió a la imagen Docker durante la compilación.

Upload Password Policy

Paso 6: Crear configuración de base de datos

Configuraremos Vault para que se conecte a nuestro clúster de Capella. Esto implica especificar varios parámetros como la URL base para la API en la nube de Capella, el ID de la organización, el ID del proyecto y el ID del clúster. También proporcionaremos la clave de acceso a Capella que generamos anteriormente. Esta configuración permite a Vault interactuar con nuestro clúster de Capella y gestionar las credenciales de forma dinámica. 

Create Database Config

Ahora el plugin de Capella está configurado y es capaz de hablar con Capella. 

Paso 7: Girar las credenciales raíz

Llevaremos a cabo una de las mejores prácticas de seguridad rotando las credenciales raíz de alto privilegio que Vault utiliza para gestionar la base de datos de Capella. Esto minimiza el riesgo asociado con cualquier exposición potencial de estas credenciales.

Rotate Root Credentials

Paso 8: Crear un rol dinámico

A continuación definiremos un rol dinámico en Vault. Este rol tendrá un conjunto de permisos, definidos en formato JSON, que especifican qué tipo de operaciones de base de datos están permitidas. Por ejemplo, concederemos lector_de_datos y escritor_datos en un bucket y ámbito específicos de nuestro clúster Capella. Este rol dinámico se utilizará para generar credenciales con estos permisos.

Create a dynamic role

Paso 9: Crear nuevas credenciales

Por último, generaremos un nuevo conjunto de credenciales de base de datos utilizando el rol dinámico que hemos creado. Estas credenciales son temporales y se adherirán a la configuración TTL (Time-To-Live) que hemos configurado. Esta es la culminación de nuestra configuración, demostrando cómo Vault puede gestionar dinámicamente las credenciales de base de datos de Capella.

create new credentials

Volvamos a Capella para comprobar si nuestras credenciales también se muestran en la interfaz de usuario.

manage Capella database credentials

Conclusión

En conclusión, nuestro complemento HashiCorp Vault para la gestión de credenciales de base de datos de Capella abre nuevos horizontes en la mejora de la seguridad de su infraestructura de base de datos. A través de este tutorial paso a paso, ha obtenido información valiosa para configurar y utilizar el plugin de manera efectiva.

Al adoptar esta solución, está simplificando el proceso de gestión de credenciales de bases de datos. Te animamos a explorar todo el potencial de nuestro plugin y esperamos tus experiencias y comentarios.

La gestión de credenciales de bases de datos segura, eficaz y fácil de usar está ahora al alcance de su mano. Dé hoy mismo el primer paso hacia un entorno de bases de datos más seguro.

Si está interesado en obtener más información sobre cómo puede crear sus propias aplicaciones modernas de misión crítica en Couchbase, pruebe nuestro 30 días de prueba gratuita de Couchbase Capella. Y para ver más de lo que nuestros clientes están haciendo con Couchbase, echa un vistazo a nuestro página de estudios de casos de clientes!

Autor

Publicado por Istvan Orban

Istvan Orban es el Principal Product Manager de Couchbase y vive en el Reino Unido. Istvan tiene una amplia experiencia como ingeniero de software de pila completa, líder de equipo e ingeniero Devops. Su enfoque principal es la seguridad y Single Sign On. Istvan ha liderado varios proyectos a gran escala en sus 20 años de carrera profesional.

Dejar una respuesta