Cómo instalar y configurar Vault

¿Qué es la bóveda?

Vault protege y asegura el acceso a múltiples tipos de datos confidenciales. Almacena y administra información confidencial de contraseñas, claves API y tokens de acceso que existen en un entorno de baja confianza y genera acceso dinámico para autenticar a los usuarios para garantizar que tengan acceso autorizado y disponibilidad para un archivo, ubicación, servicio o aplicación.

Vault proporciona una autorización más granular para entornos estrictamente controlados mediante el empleo de tokens temporales que se generan de forma segura. En este tutorial, exploramos el software Vault de HashiCorp. Las políticas de seguridad escritas en el lenguaje de configuración de HashiCorp (o HCL) se emplean para determinar qué usuarios tienen acceso a los marcos internos.

¿Cómo funciona la bóveda?

A continuación, vemos una descripción general de alto nivel de cómo funciona Vault. En esencia, solo tenemos dos elementos que dan al exterior:

  • API de HTTP(s) – Esta puerta de enlace o pasaje es iniciado por el servidor de Vault cuando comienza a permitir que los usuarios interactúen con él.
  • Entorno de almacenamiento de fondo – Esta ubicación de almacenamiento se considera no confiable y Vault solo la utiliza para depositar los datos cifrados de manera confiable.

Todos los demás componentes están bloqueados dentro del perímetro de seguridad protegido de Vault.

Una vez que se inicia el software Vault, se considera que está en un estado sellado. Antes de que se realice cualquier función, un usuario o un proceso de API debe abrir el Vault. Esta tarea se logra a través de una clave de apertura. Cuando se crea la Bóveda, se genera una clave de cifrado para proteger la información dentro de la Bóveda. Una clave maestra protege aún más esa clave de cifrado. Esta clave maestra se crea mediante una técnica conocida como algoritmo de uso compartido secreto de Shamir.

Secretos de la bóveda 2

Este algoritmo criptográfico divide la clave maestra en múltiples partes o acciones. Para reconstruir la clave maestra original, se requiere un número mínimo de estos componentes compartidos. Vault divide la clave maestra en cinco partes. Para reconstruir la clave maestra, se necesitan tres de las cinco acciones.

Brindemos un example. El Banco de LW tiene una bóveda. Esta bóveda contiene todos los secretos de Liquid Web. Esta bóveda tiene cinco ojos de cerradura. Se entrega una sola llave a cinco de los ejecutivos. Para desbloquear la bóveda, la bóveda debe tener al menos tres llaves ejecutivas insertadas. No importa qué tres llaves ejecutivas de las cinco se usen, ya que tres llaves ejecutivas abrirán la bóveda. Si una o dos de las llaves ejecutivas se pierden o son robadas, la Bóveda seguirá estando accesible.

Secretos de la bóveda 3

Una vez que se activan las claves de cifrado, Vault puede descifrar los datos contenidos en la ubicación de almacenamiento del backend. Cuando se abre la bóveda, carga todos los dispositivos de auditoría, los métodos de autenticación y los motores de secretos configurados.

Estos componentes deben almacenarse en la bóveda, ya que se consideran información confidencial. Solo los usuarios con el nivel de permisos correcto pueden modificarlos, lo que significa que no se pueden utilizar fuera de la barrera mientras está bloqueada. Al almacenarlos en Vault, cualquier cambio en esos elementos se rechaza, ya que están protegidos por el sistema de Lista de control de acceso (ACL) y se rastrean mediante registros de auditoría. Una lista de ACL es simplemente una política creada por el usuario. Las políticas son guardadas y mantenidas por el almacén interno de políticas.

Vault funciona exclusivamente en un modelo de confianza cero y control de acceso basado en identidad. Esto significa que a menos que el acceso se otorgue explícitamente a través de una ACL (política), la operación no está permitida. Después de abrir Vault, las solicitudes se procesan a través de la API HTTP al Core. El propio Core se utiliza para regular el flujo de consultas a través del sistema, implementar las listas de ACL y garantizar que se mantenga un registro de auditoría. Una ACL “raíz” predeterminada está incorporada y permite el acceso completo a todos los recursos.

Cómo instalar la bóveda

Los clientes pueden utilizar Vault en varias plataformas, incluidos servidores independientes, AWS, Kubernetes y otros sistemas basados ​​en contenedores.

Aquí, demostramos cómo instalar Vault en un servidor independiente o como parte de un clúster de servidores. Para usar Vault, un administrador primero debe instalarlo en el servidor usando uno de los tres métodos de instalación:

  • Código fuente – Esta es una instalación Git típica del software.
  • Binario precompilado.
  • Formato preenvasado.

