0Pricing
DevOps Bootcamp · Lezione

Secret per i dati sensibili

Conservi e gestisca in modo sicuro informazioni sensibili come password e chiavi API utilizzando i Secret.

Secret per i dati sensibili è una lezione DevOps Bootcamp gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento DevOps Bootcamp, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso DevOps Bootcamp include 4 lezioni in totale.

Proteggere le informazioni sensibili

Quando sviluppa applicazioni, spesso gestisce informazioni sensibili come password di database, chiavi API o certificati privati.

Memorizzarle direttamente nel codice dell'applicazione o nei file di configurazione rappresenta un grave rischio per la sicurezza! Può causare violazioni dei dati ed esporre il sistema.

Introduzione a Kubernetes Secrets

Kubernetes Secrets sono oggetti progettati per memorizzare in modo sicuro i dati sensibili all'interno del cluster.

Consentono di mantenere separate le informazioni sensibili dalle definizioni dei Pod e dal codice dell'applicazione, rendendo i deployment più sicuri e facili da gestire.

  • Separati: mantenga i dati sensibili fuori dalle immagini dei container e dai file YAML dei Pod.
  • Accessibili: i Pod possono utilizzarli come variabili d'ambiente o file montati.

Secrets e ConfigMaps

Potrebbe ricordare i ConfigMaps da una lezione precedente, utilizzati per dati di configurazione non sensibili.

I Secrets sono simili, ma sono specificamente destinati ai dati sensibili. Entrambi memorizzano coppie chiave-valore, ma i Secrets gestiscono la natura sensibile di questi dati.

  • ConfigMaps: per la configurazione generale non sensibile (ad esempio, livelli di log ed endpoint API).
  • Secrets: per dati sensibili (ad esempio, password, token e chiavi private).

Ricordi che i Secrets sono codificati in base64, non crittografati per impostazione predefinita!

Creare un Secret da un valore letterale

Il modo più semplice per creare un Secret consiste nell'utilizzare un valore letterale con kubectl create secret generic.

È utile per singoli dati sensibili brevi, come una semplice password.

kubectl create secret generic my-db-secret \
  --from-literal=username=admin \
  --from-literal=password=SuperSecretP@ssw0rd!

Creare un Secret da file

Per dati sensibili più grandi o su più righe, come una chiave privata o un file di configurazione completo, è preferibile creare un Secret a partire da file.

Per prima cosa, crei i file localmente, quindi vi faccia riferimento. Kubernetes leggerà il contenuto dei file e lo memorizzerà.

# Create local files first
echo "my-api-key-12345" > api-key.txt
echo "my-token-abcde" > auth-token.txt

# Create the Secret
kubectl create secret generic app-credentials \
  --from-file=api-key.txt \
  --from-file=auth-token.txt

Utilizzare i Secrets come variabili d'ambiente

I Pod possono utilizzare i dati dei Secrets inserendoli direttamente nelle proprie variabili d'ambiente. È una soluzione comune per semplici coppie chiave-valore.

Può fare riferimento a singole chiavi di un Secret oppure a tutte utilizzando envFrom.

apiVersion: v1
kind: Pod
metadata:
  name: my-app-pod-env
spec:
  containers:
  - name: my-app
    image: nginx:latest
    env:
    - name: DB_USERNAME
      valueFrom:
        secretKeyRef:
          name: my-db-secret
          key: username
    - name: DB_PASSWORD
      valueFrom:
        secretKeyRef:
          name: my-db-secret
          key: password

Utilizzare i Secrets come file montati

Per file sensibili, come certificati e chiavi private, o quando un'applicazione si aspetta la configurazione in percorsi specifici, può montare i Secrets come file all'interno di un Pod.

Ogni chiave del Secret diventa un file nella directory montata e il suo valore ne costituisce il contenuto.

apiVersion: v1
kind: Pod
metadata:
  name: my-app-pod-vol
spec:
  containers:
  - name: my-app
    image: nginx:latest
    volumeMounts:
    - name: app-secret-volume
      mountPath: "/etc/secrets"
      readOnly: true
  volumes:
  - name: app-secret-volume
    secret:
      secretName: app-credentials

Sicurezza dei Secrets

Sebbene i Secrets proteggano i dati da un'ispezione superficiale, non sono una soluzione universale. Tenga presenti questi punti:

  • Codifica base64: i Secrets sono codificati in base64, non crittografati. Chiunque abbia accesso al Secret può decodificarlo.
  • RBAC: utilizzi il controllo degli accessi basato sui ruoli (RBAC) per limitare chi può leggere, creare o modificare i Secrets.
  • Crittografia a riposo: per una sicurezza effettiva, abiliti la crittografia a riposo per i dati di etcd (l'archivio di supporto di Kubernetes). I provider cloud offrono spesso questa funzionalità.

Aggiornare i Secrets

Se i dati sensibili cambiano, dovrà aggiornare il Secret. È sufficiente eseguire nuovamente kubectl create secret con i nuovi valori per aggiornarlo; in alternativa, utilizzi kubectl apply -f con un file YAML aggiornato.

Tuttavia, i Pod in esecuzione che utilizzano il Secret non acquisiranno automaticamente le modifiche. Per applicarle, in genere è necessario riavviare o ridistribuire i Pod che utilizzano il Secret.

Verifica rapida: Secrets

Immagini di avere una chiave API privata a cui l'applicazione deve poter accedere. Qual è il metodo più sicuro e appropriato per memorizzare e fornire questa chiave a un Pod Kubernetes?

Riepilogo: Secrets per i dati sensibili

Ottimo lavoro! Ha imparato a gestire i dati sensibili in Kubernetes!

  • I Secrets memorizzano informazioni sensibili come password e chiavi API.
  • Sono codificati in base64 e possono essere utilizzati come variabili d'ambiente o file montati.
  • Applichi sempre RBAC e valuti la crittografia a riposo per ottenere il massimo livello di sicurezza.
  • Ricordi che i Pod devono essere riavviati per acquisire gli aggiornamenti dei Secrets.

Domande Frequenti

La lezione «Secret per i dati sensibili» è gratuita?

Sì — il testo completo di «Secret per i dati sensibili» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso DevOps Bootcamp, passa a CoddyKit PRO. Il corso DevOps Bootcamp include 4 lezioni in totale.

Cosa imparerò in «Secret per i dati sensibili»?

Conservi e gestisca in modo sicuro informazioni sensibili come password e chiavi API utilizzando i Secret. Eserciti DevOps Bootcamp con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare DevOps Bootcamp?

Non è richiesta alcuna esperienza precedente. DevOps Bootcamp su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Secret per i dati sensibili»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione DevOps Bootcamp?

Sì. Ogni lezione DevOps Bootcamp include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. ConfigMap per la configurazione
  2. Secret per i dati sensibili
  3. Persistent Volume e Persistent Volume Claim
  4. StorageClass e provisioning dinamico
← Torna a DevOps Bootcamp