LINUX

Cómo almacenar de forma segura contraseñas y claves de API con Vault

Vault es una herramienta que se utiliza para acceder a información secreta de forma segura, puede ser contraseña, clave API, certificado o cualquier otra cosa. Vault proporciona una interfaz unificada para la información secreta a través de un sólido mecanismo de control de acceso y un amplio registro de eventos.

Otorgar acceso a información crítica es un problema bastante difícil cuando tenemos múltiples roles e individuos en diferentes roles que requieren información crítica diversa como, detalles de inicio de sesión en bases de datos con diferentes privilegios, claves API para servicios externos, credenciales para comunicación de arquitectura orientada a servicios, etc. La situación se pone peor aún cuando el acceso a la información secreta se administra a través de diferentes plataformas con configuraciones personalizadas, por lo que el almacenamiento seguro y continuo y la administración de los registros de auditoría es casi imposible. Pero Vault ofrece una solución a una situación tan compleja.

Características sobresalientes

Cifrado de datos: Vault puede cifrar y descifrar datos sin necesidad de almacenarlos. Los desarrolladores ahora pueden almacenar datos cifrados sin desarrollar sus propias técnicas de cifrado y permite a los equipos de seguridad definir parámetros de seguridad.

Almacenamiento secreto seguro: Vault cifra la información secreta (claves de API, contraseñas o certificados) antes de almacenarla en el almacenamiento persistente (secundario). Entonces, incluso si alguien tiene acceso a la información almacenada por casualidad, no será de utilidad hasta que se descifre.

Secretos dinámicos: Los secretos bajo demanda se generan para sistemas como bases de datos de AWS y SQL. Si una aplicación necesita acceder al bucket de S3, por ejemplo, solicita un par de claves de AWS de Vault, que otorga la información secreta requerida junto con un tiempo de concesión. La información secreta no funcionará una vez que expire el tiempo de arrendamiento.

Arrendamiento y Renovación: Vault otorga secretos con un límite de arrendamiento, revoca los secretos tan pronto como expira el arrendamiento, que puede renovarse mediante API si es necesario.

Revocación: Al expirar el período de arrendamiento, Vault puede revocar un solo secreto o un árbol de secretos.

Instalación de Vault

Hay dos formas de utilizar Vault.

1. Vault Binary precompilado se puede descargar para todos los tipos de Linux desde la siguiente fuente, una vez hecho esto, descomprímalo y colóquelo en una RUTA del sistema donde se guardan otros binarios para que se pueda acceder / invocar fácilmente.

Descargar binario de bóveda precompilado (32 bits)

Descargar binario precompilado de Vault (64 bits)

Descargar binario precompilado de Vault (ARM)

Descargue el binario de Vault precompilado que desee.

wget binarioDescomprima el binario descargado.

abrir la cremallera¡Felicidades! Vault está listo para usarse.

bóveda

2. Compilación de fuentes es otra forma de instalar Vault en el sistema. Se requiere que GO y GIT estén instalados y configurados correctamente en el sistema antes de comenzar el proceso de instalación.

A instalar GO en sistemas Redhat utilice el siguiente comando.

sudo yum install go

A instalar GO en sistemas Debian utilice los siguientes comandos.

sudo apt-get install golang

O

sudo add-apt-repository ppa:gophers/go

sudo apt-get update

sudo apt-get install golang-stable

A instalar GIT en sistemas Redhat utilice el siguiente comando.

sudo yum install git

A instalar GIT en sistemas Debian utilice los siguientes comandos.

sudo apt-get install git

Una vez que tanto GO como GIT están instalados, comenzamos el proceso de instalación de Vault compilando desde la fuente.

  • Clonar el siguiente repositorio de Vault en GOPATH
https://github.com/hashicorp/vault
  • Verifique si existe el siguiente archivo de clonación; si no existe, Vault no se clonó en la ruta correcta.
$GOPATH/src/github.com/hashicorp/vault/main.go
  • Ejecute el siguiente comando para construir Vault en el sistema actual y coloque el binario en el directorio bin.
make dev

camino

Un tutorial introductorio de Vault

Hemos compilado el tutorial interactivo oficial de Vault junto con su salida en SSH.

Visión general

Este tutorial cubrirá los siguientes pasos:
– Inicializar y abrir su bóveda
– Autorizar sus solicitudes a Vault
– Secretos de lectura y escritura
– Sellar tu bóveda

Inicializa tu bóveda

Para comenzar, debemos inicializar una instancia de Vault para que pueda trabajar con ella.
Mientras se inicializa, puede configurar el comportamiento del sello de Vault.
Inicialice Vault ahora, con 1 clave de apertura para simplificar, usando el comando:

vault init -key-shares=1 -key-threshold=1

Notarás que Vault imprime varias claves aquí. No borre su terminal, ya que los necesitará en los próximos pasos.

Inicializando SSH

Abriendo tu bóveda

Cuando se inicia un servidor de Vault, se inicia en un estado sellado. En este estado, Vault está configurado para saber dónde y cómo acceder al almacenamiento físico, pero no sabe cómo descifrar nada de él.
Vault cifra los datos con una clave de cifrado. Esta clave está encriptada con la «clave maestra», que no se almacena. Descifrar la clave maestra requiere un umbral de fragmentos. En este ejemplo, usamos un fragmento para descifrar esta clave maestra.

vault unseal <key 1>

Abriendo SSH

Autoriza tus solicitudes

Antes de realizar cualquier operación con Vault, el cliente que se conecta debe estar autenticado. La autenticación es el proceso de verificar que una persona o máquina es quien dice ser y asignarle una identidad. Luego, esta identidad se usa al realizar solicitudes con Vault.
Para simplificar, usaremos el token raíz que generamos en init en el Paso 2. Esta salida debería estar disponible en el scrollback.
Autorizar con un token de cliente:

vault auth <root token>

Autorizar SSH

Leer y escribir secretos

Ahora que se ha configurado Vault, podemos comenzar a leer y escribir secretos con el backend secreto montado por defecto. Los secretos escritos en Vault se cifran y luego se escriben en el almacenamiento de backend. El mecanismo de almacenamiento de backend nunca ve el valor sin cifrar y no tiene los medios necesarios para descifrarlo sin Vault.

vault write secret/hello value=world

Por supuesto, también puede leer estos datos:

vault read secret/hello

RW_SSH

Selle su bóveda

También hay una API para sellar la Bóveda. Esto eliminará la clave de cifrado y requerirá otro proceso de apertura para restaurarla. El sellado solo requiere un único operador con privilegios de root. Esto suele ser parte de un «procedimiento de rotura de cristales» poco común.
De esta manera, si se detecta una intrusión, los datos de Vault se pueden bloquear rápidamente para tratar de minimizar los daños. No se puede acceder de nuevo sin acceso a los fragmentos de la clave maestra.

vault seal

Seal Vault SSH

Ese es el final del tutorial introductorio.

Resumen

Vault es una aplicación muy útil principalmente porque proporciona una forma confiable y segura de almacenar información crítica. Además, cifra la información crítica antes de almacenarla, mantiene registros de auditoría, otorga información secreta por un tiempo de arrendamiento limitado y la revoca una vez que expira el arrendamiento. Es una plataforma independiente y está disponible gratuitamente para descargar e instalar. Para descubrir más sobre Vault, se anima a los lectores a visitar el página web oficial.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar