Saltar a contenido

Vault

Guía completa de comandos y flujos de trabajo de HashiCorp Vault para gestión de secretos, cifrado y acceso seguro a datos sensibles.

Instalación y Configuración

Comando Descripción
vault version Mostrar versión de Vault
vault server -dev Iniciar servidor de desarrollo
vault server -config=config.hcl Comienza con el archivo de configuración
vault status Comprobar estado del servidor
## Autenticación e Inicio de Sesión

Autenticación Básica

Comando Descripción
vault auth -method=userpass username=myuser Iniciar sesión con nombre de usuario/contraseña
vault auth -method=ldap username=myuser Iniciar sesión con LDAP
vault auth -method=github token=mytoken Iniciar sesión con GitHub
vault auth -method=aws Iniciar sesión con AWS IAM
vault auth -method=kubernetes Login con Kubernetes
### Gestión de Tokens
Comando Descripción
--------- -------------
vault token create Crear nuevo token
vault token create -ttl=1h Crear token con TTL
vault token lookup Buscar token actual
vault token renew Renovar token actual
vault token revoke TOKEN Revocar token específico
## Gestión de Secretos

Secretos de Clave-Valor (v2)

Comando Descripción
vault kv put secret/myapp username=admin password=secret Almacenar secreto
vault kv get secret/myapp Recuperar secreto
vault kv get -field=password secret/myapp Obtener campo específico
vault kv delete secret/myapp Eliminar secreto
vault kv list secret/ Listar secretos
vault kv metadata get secret/myapp Obtener metadata
### Versiones de Secretos
Comando Descripción
--------- -------------
vault kv put secret/myapp @data.json Almacenar desde archivo JSON
vault kv get -version=2 secret/myapp Obtener versión específica
vault kv rollback -version=1 secret/myapp Rollback a la versión
vault kv destroy -versions=2,3 secret/myapp Destruir versiones
vault kv undelete -versions=2 secret/myapp Recuperar versiones
## Motor de Secretos de Base de Datos

Configuración de Base de Datos

Comando Descripción
vault secrets enable database Habilitar motor de base de datos
vault write database/config/my-mysql-database plugin_name=mysql-database-plugin connection_url="\\{\\{username\\}\\}:\\{\\{password\\}\\}@tcp(localhost:3306)/" allowed_roles="my-role" username="vaultuser" password="vaultpass" Configurar MySQL
vault write database/roles/my-role db_name=my-mysql-database creation_statements="CREATE USER '\\{\\{name\\}\\}'@'%' IDENTIFIED BY '\\{\\{password\\}\\}';GRANT SELECT ON *.* TO '\\{\\{name\\}\\}'@'%';" default_ttl="1h" max_ttl="24h" Crear rol
### Credenciales Dinámicas
Comando Descripción
--------- -------------
vault read database/creds/my-role Generar credenciales de base de datos
vault write database/rotate-root/my-mysql-database Rotar credenciales root
## PKI (Infraestructura de Clave Pública)

Configuración de PKI

Comando Descripción
vault secrets enable pki Habilitar motor PKI
vault secrets tune -max-lease-ttl=87600h pki Establecer TTL máximo
vault write pki/root/generate/internal common_name=example.com ttl=87600h Generar CA raíz
vault write pki/config/urls issuing_certificates="http://vault.example.com:8200/v1/pki/ca" crl_distribution_points="http://vault.example.com:8200/v1/pki/crl" Configurar URLs
### Gestión de Certificados
Comando Descripción
--------- -------------
vault write pki/roles/example-dot-com allowed_domains=example.com allow_subdomains=true max_ttl=72h Crear rol
vault write pki/issue/example-dot-com common_name=test.example.com Emitir certificado
vault write pki/revoke serial_number=39:dd:2e:90:b7:23:1f:8d:d3:7d:31:c5:1b:da:84:d0:5b:65:31:58 Revocar certificado
## Motor de Secretos de AWS

Configuración de AWS

Comando Descripción
vault secrets enable aws Habilitar motor AWS
vault write aws/config/root access_key=AKIAI... secret_key=R4nm... Configurar credenciales de root
vault write aws/roles/my-role credential_type=iam_user policy_document=-<<EOF \\{...\\} EOF Crear rol IAM
### Credenciales de AWS
Comando Descripción
--------- -------------
vault read aws/creds/my-role Generar credenciales de AWS
vault write aws/sts/my-role ttl=15m Generar credenciales STS
## Motor de Secretos Transit

