Ir al contenido

Secretos para aplicaciones

Esta página explica cómo guardar los secretos de tus aplicaciones, pipelines y scripts en Ironchip, y cómo los leen con la API de secretos de Ironchip, que habla la de Vault. Es para quien administra los secretos y para quien integra una aplicación.

  • Secrets guarda los secretos de la compañía, organizados en rutas como billing/stripe. Los valores se escriben y no se vuelven a mostrar nunca, ni en la consola ni en ningún otro sitio de Ironchip.
  • Workloads da de alta cada aplicación, pipeline o script que los lee. Cada workload tiene su propia credencial y solo lee los secretos y carpetas que le das, desde las redes que le permites.
  • La aplicación entra con un cliente de Vault cualquiera: las CLI vault y bao, los SDK de Vault, Terraform o External Secrets. No hace falta cambiar código.
  • En cada petición Ironchip comprueba que el workload está activo, que no ha caducado, que pregunta desde una de sus redes y que usa su credencial vigente. Cada petición queda registrada.

Necesitas estos permisos (consulta Puesta en marcha):

  • PAM secrets para escribir y borrar secretos.
  • PAM workloads para dar de alta workloads y emitir sus credenciales.
  1. Ve a PAM > Secrets > Secrets y haz clic en Add secret.

    Página Secrets con las rutas de los secretos, sus campos, la versión y la fecha de cambio

  2. En Path, escribe la ruta, por ejemplo billing/stripe. Las barras crean carpetas.

  3. En Fields, añade cada campo con su Name (por ejemplo api_key) y su Value. Hasta 32 campos, de 64 KiB cada uno.

  4. Haz clic en Add secret.

Para cambiarlo, abre Options > Write new version y escribe de nuevo todos los campos: los valores no se conservan de la versión anterior y un campo que no escribas no estará en la nueva. Options > Remove secret lo borra con todas sus versiones; los workloads que lo leían dejan de encontrarlo en ese momento.

  1. Ve a PAM > Secrets > Workloads y haz clic en Add workload.

    Página Workloads con cada workload, lo que lee, desde dónde y su estado

  2. Rellena Name (por ejemplo, billing-worker) y, si quieres, Description (optional).

  3. En Secrets it reads, escribe las rutas separadas por comas. Una ruta que termina en / es una carpeta, con todo lo que contiene: billing/stripe, ci/.

  4. En Short-lived credentials it asks for (optional), marca los roles de credenciales temporales que puede pedir.

  5. En Networks it may be used from, escribe las direcciones o rangos desde los que se conecta, por ejemplo 10.20.0.0/16, 203.0.113.7. Vacío significa desde cualquier sitio.

  6. En Expires, elige Never, 30 days, 90 days o 1 year.

  7. Haz clic en Add and issue credential.

La consola muestra la credencial una sola vez. Guárdala en el gestor de secretos de tu pipeline o de tu plataforma: el secret_id no se guarda en Ironchip y la única forma de tener otro es sustituirlo.

La ventana de la credencial muestra las variables y los comandos listos para copiar. Con la CLI de Vault:

Ventana de terminal
export VAULT_ADDR=https://<API_HOST>
export VAULT_ROLE_ID=<ROLE_ID>
export VAULT_SECRET_ID=<SECRET_ID>
export VAULT_TOKEN=$(vault write -field=token auth/approle/login role_id="$VAULT_ROLE_ID" secret_id="$VAULT_SECRET_ID")
vault kv get -mount=secrets billing/stripe
  • VAULT_ADDR es la dirección de la API de Ironchip que aparece en la credencial.
  • El inicio de sesión es el método AppRole de Vault: role_id y secret_id.
  • El token dura una hora y se puede renovar hasta un día.
  • Los secretos están en el montaje secrets. Un workload solo puede leer; no puede escribir ni borrar.

Cualquier cliente que sepa hablar con Vault sirve: configura en él la misma dirección, el método AppRole y la ruta del secreto.

En Options, en su fila:

Acción Qué hace
Open Abre su página: lo que lee, desde dónde, cuándo caduca y su actividad.
Edit workload Cambia lo que lee, las redes o la caducidad.
Issue credential Emite una credencial nueva. La anterior y todos los tokens obtenidos con ella dejan de funcionar al instante.
Enable or disable Deshabilitado, no entra nada suyo, ni siquiera los tokens que ya tiene. Al habilitarlo de nuevo vuelven a valer.
Remove workload Lo borra con su credencial. Los secretos que leía se quedan.

El estado de cada workload es uno de estos: Active, Not used yet (tiene credencial y no la ha usado), No credential, Expired o Disabled.

En la página del workload, la pestaña Activity muestra sus últimas peticiones: cuándo, qué pidió (método y ruta), desde qué dirección y la respuesta. Si Ironchip la rechazó, aparece el motivo, por ejemplo que llegó desde una red no permitida o con una credencial sustituida. Las peticiones se conservan 90 días.

Respuesta o síntoma Qué hacer
that credential has been replaced Alguien emitió una credencial nueva. Usa la última.
Ironchip's secrets API does not serve this path La ruta no es de secretos ni de credenciales temporales. Revisa el montaje (-mount=secrets).
permission denied en un secreto El workload no tiene esa ruta o su carpeta en Secrets it reads.
Rechazado desde la red del pipeline Añade su dirección o rango en Networks it may be used from.