Hoppa till innehållet
Stackship-dokumentation English

HemligheterAdministratörerMaskinöversatt

Nyckelhierarki

Hur hemlighetsvärden krypteras, var huvudnyckeln förvaras och vad det innebär att förlora den.

Två nivåer av nycklar

  • Varje värde krypteras med AES-256-GCM. Chiffertexten är bunden till sitt valv, sin hemlighet och sin version, så den kan inte flyttas till en annan hemlighet.
  • Varje valv har en egen datanyckel. Den förvaras krypterad — omsluten med huvudnyckeln — i Kubernetes-hemligheten sv-keys-<vault> i valvets namespace, aldrig i databasen.
  • Huvudnyckeln (nyckelkrypteringsnyckeln) är en Kubernetes-hemlighet med namnet stackship-secrets-kek i stackship-system, datanyckel key: 32 slumpmässiga byte, base64-kodade.

Databasen innehåller bara metadata och chiffertext.

Huvudnyckeln

Installern skapar huvudnyckeln vid den första installationen och ersätter aldrig en befintlig. Secrets-tjänsten kontrollerar den när den startar och vägrar starta när hemligheten saknas, saknar key eller innehåller en nyckel som inte är 32 byte eller ser svag ut (till exempel läsbar text eller för lite variation); loggen säger då vad som är fel. När allt stämmer loggar den nyckelns fingeravtryck som sha256:…, så att du kan bekräfta att två installationer använder samma nyckel utan att avslöja den.

Tjänsten håller huvudnyckeln i minnet så länge den kör, och upplåsta valvnycklar i fem minuter.

Rotation

Ingen av nycklarna kan roteras i dag. Att byta huvudnyckel gör alla befintliga valv oläsbara, och tjänsten vägrar skapa en valvnyckel där det redan finns en.

Säkerhetskopiera huvudnyckeln

Utan huvudnyckeln kan inget valv läsas. Förvara en kopia av stackship-secrets-kek utanför klustret, lika varsamt som själva hemligheterna. En återställd plattform måste få tillbaka samma huvudnyckel: valvnycklarna i hemligheterna sv-keys-* kan bara låsas upp med den.