A continuación proporcionamos instrucciones para instalar Vault en Linux ( CentOS y Ubuntu ), macOS y Windows.

CentOS/Ubuntu

Como siempre, primero queremos asegurarnos de que nuestro sistema esté actualizado con uno de los dos comandos. Una opción de comando está debajo.

                      
                        [[email protected] ~]# yum update -y && yum upgrade -y
                      
                    

A continuación se muestra el comando alternativo.

                      
                        [[email protected] ~]# apt-get update && apt-get upgrade
                      
                    

Crear y mover al directorio

                      
                        [[email protected] ~]# mkdir -p /usr/src/vault
[[email protected] ~]# cd /usr/src/vault/
                      
                    

Descargar bóveda

                      
                        [[email protected] vault]# curl -sO https://releases.hashicorp.com/vault/1.6.3/vault_1.6.3_linux_amd64.zip
                      
                    

Descomprimir bóveda

                      
                        [[email protected] vault]# unzip vault_1.6.3_linux_amd64.zip
Archive:  vault_1.6.3_linux_amd64.zip
  inflating: vault
                      
                    

Mover carpeta a ruta

                      
                        [[email protected] vault]# mv vault /usr/local/bin/
                      
                    

Verificar la instalación

Para verificar que Vault esté instalado correctamente, ejecute la versión de la bóveda o la bóveda -h en su terminal. Si lo está ejecutando desde la línea de comandos, asegúrese de que el comando de bóveda esté en su RUTA, o puede obtener un error de Bóveda no encontrada.

                      
                        [[email protected] vault]# vault -version
Vault v1.6.3 (b540be4b7ec48d0dd7512c8d8df9399d6bf84d76)
                      
                    

ubuntu

Asegúrese de que nuestro sistema esté actualizado.

                      
                        [[email protected] ~]# apt-get update && apt-get upgrade
                      
                    

Agregar clave GPG

Primero, necesitamos agregar la clave HashiCorp GPG.

                      
                        [[email protected] ~]# curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
                      
                    

Añadir repositorio

A continuación, agregaremos el repositorio oficial de Linux de HashiCorp.

                      
                        [[email protected] ~]# apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
                      
                    

Instalar software

Finalmente, ejecute otra actualización de apt-get y luego instale el software.

                      
                        [[email protected] ~]# apt-get update && apt-get install vault
                      
                    

Mac OS

Instalar repositorio

Primero, debemos instalar el grifo HashiCorp. Este es un repositorio de paquetes de Homebrew, incluido Vault.

                      
                        [[email protected] ~]# brew tap hashicorp/tap
                      
                    

Instalar software

A continuación, instalaremos Vault usando hashicorp/tap/vault.

                      
                        [[email protected] ~]# brew install hashicorp/tap/vault
                      
                    

ventanas

Hay dos métodos que podemos usar para instalar Vault en un sistema Windows: Chocolatey y Scoop. Chocolatey es un administrador de paquetes de código abierto para Windows. Aquí, instalamos Vault usando la terminal.

                      
                        [[email protected] ~]# choco install vault
                      
                    

Scoop es otro administrador de paquetes de código abierto para Windows. Para instalar Vault usando Scoop, ejecutamos el siguiente comando en la terminal.

                      
                        [[email protected] ~]# scoop install vault
                      
                    

Iniciar servidor de bóveda

El siguiente comando inicia un servidor de desarrollo de Vault predeterminado. El servidor de desarrollo es un servidor integrado preconfigurado. Si bien no se usa para entornos de producción, puede ser útil para explorar los comandos del servidor de Vault localmente.

                      
                        [[email protected] ~]# vault server -dev
==> Vault server configuration:

             Api Address: https://127.0.0.1:8200
                     Cgo: disabled
         Cluster Address: https://127.0.0.1:8201
              Listener 1: tcp (addr: "127.0.0.1:8200", cluster address: "127.0.0.1:8201", max_request_duration: "1m30s", max_request_size: "33554432", tls: "disabled")
               Log Level: info
                   Mlock: supported: false, enabled: false
           Recovery Mode: false
                 Storage: inmem
                 Version: Vault v1.4.1

WARNING! dev mode is enabled! In this mode, Vault runs entirely in-memory
and starts unsealed with a single unseal key. The root token is already
authenticated to the CLI, so you can immediately begin using Vault.

You may need to set the following environment variable:

    $ export VAULT_ADDR='https://127.0.0.1:8200'

