
Una herramienta para la gestión de secretos, cifrado como servicio y gestión de acceso privilegiado
Nota importante: Nos tomamos muy en serio la seguridad de Vault y la confianza de nuestros usuarios. Si cree que ha encontrado un problema de seguridad en Vault, por favor, divulgue de manera responsable contactándonos en [email protected].
Vault es una herramienta para acceder de forma segura a secretos. Un secreto es cualquier cosa a la que desee controlar estrictamente el acceso, como claves de API, contraseñas, certificados y más. Vault proporciona una interfaz unificada para cualquier secreto, al tiempo que ofrece un control de acceso estricto y registra un registro de auditoría detallado.
Un sistema moderno requiere acceso a una multitud de secretos: credenciales de bases de datos, claves de API para servicios externos, credenciales para la comunicación de arquitectura orientada a servicios, etc. Entender quién está accediendo a qué secretos ya es muy difícil y específico de la plataforma. Agregar rotación de claves, almacenamiento seguro y registros de auditoría detallados es casi imposible sin una solución personalizada. Aquí es donde entra Vault.
Las características clave de Vault son:
Almacenamiento seguro de secretos: Vault puede almacenar pares clave/valor arbitrarios. Vault cifra los datos antes de escribirlos en el almacenamiento persistente, por lo que acceder al almacenamiento sin procesar no es suficiente para acceder a sus secretos. Vault puede escribir en disco, Consul y más.
Secretos dinámicos: Vault puede generar secretos bajo demanda para algunos sistemas, como AWS o bases de datos SQL. Por ejemplo, cuando una aplicación necesita acceder a un bucket de S3, le pide credenciales a Vault, y Vault generará un par de claves de AWS con permisos válidos bajo demanda. Después de crear estos secretos dinámicos, Vault también los revocará automáticamente al finalizar la concesión.
Cifrado de datos: Vault puede cifrar y descifrar datos sin almacenarlos. Esto permite que los equipos de seguridad definan parámetros de cifrado y que los desarrolladores almacenen datos cifrados en una ubicación como una base de datos SQL sin tener que diseñar sus propios métodos de cifrado.
Concesión y renovación: Vault asocia una concesión con cada secreto. Al final de la concesión, Vault revoca automáticamente el secreto. Los clientes pueden renovar las concesiones a través de las API de renovación integradas.
Revocación: Vault tiene soporte integrado para la revocación de secretos. Vault puede revocar no solo secretos individuales, sino un árbol de secretos, por ejemplo, todos los secretos leídos por un usuario específico, o todos los secretos de un tipo particular. La revocación ayuda tanto en la rotación de claves como en el bloqueo de sistemas en caso de una intrusión.
La documentación está disponible en el sitio web de Vault.
Si es nuevo en Vault y desea comenzar con la automatización de la seguridad, consulte nuestras guías de introducción en la plataforma de aprendizaje de HashiCorp. También hay guías adicionales para continuar su aprendizaje.
Para ver ejemplos de cómo interactuar con Vault desde su aplicación en diferentes lenguajes de programación, consulte el repositorio vault-examples. También está disponible una aplicación de ejemplo lista para usar.
Demuestre su conocimiento de Vault aprobando un examen de certificación. Visite la página de certificación para obtener información sobre los exámenes y encuentre materiales de estudio en la plataforma de aprendizaje de HashiCorp.
Si desea trabajar en Vault mismo o en cualquiera de sus sistemas integrados, primero necesitará tener Go instalado en su máquina.
Para el desarrollo local, primero asegúrese de que Go esté correctamente instalado, incluyendo la configuración de un GOPATH, luego configure la variable GOBIN en $GOPATH/bin. Asegúrese de que $GOPATH/bin esté en su PATH, ya que algunas distribuciones incluyen la versión antigua de las herramientas de compilación.
A continuación, clone este repositorio. Vault usa Go Modules, por lo que se recomienda clonar el repositorio fuera del GOPATH. Luego puede descargar las herramientas de compilación necesarias iniciando su entorno:
$ make bootstrap
...
Para compilar una versión de desarrollo de Vault, ejecute make o make dev. Esto colocará el binario de Vault en las carpetas bin y $GOPATH/bin:
$ make dev
...
$ bin/vault
...
Para compilar una versión de desarrollo de Vault con la interfaz de usuario, ejecute make static-dist dev-ui. Esto colocará el binario de Vault en las carpetas bin y $GOPATH/bin:
$ make static-dist dev-ui
...
$ bin/vault
...
Para ejecutar las pruebas, escriba make test. Nota: esto requiere que Docker esté instalado. Si termina con un estado de salida 0, ¡entonces todo funciona!
$ make test
...
Si está desarrollando un paquete específico, puede ejecutar pruebas solo para ese paquete especificando la variable TEST. Por ejemplo, a continuación solo se ejecutarán las pruebas del paquete vault.
$ make test TEST=./vault
...
Si encuentra un error como could not read Username for 'https://github.com' es posible que deba ajustar su configuración de git de la siguiente manera:
$ git config --global --add url."[email protected]:".insteadOf "https://github.com/"
Este repositorio publica dos librerías que pueden ser importadas por otros proyectos:
github.com/hashicorp/vault/api y github.com/hashicorp/vault/sdk.