Docker og Kubernetes for utviklere · leksjon

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.

Leksjon 4 av 413 trinn

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-app

Definere 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: password

Automatisk 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: 1h

Alternativet 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.

Gratis å komme i gang

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

  1. Rollebasert tilgangskontroll (RBAC)
  2. Pod-sikkerhet og image-skanning
  3. Sikre Kubernetes-nettverkstrafikk
  4. Sikker håndtering av Secrets med eksterne Secret Stores
← Tilbake til Docker og Kubernetes for utviklere