Configuración de Cifrado

Comando Descripción
vault secrets enable transit Habilitar motor de tránsito
vault write transit/keys/my-key type=aes256-gcm96 Crear clave de cifrado
vault write transit/encrypt/my-key plaintext=$(base64 <<< "my secret data") Encriptar datos
vault write transit/decrypt/my-key ciphertext=vault:v1:8SDd3WHDOjf7mq69CyCqYjBXAiQQAVZRkFM13ok481zoCmHnSeDX9vyf7w== Descifrar datos
### Gestión de Claves
Comando Descripción
--------- -------------
vault write transit/keys/my-key/rotate Rotar clave de cifrado
vault read transit/keys/my-key Leer información clave
vault write transit/rewrap/my-key ciphertext=vault:v1:... Reenvolver con la última clave
## Políticas

Gestión de Políticas

Comando Descripción
vault policy write my-policy policy.hcl Crear/actualizar política
vault policy read my-policy Leer política
vault policy list Listar todas las políticas
vault policy delete my-policy Eliminar política
### Ejemplo de Política
# Read operation on the k/v secrets
path "secret/data/*" \\\\{
  capabilities = ["read"]
\\\\}

# Write operation on the k/v secrets
path "secret/data/myapp/*" \\\\{
  capabilities = ["create", "update"]
\\\\}

# Deny all access to secret/admin
path "secret/data/admin" \\\\{
  capabilities = ["deny"]
\\\\}

Métodos de Autenticación

Habilitar Métodos de Autenticación

Comando Descripción
vault auth enable userpass Habilitar nombre de usuario/contraseña
vault auth enable ldap Habilitar LDAP
vault auth enable github Habilitar GitHub
vault auth enable aws Habilitar AWS IAM
vault auth enable kubernetes Habilitar Kubernetes
### Configurar Métodos de Autenticación
Comando Descripción
--------- -------------
vault write auth/userpass/users/myuser password=mypass policies=my-policy Crear usuario
vault write auth/ldap/config url="ldap://ldap.example.com" userdn="ou=Users,dc=example,dc=com" Configurar LDAP
vault write auth/github/config organization=myorg Configurar GitHub
## Registro de Auditoría

Habilitar Dispositivos de Auditoría

Comando Descripción
vault audit enable file file_path=/vault/logs/audit.log Habilitar auditoría de archivos
vault audit enable syslog Habilitar auditoría de syslog
vault audit list Listar dispositivos de auditoría
vault audit disable file/ Deshabilitar dispositivo de auditoría
## Alta Disponibilidad y Clustering

Operaciones de Cluster

Would you like me to continue with the remaining translations? | Comando | Descripción | |---------|-------------| | vault operator init | Inicializar clúster de Vault | | vault operator unseal | Desbloquear Vault | | vault operator seal | Sello Vault | | vault operator step-down | Dimitir como líder | | vault operator raft list-peers | Listar pares Raft |### Copia de seguridad y recuperación

Comando Descripción
vault operator raft snapshot save backup.snap Crear snapshot
vault operator raft snapshot restore backup.snap Restaurar snapshot

Configuración del servidor

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

listener "tcp" \\\\{
  address     = "0.0.0.0:8200"
  tls_disable = 1
\\\\}

api_addr = "http://127.0.0.1:8200"
cluster_addr = "https://127.0.0.1:8201"
ui = true
hcl seal "awskms" \\\\{ region = "us-east-1" kms_key_id = "12345678-1234-1234-1234-123456789012" \\\\}### Desactivación automática con AWS KMS

Variable Descripción
VAULT_ADDR Dirección del servidor Vault
VAULT_TOKEN Token de autenticación
VAULT_NAMESPACE Espacio de nombres de Vault (Enterprise)
VAULT_CACERT Archivo de certificado CA
VAULT_CLIENT_CERT Archivo de certificado de cliente
VAULT_CLIENT_KEY Archivo de clave privada del cliente

Mejores prácticas

Seguridad