GH GambleHub

Gestione dei segreti

Gestione dei segreti

1) Perché e cosa crediamo che sia un segreto?

Il segreto è tutto il materiale che porta alla compromissione del sistema o dei dati: password, API-token, OAUTH/JWT private keys, chiavi SSH, certificati, chiavi di crittografia (KEK/DEK), chiavi di firma webhook, DSN database/cache, chiavi fornitori (pagamenti, provider di posta )/SMS), cookie-sale/pepper, token bot/chat, licenze.
I segreti vivono in codice, configura, ambiente, immagini di container, CI/CD, Terraform/Ansible, Logi/Dump - compito di gestione dei segreti: la registrazione, la spedizione, l'uso della rotazione , la revoca del controllo dello smaltimento.

2) Principi di architettura

Centralizzazione. Un livello attendibile (Vault/Cloud Secret Manager/KMS) da memorizzare, rilasciare e controllare.
Privilegi minimi (PoLP). Accesso solo ai servizi/ruoli necessari, per un periodo minimo.
Una vita breve. Preferiscono i segreti dinamici/temporali con TTL/lease.
Crypto-agility. Possibilità di cambiare algoritmi/lunghezze delle chiavi senza interruzione.
Separare i segreti dal codice/immagine. Nessuna password nei repository o nelle immagini Docker.
Osservazione e verifica. Ogni operazione di rilascio/lettura di segreti viene logificata e alimentata.
Rotazione automatica. Rotazione è un processo in pipeline, non un'azione manuale.

3) Soluzioni e ruoli tipici dei componenti

KMS/HSM. Credibilità radice, crittografia/avvolgimenti chiavi (invelope).
Secret Manager/Vault. Archivio delle versioni dei segreti, ACL, controllo, segreti dinamici (DB, cloud-IAM, PKI), modelli di rotazione.
PKI/CA. Rilascia certificati mTLS/SSH/JWT di breve durata.
Agente/sidecar. Consegna di segreti nel Rantaim (file tmpfs, in-memory k/v, hot-reload).
Driver CSI/operatori. Integrazione con Kubernets (Secret Store CSI Driver, cert-manager).
Livello di crittografia in Git. SOPS/age, git-crypt (per il codice dell'infrastruttura).

4) Classificazione e criterio

Separare i segreti per criticità (P0/P1/P2) e volume dei danni (tenant-scoped, environment-scoped, org-wide). Per ogni classe, specificare:
  • TTL/lease e rotazione
  • metodo di rilascio (altoparlante vs statico), formato, supporto;
  • criteri di accesso (chi/dove/perché), requisiti di mTLS e di autenticazione reciproca;
  • controllo (che logifichiamo, quanti conserviamo, chi revuota);
  • procedure break-glass e recensione.

5) Ciclo di vita del segreto

1. Creazione: tramite API Secret Manager con metadati (owner, tags, scope).
2. Memorizzazione: crittografata (avvelope: DEK avvolto da KMS/HSM).
3. Consegna: su richiesta di un soggetto autorizzato (OIDC/JWT, SPIFFE/SVID, mTLS).
4. Uso: esclusivamente in memoria/tmpfs; divieto di loging/dampo.
5. Rotazione per TTL o evento (compromissione); Supporto delle versioni parallele (N-1).
6. Recensione/blocco: disattivazione immediata della lease, l'account/chiave diesel nel sistema di destinazione.
7. Smaltimento: distruzione di versioni/materiale, nitida catena di controllo.

6) Segreti dinamici (consigliato per impostazione predefinita)

Il segreto viene rilasciato per un breve periodo e scade automaticamente. Esempi:
  • Credenziali di database (Postgres/MySQL) con TTL 15-60 min.
  • Chiavi temporanee cloud (AWS/GCP/Azure) per il ruolo del servizio.
  • certificati SSH (durata 5-30 min), certificati X.509 (ora/giorno).
  • JWT temporaneo per la firma di richieste, sessione-tickets broker.
  • Pro: blast radius minimo, recensione semplificata (niente «rimarrà» nel mondo).

7) Consegna di segreti nel RENT

Kubernetes:
  • Secret Store CSI Driver consente di montare i segreti da un gestore esterno a pod come file (tmpfs).
  • Evitare Kubernets Secret come unica fonte (base64) di crittografia; se necessario: abilita il provider KMS per etcd.
  • Agente Sidecar con lease auto e hot-reload.
  • VM/Bare-metal: agente di sistema + Vault/Secret Manager, cache in memoria, TCB minimo.
  • Serverless: l'integrazione del cloud con la sostituzione trasparente dei segreti come variabili ambiente/file, ma evitare invvars a lunga vita - preferibilmente file/memoria.

Esempio (Kubernets + CSI, concettuale)

yaml apiVersion: v1 kind: Pod metadata: { name: app }
spec:
serviceAccountName: app-sa # is associated with a role in Secret Manager volumes:
- name: secrets csi:
driver: secrets-store. csi. k8s. io readOnly: true volumeAttributes:
secretProviderClass: app-spc containers:
- name: app volumeMounts:
- mountPath: /run/secrets name: secrets readOnly: true

8) Integrazioni CI/CD e IaC

CI - I worker ricevono token a breve durata secondo OIDC (Workload Identity). Vietare i segreti «mascherati» che entrano nei fogli; passo «scansione delle fuoriuscite» (trofflehog/gitleaks).
Il deposito raccoglie i segreti al momento della registrazione, non li registra nei manufatti.
IaC: Terraform memorizza le variabili in Secret Manager. lo stato (state) è cifrato e limitato in base all'accesso.
SOPS/age - Per i repo, conservare i manifesti criptati, le chiavi sono gestite da KMS.

Esempio (sezioni SOPS)

yaml apiVersion: v1 kind: Secret metadata: { name: app }
data:
PASSWORD: ENC[AES256_GCM,data:...,sops:...]
sops:
kms:
- arn: arn:aws:kms:...
encrypted_regex: '^(data    stringData)$'
version: '3. 8. 0'

9) Criteri di accesso e autenticazione dei carichi di lavoro

Workload identity: SPIFFE/SPIRE, Kubernetes SA→OIDC→IAM-роль, mTLS.
Token temporanei: TTL brevi, scope stretto.
ABAC/RBAC in Secret Manager: «Chi può leggere il segreto X in Y è separato da chi può creare/rotare».
Multiforme: namespace/key-rings per affittuario; regole e rapporti separati.

10) Rotazione, versione e compatibilità

Condividi l'ID del segreto e la sua versione ('secret/app/db # v17').
Supporto di due versioni attive (N e N-1) per la rotazione senza interruzione.
La rotazione è un evento: licenziamento, compromissione, cambio di provider, migrazione di algoritmi.
Automatizzare: cron/backend di rotazione in Vault/Secret Manager + trigger Web di riavvio delle applicazioni/renning.

Mini-ricetta rotazione webhook a due righe

text
T0: we publish two secrets in the provider: current, next
T1: the application starts accepting signatures by both current and next
T2: external system switches signature to next
T3: we do next -> current, re-release new next

11) Archiviazione fuori Rate: backup e manufatti

Non entrare mai nei manufatti (immagini, archivi, dampi).
Backap Secret Manager - Crittografia, chiavi di memorizzazione fuori dallo stesso tracciato.
Etichette e scansioni DLP: rilevamento dei segreti in S3/Blob/GCS, Git, manufatti CI.

12) Osservazione, verifica e SLO

Metriche: numero di erogazioni/segreto/servizio, percentuale di lease scadute, TTL media, tempo di rotazione, tempo di convergenza (secondi/minuti prima di «accettare» la nuova versione).
Logi di controllo: chi/cosa/quando/da dove/perché; archiviazione separata, anche crittografata.
SLO: 99% delle erogazioni <200 ms; 0 fuoriuscite nei cassetti 100% dei segreti hanno owner/TTL/tag; Il 100% dei segreti critici è dinamico o rotativo da 30 giorni.
Alert: il segreto scade <7 giorni (per gli statici), l'aumento dei guasti di autenticazione al magazzino, nessuna lettura del segreto> N giorni (morto), sorgenti geo/ASN inaspettate.

13) Errori frequenti e come evitarli

I segreti sono in Git/immagini. Utilizzare SOPS/age e scanner; il criterio vieta le righe nude.
Avvvars come supporto a lungo termine. Preferire i file tmpfs/in-memory; pulire l'ambiente in caso di fork/dampo.
Gli stessi segreti per il dave/stage/prod. Dividetevi per ambienti.
Password statiche a lunga vita. Passare a dinamiche/a breve durata.
Un'unica chiave guidata per tutto. Dividere per affittuari/progetti/servizi.
Nessun hot-reload. L'applicazione richiede una finestra restart di vulnerabilità durante la rotazione.

14) Esempi di integrazioni (schematico)

Vault accesso dinamico a Postges

hcl
Vault: role -> issues the user to the database with TTL 30m and privileges only to the app path "database/creds/app-role" {
capabilities = ["read"]
}
Application requests/database/creds/app-role -> receives (user, pass, ttl)

Firma JWT delle richieste (breve scadenza)

La chiave privata è memorizzata in Secret Manager; il servizio richiede un signing-token di breve durata e un agente locale firma un payload (la chiave non viene trasferita all'applicazione come stringa).

certificati SSH per gli ammiragli

Rilascio SSH-cert per 10 minuti SSO (OIDC), senza distribuzione di chiavi permanenti.

15) Sicurezza ai bordi

