docs(claude): criterio SOPS vs Bitwarden y descifrado vía SOPS_AGE_KEY_CMD - #2
Open
dferraes wants to merge 2 commits into
Open
docs(claude): criterio SOPS vs Bitwarden y descifrado vía SOPS_AGE_KEY_CMD#2dferraes wants to merge 2 commits into
dferraes wants to merge 2 commits into
Conversation
"Todo secreto se cifra con SOPS+age" mezclaba dos necesidades distintas bajo un mismo mecanismo. Se escribe el criterio que las separa, anclado en quién consume el valor y quién lo generó: si lo generó el despliegue y nadie lo teclea, es SOPS; si lo eligió una persona o lo emitió un tercero, nunca es sólo-SOPS. Incluye la regla de desempate (si aplican las dos, Bitwarden es la fuente de verdad), las reglas del espejo en SOPS para que la copia no se vuelva una segunda fuente de verdad, el tercer bucket que faltaba (GitHub Secrets para lo que consume Actions) y el antipatrón en las dos direcciones. Criterio completo en dferraes/support, spec-gestion-secretos.md §Capa 0. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Vym5o4grvEgVWTFSFvuHy8
Copiar ~/.config/sops/age/keys.txt a mano en cada máquina nueva era el precio de que un dev container o un remoto no traigan la llave por diseño. Con SOPS_AGE_KEY_CMD apuntando a `rbw get`, cualquier máquina con la bóveda desbloqueada descifra sin que nadie copie un archivo. Es aditivo y no toca .sops.yaml: es del lado de quien descifra, no cambia los recipients. Se apunta al item que ya existe (`Llave age personal`) en vez de crear uno nuevo: dos items con el mismo secreto son dos fuentes de verdad. Se documenta el falso OK de la verificación: sops cae de vuelta al archivo local sin avisar, así que un `sops -d` exitoso en la máquina principal no prueba que el CMD sirva. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Vym5o4grvEgVWTFSFvuHy8
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Propaga a este repo dos decisiones del 2026-08-25 sobre secretos — parte de la propagación a los 61 repos activos de
dferraes+ITEVOXy a los 4 agentes locales (Claude Code, Codex, Gemini/Antigravity, Kimi).1. Qué secreto va a SOPS y cuál va a Bitwarden
"Todo secreto se cifra con SOPS+age" suena a regla simple, pero mezcla dos necesidades distintas bajo un mismo mecanismo. La mezcla ya produjo un caso real: el password semilla del superusuario de NetBox terminó dentro de un vault SOPS de Ansible junto a claves que sí son de despliegue, cuando en realidad es el login de una persona a un panel.
SECRET_KEY_BASE, un DES key) → SOPS siempre. Lo eligió una persona o lo emitió un tercero → nunca es sólo-SOPS.2. Descifrar sin llave local (
SOPS_AGE_KEY_CMD+ Bitwarden)Copiar
~/.config/sops/age/keys.txta mano en cada máquina nueva era el precio de que un dev container o un remoto no traigan la llave por diseño. ConSOPS_AGE_KEY_CMDapuntando arbw get, cualquier máquina con la bóveda desbloqueada descifra sin que nadie copie un archivo..sops.yaml: es del lado de quien descifra, no cambia los recipients.Llave age personal) en vez de crear uno nuevo — dos items con el mismo secreto son dos fuentes de verdad.sopscae de vuelta al archivo local sin avisar, así que unsops -dexitoso en la máquina principal no prueba que el CMD sirva.Verificado empíricamente el 2026-08-25 con sops 3.13.3: con la config local aislada, el control falla y el
SOPS_AGE_KEY_CMDdescifra.Alcance
Solo documentación — este PR no mueve, cifra, rota ni reclasifica ningún secreto, y no cambia ningún
.sops.yaml.Criterio completo:
spec-gestion-secretos.md(§Capa 0 y §Capa 1)🤖 Generated with Claude Code
https://claude.ai/code/session_01Vym5o4grvEgVWTFSFvuHy8