Docker & Kubernetes for Developers · Lekcja

Bezpieczne zarządzanie sekretami za pomocą zewnętrznych magazynów

Przestań zatwierdzać w repozytorium jawne Secrets i zintegruj Kubernetes z zewnętrznymi magazynami, takimi jak HashiCorp Vault, za pomocą External Secrets Operator.

Lekcja 4 z 413 kroki

Bezpieczne zarządzanie sekretami za pomocą zewnętrznych magazynów to bezpłatna lekcja Docker & Kubernetes for Developers na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Docker & Kubernetes for Developers, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Docker & Kubernetes for Developers zawiera 4 lekcji w sumie.

Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.

Kubernetes Secrets Are Only Encoded

By default a Kubernetes Secret is just base64-encoded, not encrypted. Anyone with API access or etcd access can read it unless extra protection is added.

Encryption at Rest

A first step is enabling encryption at rest in the API server so Secret data is encrypted before being written to etcd.

apiVersion: apiserver.config.k8s.io/v1
kind: EncryptionConfiguration
resources:
  - resources: ["secrets"]
    providers:
      - aescbc:
          keys:
            - name: key1
              secret: <base64-key>

The Git Problem

In GitOps, committing Secret YAML to a repo leaks credentials. We need secrets that live outside git but still flow into the cluster.

External Secret Stores

Tools like HashiCorp Vault, AWS Secrets Manager, and GCP Secret Manager store secrets centrally with auditing, rotation, and fine-grained access.

The External Secrets Operator

The External Secrets Operator (ESO) syncs values from an external store into native Kubernetes Secrets, so workloads consume them normally.

Defining a SecretStore

A SecretStore tells ESO how to authenticate to the backend.

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

Defining an ExternalSecret

An ExternalSecret maps a key in the store to a generated 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

Automatic Rotation

ESO refreshes synced secrets on an interval, so rotating a value in Vault propagates into the cluster without redeploys.

spec:
  refreshInterval: 1h

Sealed Secrets Alternative

If you must keep secrets in git, Sealed Secrets encrypts them with a cluster-only key, producing a safe-to-commit SealedSecret that only the controller can decrypt.

Limiting Access With RBAC

Restrict who can read Secrets using RBAC, and prefer mounting secrets as files over environment variables to reduce accidental logging.

Avoiding Leaks

Never echo secrets in logs or CI output, and add secret-scanning to your pipeline to catch accidental commits.

Quick Check

Test what you have learned.

Recap

You learned that Secrets are only base64-encoded, how encryption at rest helps, and how the External Secrets Operator syncs from Vault and similar stores, plus Sealed Secrets, rotation, and RBAC to keep credentials safe.

Bezpłatny start

Ucz się Docker & Kubernetes for Developers dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
12
Lekcje
48

Często zadawane pytania

Czy lekcja „Bezpieczne zarządzanie sekretami za pomocą zewnętrznych magazynów” jest bezpłatna?

Tak — pełny tekst „Bezpieczne zarządzanie sekretami za pomocą zewnętrznych magazynów” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Docker & Kubernetes for Developers, przejdź na CoddyKit PRO. Kurs Docker & Kubernetes for Developers zawiera 4 lekcji w sumie.

Co nauczysz się w „Bezpieczne zarządzanie sekretami za pomocą zewnętrznych magazynów”?

Przestań zatwierdzać w repozytorium jawne Secrets i zintegruj Kubernetes z zewnętrznymi magazynami, takimi jak HashiCorp Vault, za pomocą External Secrets Operator. Ćwiczysz Docker & Kubernetes for Developers z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Docker & Kubernetes for Developers?

Nie wymagamy żadnego doświadczenia. Docker & Kubernetes for Developers w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Bezpieczne zarządzanie sekretami za pomocą zewnętrznych magazynów”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Docker & Kubernetes for Developers?

Tak. Każda lekcja Docker & Kubernetes for Developers zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Kontrola dostępu oparta na rolach (RBAC)
  2. Bezpieczeństwo podów i skanowanie obrazów
  3. Zabezpieczanie ruchu sieciowego Kubernetes
  4. Bezpieczne zarządzanie sekretami za pomocą zewnętrznych magazynów
← Powrót do Docker & Kubernetes for Developers