Grunderna i Kubernetes · Lektion

Secrets för känsliga data

Lagra och hantera känslig information, som lösenord och API-nycklar, säkert med hjälp av Secrets.

Lektion 2 av 411 steg

Secrets för känsliga data är en gratis lektion i Grunderna i Kubernetes på CoddyKit. Detta är lektion 2 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Grunderna i Kubernetes, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Grunderna i Kubernetes innehåller totalt 4 lektioner.

Skydda känslig information

När Ni bygger applikationer hanterar Ni ofta känslig information, till exempel databaslösenord, API-nycklar eller privata certifikat.

Att lagra dessa direkt i applikationskoden eller konfigurationsfilerna innebär en stor säkerhetsrisk! Det kan leda till dataintrång och exponera Ert system.

Introduktion till Kubernetes Secrets

Kubernetes Secrets är objekt som är utformade för att lagra känsliga data på ett säkert sätt i Ert kluster.

De hjälper Er att hålla känslig information åtskild från Era Pod-definitioner och Er applikationskod, vilket gör Era distributioner säkrare och enklare att hantera.

  • Åtskilda: Håll känsliga data borta från containeravbildningar och Pod YAML.
  • Tillgängliga: Pods kan använda dem som miljövariabler eller monterade filer.

Secrets jämfört med ConfigMaps

Ni kanske minns ConfigMaps från en tidigare lektion. De används för icke-känsliga konfigurationsdata.

Secrets fungerar på liknande sätt, men är särskilt avsedda för känsliga data. Båda lagrar nyckel-värde-par, men Secrets hanterar informationens känsliga natur.

  • ConfigMaps: För allmän, icke-känslig konfiguration (till exempel loggnivåer och API-slutpunkter).
  • Secrets: För känsliga data (till exempel lösenord, tokens och privata nycklar).

Kom ihåg att Secrets är base64-kodade, inte krypterade som standard!

Skapa en Secret från ett literalvärde

Det enklaste sättet att skapa en Secret är från ett literalvärde med hjälp av kubectl create secret generic.

Detta är användbart för enstaka, korta känsliga data, till exempel ett enkelt lösenord.

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

Skapa en Secret från filer

För större eller flerradiga känsliga data, till exempel en privat nyckel eller en komplett konfigurationsfil, är det bättre att skapa en Secret från filer.

Skapa först filerna lokalt och referera sedan till dem. Kubernetes läser filernas innehåll och lagrar 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

Använd Secrets som miljövariabler

Pods kan använda Secret-data genom att injicera dem direkt i sina miljövariabler. Detta är vanligt för enkla nyckel-värde-par.

Ni kan referera till enskilda nycklar från en Secret eller till alla nycklar med hjälp 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

Använd Secrets som monterade filer

För känsliga filer, till exempel certifikat och privata nycklar, eller när en applikation förväntar sig konfiguration från specifika filsökvägar, kan Ni montera Secrets som filer i en Pod.

Varje nyckel i Secret blir en fil i den monterade katalogen, med sitt värde som filens innehåll.

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

Säkerhet för Era Secrets

Även om Secrets skyddar data mot insyn är de ingen universallösning. Kom ihåg följande:

  • Base64-kodning: Secrets är base64-kodade, inte krypterade. Alla som har åtkomst till Secret kan avkoda den.
  • RBAC: Använd Role-Based Access Control (RBAC) för att begränsa vem som får läsa, skapa eller ändra Secrets.
  • Kryptering i vila: För verklig säkerhet bör Ni aktivera kryptering i vila för Era etcd-data (Kubernetes underliggande datalager). Molnleverantörer erbjuder ofta detta.

Uppdatera Secrets

Om Era känsliga data ändras behöver Ni uppdatera Secret. Om Ni kör kubectl create secret igen med nya värden uppdateras den, eller så kan Ni använda kubectl apply -f med en uppdaterad YAML-fil.

Pods som körs och använder Secret hämtar dock inte automatiskt de nya ändringarna. För att tillämpa ändringarna behöver Ni vanligtvis starta om eller distribuera om de Pods som använder Secret.

Snabbkontroll: Secrets

Föreställ Er att Ni har en privat API-nyckel som applikationen behöver använda. Vilken metod är säkrast och mest lämplig för att lagra och tillhandahålla denna nyckel till en Kubernetes Pod?

Sammanfattning: Secrets för känsliga data

Bra jobbat! Ni har lärt Er att hantera känsliga data i Kubernetes!

  • Secrets lagrar känslig information som lösenord och API-nycklar.
  • De är base64-kodade och kan användas som miljövariabler eller monterade filer.
  • Använd alltid RBAC och överväg kryptering i vila för högsta möjliga säkerhet.
  • Kom ihåg att Pods måste startas om för att hämta uppdateringar av Secrets.
Gratis att börja

Lär dig Grunderna i Kubernetes med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
12
Lektioner
48

Vanliga frågor

Är lektionen ”Secrets för känsliga data” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Grunderna i Kubernetes, inklusive ”Secrets för känsliga data”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Grunderna i Kubernetes innehåller totalt 4 lektioner.

Vad lär jag mig i ”Secrets för känsliga data”?

Lagra och hantera känslig information, som lösenord och API-nycklar, säkert med hjälp av Secrets. Ni övar på Grunderna i Kubernetes med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Grunderna i Kubernetes?

Du behöver inga förkunskaper. Utbildningen i Grunderna i Kubernetes på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.

Hur lång tid tar lektionen ”Secrets för känsliga data”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Grunderna i Kubernetes-lektionen?

Ja. Varje Grunderna i Kubernetes-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. ConfigMaps för konfiguration
  2. Secrets för känsliga data
  3. Beständiga volymer och anspråk
  4. StorageClasses och dynamisk provisionering
← Tillbaka till Grunderna i Kubernetes