Secrets til følsomme data
Gem og administrer følsomme oplysninger som adgangskoder og API-nøgler sikkert ved hjælp af Secrets.
Secrets til følsomme data er en gratis Intensiv DevOps-uddannelse-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Intensiv DevOps-uddannelse, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.
Beskyttelse af følsomme oplysninger
Når du udvikler programmer, arbejder du ofte med følsomme oplysninger som databaseadgangskoder, API-nøgler eller private certifikater.
Det er en stor sikkerhedsrisiko at gemme disse oplysninger direkte i programkoden eller konfigurationsfilerne! Det kan føre til datalæk og blotlægge dit system.
Introduktion til Kubernetes Secrets
Kubernetes Secrets er objekter, der er designet til at gemme følsomme data sikkert i din klynge.
De hjælper dig med at holde følsomme oplysninger adskilt fra dine Pod-definitioner og din programkode, så dine udrulninger bliver sikrere og nemmere at administrere.
- Adskilt: Hold følsomme data ude af containerafbildninger og Pod-YAML.
- Tilgængelige: Pods kan bruge dem som miljøvariabler eller monterede filer.
Secrets sammenlignet med ConfigMaps
Du husker måske ConfigMaps fra en tidligere lektion, hvor de blev brugt til ikke-følsomme konfigurationsdata.
Secrets ligner dem, men er specifikt beregnet til følsomme data. Begge gemmer nøgleværdi-par, men Secrets håndterer dataenes følsomme karakter.
- ConfigMaps: Til generel, ikke-følsom konfiguration (f.eks. logningsniveauer og API-slutpunkter).
- Secrets: Til følsomme data (f.eks. adgangskoder, tokens og private nøgler).
Husk, at Secrets som standard er kodet med base64, ikke krypteret!
Opret en Secret fra en literal-værdi
Den enkleste måde at oprette en Secret på er ud fra en literal-værdi ved hjælp af kubectl create secret generic.
Det er nyttigt til enkelte, korte stykker følsomme data som en simpel adgangskode.
kubectl create secret generic my-db-secret \
--from-literal=username=admin \
--from-literal=password=SuperSecretP@ssw0rd!Opret en Secret fra filer
Til større eller flerlinede følsomme data (som en privat nøgle eller en komplet konfigurationsfil) er det bedre at oprette en Secret ud fra filer.
Opret først filerne lokalt, og henvis derefter til dem. Kubernetes læser filernes indhold og gemmer 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.txtBrug Secrets som miljøvariabler
Pods kan bruge Secret-data ved at indsætte dem direkte i deres miljøvariabler. Det er almindeligt for simple nøgleværdi-par.
Du kan henvise til individuelle nøgler fra en Secret eller til dem alle ved hjælp af 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: passwordBrug Secrets som monterede filer
Til følsomme filer (som certifikater og private nøgler), eller når et program forventer konfiguration fra bestemte filstier, kan du montere Secrets som filer i en Pod.
Hver nøgle i Secret'en bliver til en fil i den monterede mappe, og dens værdi bliver filens indhold.
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-credentialsSikkerhed for dine Secrets
Selvom Secrets beskytter data mod tilfældigt indsyn, er de ikke en universalløsning. Husk disse punkter:
- Base64-kodning: Secrets er kodet med base64, ikke krypteret. Alle, der har adgang til Secret'en, kan afkode den.
- RBAC: Brug rollebaseret adgangskontrol (RBAC) til at begrænse, hvem der kan læse, oprette eller ændre Secrets.
- Kryptering under lagring: Aktivér kryptering under lagring for dine etcd-data (Kubernetes' bagvedliggende datalager) for at opnå reel sikkerhed. Cloud-udbydere tilbyder ofte dette.
Opdatering af Secrets
Hvis dine følsomme data ændres, skal du opdatere Secret'en. Hvis du kører kubectl create secret igen med de nye værdier, opdateres den, eller du kan bruge kubectl apply -f med en opdateret YAML-fil.
Kørende Pods, der bruger Secret'en, opfanger dog ikke automatisk ændringerne. For at anvende ændringerne skal du typisk genstarte eller udrulle de Pods, der bruger Secret'en, på ny.
Hurtigt tjek: Secrets
Forestil dig, at du har en privat API-nøgle, som dit program skal bruge. Hvilken metode er den sikreste og mest passende til at gemme og levere denne nøgle til en Kubernetes-Pod?
Opsummering: Secrets til følsomme data
Godt gået! Du har lært, hvordan du håndterer følsomme data i Kubernetes!
- Secrets gemmer følsomme oplysninger som adgangskoder og API-nøgler.
- De er kodet med base64 og kan bruges som miljøvariabler eller monterede filer.
- Anvend altid RBAC, og overvej kryptering under lagring for maksimal sikkerhed.
- Husk, at Pods skal genstartes for at registrere opdateringer af Secrets.
Lær Intensiv DevOps-uddannelse med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 142
- Lektioner
- 568
Ofte stillede spørgsmål
Er lektionen “Secrets til følsomme data” gratis?
Ja — alle 3 lektioner i læringssporet Intensiv DevOps-uddannelse, inklusive “Secrets til følsomme data”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Secrets til følsomme data”?
Gem og administrer følsomme oplysninger som adgangskoder og API-nøgler sikkert ved hjælp af Secrets. Du øver dig i Intensiv DevOps-uddannelse med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Intensiv DevOps-uddannelse?
Der kræves ingen tidligere erfaring. Intensiv DevOps-uddannelse på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “Secrets til følsomme data”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Intensiv DevOps-uddannelse-lektion?
Ja. Alle Intensiv DevOps-uddannelse-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- ConfigMaps til konfiguration
- Secrets til følsomme data
- Persistent Volumes og Claims
- StorageClasses og dynamisk provisioning