Loghi/trailer/metriche: igienizzatori, filtri per chiavi/pattern conosciuti; campi «riservati» - maschera in APM.
Dump/crash-report - Disattivare per impostazione predefinita; Se necessario, crittografare e pulire.
Applicazioni client/mobile: minimizza i segreti off-line, utilizza i TPM (Keychain/Keystore), il collegamento al dispositivo, il pinning TLS con display di emergenza.

16) Complaens

PCI DSS: divieto di memorizzare i segreti PAN/senza crittografia Controllo rigoroso di accesso e rotazione.
ISO 27001/SOC2: requisiti di gestione degli asset, registrazione, controllo degli accessi, modifica delle configurazioni.
Controlli GDPR/locali: minimizzazione, accesso, controllo.

17) Processi e runbook

Messa in funzione

1. Inventario dei segreti (repository, CI, immagini, runtime, backap).
2. Classificazione e tag (owner, environment, tenant, rotation-policy).
3. Selezione dello storage (Vault/Cloud SM) + integrazione con KMS/HSM.
4. Impostazione del rilascio per workload identity (OIDC/SPIRE).
5. Abilitazione di segreti dinamici per database/cloud/PKI.
6. Rotazione automatica e hot-reload; Gli alert dell'espatrio.
7. Configurazione degli scanner di perdita e di Data Catalog/DS.

Script di emergenza

Sospetto di perdita: foglio di accesso fermo, rotazione immediata, revoca certificati/chiavi, reimpostazione di token, controllo avanzato, RCA.
Non disponibile Secret Manager: cache locale in memoria con TTL ridotto, degrado delle funzioni, limitazione delle nuove connessioni, break-glass manuali.
Compromettere la chiave principale: rigenerazione key-hierarchy, rewrap di tutti i DEK, verifica di tutte le visualizzazioni per la finestra di rischio.

18) Assegno fogli

Prima di vendere

  • I segreti sono stati rimossi dal codice/immagine; Gli scanner di perdita sono attivati.
  • Per i segreti critici sono inclusi meccanismi dinamici.
  • Spedizione tramite sidecar/CSI/tmpfs con hot-reload, senza evvars duraturi.
  • Criteri IAM/ABAC configurati, mappati a workload identity.
  • Rotazione automatica e versione doppia (N, N-1) per la compatibilità.
  • Metriche/alert/verifiche abilitate; test di degrado superati.

Utilizzo

  • Rapporto mensile: proprietari, TTL, segreti scaduti, inutilizzati.
  • Rotazioni periodiche e pentestri delle vie di fuga (fogli, dampi, manufatti).
  • crypto-agility e sostituzione di emergenza A/radici.

19) FAQ

C: Secret Manager è sufficiente senza KMS?
Oh: Per il livello base sì, ma è meglio usare la crittografia envelope: KEK in KMS/HSM, i segreti sono avvolti. Semplifica la recensione e la compilazione.

C: Cosa scegliere, uno statico o un altoparlante?
L'altoparlante predefinito. Lasciare lo statico solo dove non ci sono provider supportati e bruciare TTL fino a giorni/ore + rotazione automatica.

H: Come si fa a mettere i segreti in sicurezza nella microservice?
О: Workload identity → mTLS к Secret Manager → sidecar/CSI → файлы в tmpfs + hot-reload. Niente cassetti, niente invvars «per sempre».

C: È possibile mantenere i segreti in Kubernets Secret?
O: Solo se è abilitata la crittografia etcd con KMS e regole rigorose. Preferire lo storage esterno e il CSI.

C: Come cancellare l'accesso dell'inquilino?
A: Ritira/blocca i suoi criteri in Secret Manager, disabilita tutti i leases, rotazione/rigenerazione delle chiavi KMS - Disattiva l'unwrap dei relativi KEK.

Materiali correlati:
  • Crittografia At Rest'
  • Crittografia in transit
  • Gestione e rotazione delle chiavi
  • Autenticazione S2S
  • Firma e verifica query
Contact

Mettiti in contatto

Scrivici per qualsiasi domanda o richiesta di supporto.Siamo sempre pronti ad aiutarti!

Telegram
@Gamble_GC
Avvia integrazione

L’Email è obbligatoria. Telegram o WhatsApp — opzionali.

Il tuo nome opzionale
Email opzionale
Oggetto opzionale
Messaggio opzionale
Telegram opzionale
@
Se indichi Telegram — ti risponderemo anche lì, oltre che via Email.
WhatsApp opzionale
Formato: +prefisso internazionale e numero (ad es. +39XXXXXXXXX).

Cliccando sul pulsante, acconsenti al trattamento dei dati.