Ir al 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

ComandoDescripción
vault versionMostrar versión de Vault
vault server -devIniciar servidor de desarrollo
vault server -config=config.hclComienza con el archivo de configuración
vault statusComprobar estado del servidor

Autenticación e Inicio de Sesión

Autenticación Básica

ComandoDescripción
vault auth -method=userpass username=myuserIniciar sesión con nombre de usuario/contraseña
vault auth -method=ldap username=myuserIniciar sesión con LDAP
vault auth -method=github token=mytokenIniciar sesión con GitHub
vault auth -method=awsIniciar sesión con AWS IAM
vault auth -method=kubernetesLogin con Kubernetes

Gestión de Tokens

ComandoDescripción
vault token createCrear nuevo token
vault token create -ttl=1hCrear token con TTL
vault token lookupBuscar token actual
vault token renewRenovar token actual
vault token revoke TOKENRevocar token específico

Gestión de Secretos

Secretos de Clave-Valor (v2)

ComandoDescripción
vault kv put secret/myapp username=admin password=secretAlmacenar secreto
vault kv get secret/myappRecuperar secreto
vault kv get -field=password secret/myappObtener campo específico
vault kv delete secret/myappEliminar secreto
vault kv list secret/Listar secretos
vault kv metadata get secret/myappObtener metadata

Versiones de Secretos

ComandoDescripción
vault kv put secret/myapp @data.jsonAlmacenar desde archivo JSON
vault kv get -version=2 secret/myappObtener versión específica
vault kv rollback -version=1 secret/myappRollback a la versión
vault kv destroy -versions=2,3 secret/myappDestruir versiones
vault kv undelete -versions=2 secret/myappRecuperar versiones

Motor de Secretos de Base de Datos

Configuración de Base de Datos

ComandoDescripción
vault secrets enable databaseHabilitar 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

ComandoDescripción
vault read database/creds/my-roleGenerar credenciales de base de datos
vault write database/rotate-root/my-mysql-databaseRotar credenciales root

PKI (Infraestructura de Clave Pública)

Configuración de PKI

ComandoDescripción
vault secrets enable pkiHabilitar motor PKI
vault secrets tune -max-lease-ttl=87600h pkiEstablecer TTL máximo
vault write pki/root/generate/internal common_name=example.com ttl=87600hGenerar 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

ComandoDescripción
vault write pki/roles/example-dot-com allowed_domains=example.com allow_subdomains=true max_ttl=72hCrear rol
vault write pki/issue/example-dot-com common_name=test.example.comEmitir 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:58Revocar certificado

Motor de Secretos de AWS

Configuración de AWS

ComandoDescripción
vault secrets enable awsHabilitar 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 \\{...\\} EOFCrear rol IAM

Credenciales de AWS

ComandoDescripción
vault read aws/creds/my-roleGenerar credenciales de AWS
vault write aws/sts/my-role ttl=15mGenerar credenciales STS

Motor de Secretos Transit

Configuración de Cifrado

ComandoDescripción
vault secrets enable transitHabilitar motor de tránsito
vault write transit/keys/my-key type=aes256-gcm96Crear 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

ComandoDescripción
vault write transit/keys/my-key/rotateRotar clave de cifrado
vault read transit/keys/my-keyLeer información clave
vault write transit/rewrap/my-key ciphertext=vault:v1:...Reenvolver con la última clave

Políticas

Gestión de Políticas

ComandoDescripción
vault policy write my-policy policy.hclCrear/actualizar política
vault policy read my-policyLeer política
vault policy listListar todas las políticas
vault policy delete my-policyEliminar 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

ComandoDescripción
vault auth enable userpassHabilitar nombre de usuario/contraseña
vault auth enable ldapHabilitar LDAP
vault auth enable githubHabilitar GitHub
vault auth enable awsHabilitar AWS IAM
vault auth enable kubernetesHabilitar Kubernetes

Configurar Métodos de Autenticación

ComandoDescripción
vault write auth/userpass/users/myuser password=mypass policies=my-policyCrear 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=myorgConfigurar GitHub

Registro de Auditoría

Habilitar Dispositivos de Auditoría

ComandoDescripción
vault audit enable file file_path=/vault/logs/audit.logHabilitar auditoría de archivos
vault audit enable syslogHabilitar auditoría de syslog
vault audit listListar 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?

ComandoDescripción
vault operator initInicializar clúster de Vault
vault operator unsealDesbloquear Vault
vault operator sealSello Vault
vault operator step-downDimitir como líder
vault operator raft list-peersListar pares Raft
ComandoDescripción
vault operator raft snapshot save backup.snapCrear snapshot
vault operator raft snapshot restore backup.snapRestaurar 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
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 |## Variables de entorno

## Mejores prácticas

### Seguridad