DevOps-bootcamp · leksjon

Secrets for sensitive data

Lagre og administrer sensitiv informasjon som passord og API-nøkler på en sikker måte ved hjelp av Secrets.

Leksjon 2 av 411 trinn

Secrets for sensitive data er en gratis leksjon i DevOps-bootcamp på CoddyKit. Dette er leksjon 2 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i DevOps-bootcamp, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i DevOps-bootcamp inneholder totalt 4 leksjoner.

Beskyttelse av sensitiv informasjon

Når De utvikler applikasjoner, håndterer De ofte sensitiv informasjon som databasepassord, API-nøkler eller private sertifikater.

Det er en stor sikkerhetsrisiko å lagre dette direkte i applikasjonskoden eller konfigurasjonsfilene! Det kan føre til datalekkasjer og eksponere systemet Deres.

Introduksjon til Kubernetes Secrets

Kubernetes Secrets er objekter som er utviklet for å lagre sensitive data på en sikker måte i klyngen.

De hjelper Dem med å holde sensitiv informasjon atskilt fra Pod-definisjonene og applikasjonskoden, slik at utrullingene blir sikrere og enklere å administrere.

  • Separert: Hold sensitive data utenfor containeravbildninger og Pod-YAML.
  • Tilgjengelig: Pods kan bruke dem som miljøvariabler eller monterte filer.

Secrets kontra ConfigMaps

De husker kanskje ConfigMaps fra en tidligere leksjon, som brukes til ikke-sensitive konfigurasjonsdata.

Secrets ligner på dem, men er spesifikt beregnet på sensitive data. Begge lagrer nøkkel-verdi-par, men Secrets håndterer den sensitive karakteren til dataene.

  • ConfigMaps: For generell, ikke-sensitiv konfigurasjon (f.eks. loggnivåer og API-endepunkter).
  • Secrets: For sensitive data (f.eks. passord, tokens og private nøkler).

Husk at Secrets er base64-kodet, ikke kryptert som standard!

Opprett Secret fra en literalverdi

Den enkleste måten å opprette et Secret på er fra en literalverdi ved hjelp av kubectl create secret generic.

Dette er nyttig for enkelte, korte stykker med sensitive data, for eksempel et enkelt passord.

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

Opprett Secret fra filer

For større eller flerl estás sensitive data (som en privat nøkkel eller en fullstendig konfigurasjonsfil) er det bedre å opprette et Secret fra filer.

Opprett først filene lokalt, og referer deretter til dem. Kubernetes leser filinnholdet og lagrer det.

# 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

Bruk Secrets som miljøvariabler

Pods kan bruke Secret-data ved å injisere dem direkte i miljøvariablene sine. Dette er vanlig for enkle nøkkel-verdi-par.

De kan referere til individuelle nøkler fra et Secret, eller til alle ved hjelp av 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

Bruk Secrets som monterte filer

For sensitive filer (som sertifikater og private nøkler), eller når en applikasjon forventer konfigurasjon fra bestemte filbaner, kan De montere Secrets som filer i en Pod.

Hver nøkkel i Secret-et blir en fil i den monterte katalogen, med verdien som filens innhold.

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

Sikkerhet for Secrets

Selv om Secrets beskytter data mot tilfeldig innsyn, er de ikke en fullstendig løsning. Husk disse punktene:

  • Base64-koding: Secrets er base64-kodet, ikke kryptert. Alle som har tilgang til Secret-et, kan dekode det.
  • RBAC: Bruk rollebasert tilgangskontroll (RBAC) for å begrense hvem som kan lese, opprette eller endre Secrets.
  • Kryptering i hvile: For reell sikkerhet bør De aktivere kryptering i hvile for etcd-dataene (Kubernetes' underliggende datalager). Skyleverandører tilbyr ofte dette.

Oppdatering av Secrets

Hvis de sensitive dataene endres, må De oppdatere Secret-et. Hvis De kjører kubectl create secret på nytt med nye verdier, blir det oppdatert, eller De kan bruke kubectl apply -f med en oppdatert YAML-fil.

Pods som kjører og bruker Secret-et, vil imidlertid ikke automatisk ta i bruk endringene. For å ta i bruk endringene må De vanligvis starte på nytt eller rulle ut Pods som bruker Secret-et på nytt.

Rask kontroll: Secrets

Se for Dem at De har en privat API-nøkkel som applikasjonen Deres må bruke. Hvilken metode er den sikreste og mest egnede for å lagre og gjøre denne nøkkelen tilgjengelig for en Kubernetes-Pod?

Oppsummering: Secrets for sensitive data

Godt jobbet! De har lært hvordan man håndterer sensitive data i Kubernetes!

  • Secrets lagrer sensitiv informasjon som passord og API-nøkler.
  • De er base64-kodet og kan brukes som miljøvariabler eller monterte filer.
  • Bruk alltid RBAC, og vurder kryptering i hvile for maksimal sikkerhet.
  • Husk at Pods må startes på nytt for å ta i bruk oppdateringer av Secrets.
Gratis å komme i gang

Lær deg DevOps-bootcamp med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
142
Leksjoner
568

Ofte stilte spørsmål

Er leksjonen «Secrets for sensitive data» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien DevOps-bootcamp, inkludert «Secrets for sensitive data», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i DevOps-bootcamp inneholder totalt 4 leksjoner.

Hva lærer jeg i «Secrets for sensitive data»?

Lagre og administrer sensitiv informasjon som passord og API-nøkler på en sikker måte ved hjelp av Secrets. Du øver på DevOps-bootcamp med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med DevOps-bootcamp?

Ingen tidligere erfaring er nødvendig. DevOps-bootcamp på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «Secrets for sensitive data»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne DevOps-bootcamp-leksjonen?

Ja. Alle DevOps-bootcamp-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. ConfigMaps for konfigurasjon
  2. Secrets for sensitive data
  3. Persistent Volumes og Claims
  4. StorageClasses og dynamisk klargjøring
← Tilbake til DevOps-bootcamp