> ## Documentation Index
> Fetch the complete documentation index at: https://docs.iru.com/llms.txt
> Use this file to discover all available pages before exploring further.

# HashiCorp Vault

> Conecta Vault a Iru Compliance con un token de cliente y una política de mínimo privilegio para obtener evidencia de montajes, políticas y configuración de auditoría.

### Acerca de HashiCorp Vault

Iru lee los **montajes de motores de secretos**, la **configuración de métodos de autenticación**, las **políticas con nombre**, los **dispositivos de auditoría** y los metadatos relacionados de **sys/** mediante la API HTTP de Vault. Cada solicitud envía tu **token de cliente** en **`X-Vault-Token`**. Iru recopila **evidencia de configuración**, no los valores de los **secretos en texto sin formato**.

Funciona con **Vault OSS**, **Enterprise** (los espacios de nombres pueden requerir configuración adicional) y **HCP Vault**.

### Cómo funciona

```http theme={null}
X-Vault-Token: hvs.xxxxxxxx
```

Los tokens provienen de cualquier **método de autenticación** de Vault (Token, AppRole, LDAP, etc.). El asistente primero almacena **`vault_addr`** (por ejemplo, `https://vault.example.com:8200`) y luego acepta el token.

| Detalle | Valor |
| - | - |
| **Categoría** | Seguridad |
| **Autenticación** | Token de cliente (`X-Vault-Token`) |

Referencias oficiales: [Conceptos de autenticación](https://developer.hashicorp.com/vault/docs/concepts/auth), [API HTTP](https://developer.hashicorp.com/vault/api-docs), [Políticas](https://developer.hashicorp.com/vault/docs/concepts/policies), [AppRole](https://developer.hashicorp.com/vault/docs/auth/approle).

### Requisitos previos

* Un clúster de Vault **accesible desde Iru** (red, firewall o PrivateLink, según corresponda).
* Permiso para crear una **política** y un **token** (o AppRole) con acceso de solo lectura a **`sys/`** como en el ejemplo siguiente.

### Ejemplo de política de solo lectura (HCL)

Guárdala como archivo `.hcl` y aplícala con **`vault policy write iru-compliance your-file.hcl`**.

```hcl lines theme={null}
path "sys/mounts" {
  capabilities = ["read", "list"]
}
path "sys/auth" {
  capabilities = ["read", "list"]
}
path "sys/policy" {
  capabilities = ["read", "list"]
}
path "sys/policies/acl/*" {
  capabilities = ["read", "list"]
}
path "sys/audit" {
  capabilities = ["read", "list"]
}
path "auth/token/lookup-self" {
  capabilities = ["read"]
}
```

### Conectar HashiCorp Vault a Iru

#### Aplicar la política y emitir un token

<Steps>
  <Step title="Prepara una estación de trabajo con acceso a la CLI de Vault">
    Usa un host de salto o una estación de trabajo de administración que pueda acceder a **`VAULT_ADDR`** mediante TLS y que tenga instalada la **CLI de Vault** (binario `vault`).
  </Step>

  <Step title="Autentica la CLI en Vault">
    Inicia sesión con el método compatible de tu organización (**`vault login`**, OIDC, etc.) para que los comandos siguientes se ejecuten con privilegios suficientes para escribir políticas y crear tokens.
  </Step>

  <Step title="Escribe el archivo de política">
    Guarda la política de ejemplo anterior como archivo `.hcl` en esa máquina (por ejemplo, `iru-compliance.hcl`).
  </Step>

  <Step title="Aplica la política en Vault">
    Ejecuta **`vault policy write iru-compliance`** con la ruta de tu archivo de política.
  </Step>

  <Step title="Crea un token renovable">
    Crea un token **renovable** vinculado a esa política (por ejemplo, **`vault token create -policy=iru-compliance -ttl=720h -renewable=true`**). Copia el valor del token **`hvs.`**.
  </Step>

  <Step title="Es preferible AppRole en producción">
    En producción, es preferible usar **AppRole** u otro flujo automatizado en lugar de tokens estáticos de larga duración.
  </Step>
</Steps>

#### Completar el conector en Iru

<Steps>
  <Step title="Abre Sources">
    En Iru Compliance, en la barra de navegación izquierda, expande **Cumplimiento** y selecciona **Fuentes**.

    <Frame>
      <img src="https://mintcdn.com/iru/tI0HDLDwHj8r9Ile/assets/media/images/iru-navigation-compliance-sources.png?fit=max&auto=format&n=tI0HDLDwHj8r9Ile&q=85&s=87dcef15fc17d2fb9a6e53f454e41710" alt="Navegación izquierda: Compliance expandido, Sources seleccionado" width="410" height="1024" data-path="assets/media/images/iru-navigation-compliance-sources.png" />
    </Frame>
  </Step>

  <Step title="Activa HashiCorp Vault">
    Busca **HashiCorp Vault** (usa **Categoría** o **Buscar por nombre o descripción**). En esa tarjeta, activa el **interruptor**. Es posible que se abra una pestaña o ventana del navegador para el asistente del conector.
  </Step>

  <Step title="Configura las variables del servidor">
    Introduce **`vault_addr`** (por ejemplo, `https://vault.example.com:8200`) y confirma las variables del servidor cuando se te solicite.
  </Step>

  <Step title="Pega el token de Vault">
    Pega el token en el campo **`X-Vault-Token`** cuando se te solicite.
  </Step>

  <Step title="Finaliza la conexión">
    Selecciona **Enviar clave de API**. Cuando la conexión se realiza correctamente, el asistente muestra **Conexión configurada**.
  </Step>

  <Step title="Confirma que la fuente está activa">
    Cierra la pestaña del navegador **Iru está solicitando acceso a servicios externos**, luego vuelve a **Cumplimiento** → **Fuentes** y confirma que la tarjeta de **HashiCorp Vault** está **Activo**.
  </Step>
</Steps>

### Solución de problemas

<AccordionGroup>
  <Accordion title="No se abre nada al activar la fuente">
    Revisa la configuración del **bloqueador de ventanas emergentes** para el sitio de Iru e inténtalo de nuevo.
  </Accordion>

  <Accordion title="Error en las variables del servidor">
    Actualiza el asistente desactivando y activando la fuente; vuelve a introducir **`vault_addr`**.
  </Accordion>

  <Accordion title="403 permission denied">
    Asocia la política **`iru-compliance`** al token; revisa los **espacios de nombres de Enterprise**.
  </Accordion>

  <Accordion title="Token caducado">
    Emite un token nuevo y actualiza Iru; habilita la **renovación** o usa la rotación de AppRole.
  </Accordion>

  <Accordion title="Conexión rechazada">
    Revisa el nombre de host, el puerto (**8200**), TLS y las rutas salientes desde Iru.
  </Accordion>

  <Accordion title="503 sealed">
    **Desella** (unseal) Vault antes de probar.
  </Accordion>
</AccordionGroup>

### Consideraciones

<CardGroup cols={2}>
  <Card title="Los espacios de nombres de Vault Enterprise pueden requerir rutas o…" icon="circle-info">
    Los **espacios de nombres** de Vault **Enterprise** pueden requerir rutas o configuraciones adicionales a esta base: coordínalo con los administradores de Vault.
  </Card>
</CardGroup>

### Artículos relacionados

<CardGroup cols={2}>
  <Card title="Gestión de fuentes" icon="plug" href="/es/compliance/sources-management">
    Explora y gestiona todas las fuentes de Compliance.
  </Card>

  <Card title="Introducción a Compliance" icon="rocket" href="/es/compliance/getting-started-with-compliance">
    Marcos, acciones y **Artefactos**.
  </Card>

  <Card title="Descripción general de Iru" icon="layer-group" href="/es/iru/platform-overview/iru-overview">
    Cómo encajan Endpoint, Compliance e Identity.
  </Card>

  <Card title="Gestión de artefactos" icon="folder-open" href="/es/compliance/artifacts-management">
    Sube, revisa y organiza la evidencia de fuentes y acciones.
  </Card>
</CardGroup>
