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.
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.
-
- Decodifícalo usando base64
1 |
echo "pegue su clave aquí" | base64 --descodificar |
La clave descodificada tendrá dos valores separados por punto y coma:
1 |
HLkOuJult1wb11S2eBBm2C2H0Bm1tHVe:d%1VRg34zdrOeSwgLljG0RGnJPxqeFecK#gfhVCyC%mwZ3gTf1wjJjO4vwPcRpRT |
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.
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
Paso 2: Configurar la bóveda
Ahora, empecemos con el aspecto técnico. Tenemos dos opciones para ejecutar la demo.
-
- 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.
- 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:
1 |
git clonar https://github.com/couchbasecloud/bóveda-plugin-base de datos-couchbasecapella |
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.
1 2 |
cd bóveda-plugin-base de datos-couchbasecapella docker construya -t bóveda:con-cb-capella-plugin . |
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.
1 2 3 4 5 6 7 |
docker ejecute --tapa-añada=IPC_LOCK --nombre="bóveda_de_cama" --rm \ -e VAULT_DEV_LISTEN_ADDRESS=0.0.0.0:8200 \ -e VAULT_ADDR=http://0.0.0.0:8200 \ -p 8200:8200 \ bóveda:con-cb-capella-plugin \ bóveda servidor -dev -dev-raíz-ficha-id="contraseña" \ -registro-nivel=depurar -config=/bóveda/config/config.json |
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.
1 |
rizo -L https://github.com/couchbasecloud/bóveda-plugin-base de datos-couchbasecapella/libera/descargar/v1.0.0/bóveda-plugin-base de datos-couchbasecapella-1.0.0_linux_amd64.zip -o bóveda-plugin-base de datos-couchbasecapella-1.0.0_linux_amd64.zip |
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.
1 |
rizo -L https://github.com/couchbasecloud/bóveda-plugin-base de datos-couchbasecapella/libera/descargar/v1.0.0/bóveda-plugin-base de datos-couchbasecapella-1.0.0_checksums.txt -o bóveda-plugin-base de datos-couchbasecapella-1.0.0_checksums.txt |
Localice dentro del archivo de texto la suma de comprobación correspondiente al archivo que ha descargado.
Generar la suma de comprobación y validar el resultado
1 |
sha256sum bóveda-plugin-base de datos-couchbasecapella-1.0.0_linux_amd64.zip |
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.
1 |
descomprimir bóveda-plugin-base de datos-couchbasecapella-1.0.0_linux_amd64.zip |
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.
1 |
shasum -a 256 "couchbasecapella-database-plugin" | corte -d " " -f1 > couchbasecapella-base de datos-plugin.sha256 |
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.
1 |
echo '{"directorio_de_plugins": "/vault/plugins", "storage": {"file": {"ruta": "/vault/file"}}, "default_lease_ttl": "168h", "max_lease_ttl": "720h", "ui": true}' > config.json |
El último paso consiste en crear una política de contraseñas personalizada que refleje la política utilizada en Capella.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
cat >política_de_contraseña.hcl << EOF longitud=64 regla "charset" { conjunto de caracteres = "abcdefghijklmnopqrstuvwxyz" min-caracteres = 1 } regla "charset" { conjunto de caracteres = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" min-caracteres = 1 } regla "charset" { conjunto de caracteres = "0123456789" min-caracteres = 1 } regla "charset" { conjunto de caracteres = "#@%!" min-caracteres = 1 } EOF |
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:
1 2 3 4 5 6 7 8 9 10 11 |
docker ejecute --tapa-añada=IPC_LOCK --nombre="bóveda_de_cama" --rm \ -e VAULT_DEV_LISTEN_ADDRESS=0.0.0.0:8200 \ -e VAULT_ADDR=http://0.0.0.0:8200 \ -p 8200:8200 \ -v $(pwd)/config.json:/bóveda/config/config.json \ -v $(pwd)/política_de_contraseña.hcl:/bóveda/política_de_contraseña.hcl \ -v $(pwd)/couchbasecapella-base de datos-plugin:/bóveda/plugins/couchbasecapella-base de datos-plugin \ -v $(pwd)/couchbasecapella-base de datos-plugin.sha256:/bóveda/couchbasecapella-base de datos-plugin.sha256 \ hashicorp/bóveda:1.15 \ bóveda servidor -dev -dev-raíz-ficha-id="contraseña" \ -registro-nivel=depurar -config=/bóveda/config/config.json |
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:
1 2 3 |
docker ps docker exec -it "bóveda_de_cama" /papelera/ceniza -c "vault login password && vault secrets enable database" |
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.
1 |
docker exec -it "bóveda_de_cama" /papelera/ceniza -c "SHA256=\$(cat /vault/couchbasecapella-database-plugin.sha256) && vault login password && vault write sys/plugins/catalog/database/couchbasecapella-database-plugin sha256=\$SHA256 command=couchbasecapella-database-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.
1 |
docker exec -it "bóveda_de_cama" /papelera/ceniza -c "vault login password && vault write sys/policies/password/couchbasecapella policy=@/vault/password_policy.hcl" |
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.
1 |
docker exec -it "bóveda_de_cama" /papelera/ceniza -c "vault login password && vault write database/config/couchbasecapella-database-plugin plugin_name='couchbasecapella-database-plugin' cloud_api_base_url='https://cloudapi.cloud.couchbase.com/v4' organization_id="$CAPELLA_ORG_ID" project_id="$CAPELLA_PROJECT_ID" cluster_id="$CAPELLA_CLUSTER_ID" nombre de usuario="$CAPELLA_CLAVE_ACCESO" contraseña="$CAPELLA_CLAVE_SECRETA"password_policy='couchbasecapella' allowed_roles='*'" |
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.
1 |
docker exec -it "bóveda_de_cama" /papelera/ceniza -c "vault login password && vault write -force database/rotate-root/couchbasecapella-database-plugin" |
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.
1 |
docker exec -it "bóveda_de_cama" /papelera/ceniza -c 'vault login password && vault write database/roles/dynamicrole1 db_name="couchbasecapella-database-plugin" creation_statements='\''{"access": [ {"privilegios": [ "data_reader", "data_writer" ], "resources": { "buckets": [ { "name": "vault-bucket-1", "scopes": [ { "name": "vault-bucket-1-scope-1", "collections": [ "*" ] } ] } ] } } ]}'\'' default_ttl="5m" max_ttl="1h"' |
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.
1 |
docker exec -it "bóveda_de_cama" /papelera/ceniza -c 'vault login password && vault read database/creds/dynamicrole1' |
Volvamos a Capella para comprobar si nuestras credenciales también se muestran en la interfaz de usuario.
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!