Sikker håndtering av Secrets med eksterne Secret Stores
Slutt å legge Secrets i klartekst i kodebasen, og integrer Kubernetes med eksterne hvelv som HashiCorp Vault ved hjelp av External Secrets Operator.
Sikker håndtering av Secrets med eksterne Secret Stores er en gratis leksjon i Docker og Kubernetes for utviklere på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Docker og Kubernetes for utviklere, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Docker og Kubernetes for utviklere inneholder totalt 4 leksjoner.
Kubernetes-Secrets er bare kodet
Som standard er en Kubernetes-Secret bare base64-kodet, ikke kryptert. Alle med API-tilgang eller tilgang til etcd kan lese den hvis det ikke legges til ekstra beskyttelse.
Kryptering ved lagring
Et første steg er å aktivere kryptering ved lagring i API-serveren, slik at Secret-data krypteres før de skrives til etcd.
apiVersion: apiserver.config.k8s.io/v1
kind: EncryptionConfiguration
resources:
- resources: ["secrets"]
providers:
- aescbc:
keys:
- name: key1
secret: <base64-key>Git-problemet
I GitOps lekker legitimasjon hvis Secret-YAML committes til et repo. Vi trenger Secrets som ligger utenfor Git, men som likevel overføres til klyngen.
Eksterne Secret-lagre
Verktøy som HashiCorp Vault, AWS Secrets Manager og GCP Secret Manager lagrer Secrets sentralt med revisjonssporing, rotering og finmasket tilgangskontroll.
External Secrets Operator
External Secrets Operator (ESO) synkroniserer verdier fra et eksternt lager til opprinnelige Kubernetes-Secrets, slik at arbeidsbelastninger kan bruke dem på vanlig måte.
Definere en SecretStore
En SecretStore forteller ESO hvordan den skal autentisere mot backend-systemet.
apiVersion: external-secrets.io/v1beta1
kind: SecretStore
metadata:
name: vault-backend
spec:
provider:
vault:
server: https://vault.example.com
path: secret
auth:
kubernetes:
role: my-appDefinere en ExternalSecret
En ExternalSecret knytter en nøkkel i lageret til en generert Kubernetes-Secret.
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: db-creds
spec:
secretStoreRef:
name: vault-backend
kind: SecretStore
target:
name: db-creds
data:
- secretKey: password
remoteRef:
key: database/prod
property: passwordAutomatisk rotering
ESO oppdaterer synkroniserte Secrets med jevne mellomrom, slik at rotering av en verdi i Vault overføres til klyngen uten nye utrullinger.
spec:
refreshInterval: 1hAlternativet Sealed Secrets
Hvis De må beholde Secrets i Git, krypterer Sealed Secrets dem med en nøkkel som bare finnes i klyngen. Resultatet er en SealedSecret som trygt kan committes, og som bare kontrolleren kan dekryptere.
Begrense tilgang med RBAC
Begrens hvem som kan lese Secrets ved hjelp av RBAC, og foretrekk å montere Secrets som filer fremfor miljøvariabler for å redusere risikoen for utilsiktet logging.
Unngå lekkasjer
Skriv aldri Secrets ut i logger eller CI-utdata, og legg til skanning etter Secrets i pipelinen for å oppdage utilsiktede commits.
Hurtigsjekk
Test det De har lært.
Oppsummering
De har lært at Secrets bare er base64-kodet, hvordan kryptering ved lagring hjelper, og hvordan External Secrets Operator synkroniserer fra Vault og lignende lagre, samt hvordan Sealed Secrets, rotering og RBAC bidrar til å holde legitimasjon sikker.
Lær deg Docker og Kubernetes for utviklere 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
- 12
- Leksjoner
- 48
Ofte stilte spørsmål
Er leksjonen «Sikker håndtering av Secrets med eksterne Secret Stores» gratis?
Ja – hele teksten i «Sikker håndtering av Secrets med eksterne Secret Stores» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Docker og Kubernetes for utviklere-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Docker og Kubernetes for utviklere inneholder totalt 4 leksjoner.
Hva lærer jeg i «Sikker håndtering av Secrets med eksterne Secret Stores»?
Slutt å legge Secrets i klartekst i kodebasen, og integrer Kubernetes med eksterne hvelv som HashiCorp Vault ved hjelp av External Secrets Operator. Du øver på Docker og Kubernetes for utviklere 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 Docker og Kubernetes for utviklere?
Ingen tidligere erfaring er nødvendig. Docker og Kubernetes for utviklere 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 4 av 4.
Hvor lang tid tar leksjonen «Sikker håndtering av Secrets med eksterne Secret Stores»?
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 Docker og Kubernetes for utviklere-leksjonen?
Ja. Alle Docker og Kubernetes for utviklere-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
- Rollebasert tilgangskontroll (RBAC)
- Pod-sikkerhet og image-skanning
- Sikre Kubernetes-nettverkstrafikk
- Sikker håndtering av Secrets med eksterne Secret Stores