The unseal key and root token are displayed below in case you want to
seal/unseal the Vault or re-authenticate.

Unseal Key: 1+yv+v5mz+aSCK67X6slL3ECxb4UDL8ujWZU/ONBpn0=
Root Token: s.XmpNPoi9sRhYtdKHaQhkHP6x

Development mode should NOT be used in production installations!

==> Vault server started! Log data will stream in below:
                      
                    

Configurar bóveda

Una vez que el servidor se activa (modo sin desarrollo), Vault se puede configurar mediante un archivo basado en HCL o JSON. A continuación se muestra un example de un archivo de configuración.

                      
                        storage "consul" {
  address = "127.0.0.1:8500"
  path    = "vault"
}

listener "tcp" {
  address     = "127.0.0.1:8200"
  tls_disable = 1
}

telemetry {
  statsite_address = "127.0.0.1:8125"
  disable_hostname = true
}
                      
                    

Una vez que se guarda la configuración, los administradores utilizarán el comando Vault Server -config para indicar la ubicación del archivo de configuración.

Verificar servidor en ejecución

Para verificar que el servidor de desarrollo se está ejecutando, ejecute el comando de estado de la bóveda. Si el servidor de desarrollo está activo, los usuarios deberían ver el siguiente resultado.

                      
                        [[email protected] ~]# vault status

Key             Value
---             -----
Seal Type       shamir
Initialized     true
Sealed          false
Total Shares    1
Threshold       1
Version         1.5.0
Cluster Name    vault-cluster-4d862b44
Cluster ID      92143a5a-0566-be89-f229-5a9f9c47fb1a
HA Enabled      false
Copy
If the output looks different, restart the dev server and try again.
                      
                    

Agregar un secreto

Para crear un secreto, usamos la siguiente sintaxis. El indicador kv significa keyvault y el indicador put indica que estamos agregando un secreto a una ruta.

                      
                        vault kv put <path> <key>=<value> command.

[[email protected] ~]# vault kv put secret/hithere user=password

Key              Value
---              -----
created_time     2021-03-12T21:40:01.635656Z
deletion_time    n/a
destroyed        false
version          1
                      
                    

Este comando escribe el par usuario=contraseña en la ruta secret/hithere.

recuperar un secreto

Un secreto se puede recuperar usando la siguiente sintaxis.

                      
                        [[email protected] ~]# vault kv get <path>
                      
                    
                      
                        [[email protected] ~]# vault kv get secret/hithere

====== Metadata ======
Key              Value
---              -----
created_time     2021-03-12T21:41:17.568155Z
deletion_time    n/a
destroyed        false
version          2

===== Data =====
Key        Value
---        -----
user       password
                      
                    

Quitar un secreto

Para eliminar un secreto, usamos el comando Vault kv delete.

                      
                        [[email protected] ~]# vault kv delete secret/hithere

Success! Data deleted (if it existed) at: secret/hithere
                      
                    

Crear usuario de bóveda

Las mejores prácticas dictan que creamos un usuario del sistema sin privilegios para trabajar con Vault.

                      
                        [[email protected] ~]# useradd --system --home /etc/vault --shell /bin/false vault
[[email protected] ~]# chown -R vault:vault /etc/vault /var/lib/vault/
                      
                    

Motor de secretos

Cada ruta de un motor secreto está completamente separada y aislada de otras rutas de motores secretos. Para exampleel motor de secretos A habilitado en /ruta/foo no puede comunicarse con el motor de secretos B habilitado en /ruta/foo.

Habilitar el motor de secretos

                      
                        [[email protected] ~]# vault secrets enable -path=A /path/foo
Success! Enabled the kv secrets engine at: kv/
                      
                    

Deshabilitar el motor de secretos

Cuando se deshabilita un motor de secretos específico, todos los secretos generados con ese motor de secretos específico se revocan inmediatamente. Para deshabilitar un motor de secretos existente, usamos el siguiente comando.

                      
                        [[email protected] ~]# vault secrets disable
                      
                    

Conclusión

Vault es un software confiable y eficaz para crear, administrar y cifrar claves de API confidenciales, credenciales de bases de datos u otros datos de usuario relacionados con la autenticación dentro de una infraestructura dinámica. Vault almacena, asegura y controla rigurosamente el acceso a muchos tipos de plataformas. Es una herramienta esencial que los clientes pueden ampliar para su uso en versiones independientes del sistema operativo y en configuraciones en contenedores. En general, es un producto de seguridad excepcional que cualquier cliente puede implementar.

Obtenga más información sobre nuestros productos y cómo pueden ayudarlo.

Related Posts