May 9, 2025

Šta je Secret u Kubernetesu?

 Secret je Kubernetes objekat za čuvanje poverljivih podataka, kao što su:

  • lozinke

  • API tokeni

  • SSH ključevi

  • TLS sertifikati

Ukratko: Secret = bezbedan način za čuvanje osetljivih informacija u klasteru.


🧠 Zašto se koristi?

  • Da ne hardcoduješ poverljive podatke u YAML fajlove, slike (image-e), ili promenljive okruženja.

  • Kubernetes može da upravlja tim podacima sigurnije nego sa običnim ConfigMap-ovima:

    • Sekreti se čuvaju u base64 kodiranju

    • Mogu se šifrovati na disku (ako je tako podešeno)

    • Imaju stroža pravila pristupa (RBAC)


📄 Primer Secret fajla:


apiVersion: v1 kind: Secret metadata: name: moj-secret type: Opaque data: username: dXNlcm5hbWU= # base64("username") password: cGFzc3dvcmQ= # base64("password")

Možeš napraviti Secret i komandno:


kubectl create secret generic moj-secret \ --from-literal=username=username \ --from-literal=password=password

🧩 Kako se koristi u Podu?

1. ✅ Kao environment promenljive:


spec: containers: - name: moj-kontejner env: - name: DB_USER valueFrom: secretKeyRef: name: moj-secret key: username

2. 📁 Kao fajlovi u volume-u:


spec: volumes: - name: secret-vol secret: secretName: moj-secret containers: - name: moj-kontejner volumeMounts: - name: secret-vol mountPath: /etc/secret

Fajlovi /etc/secret/username i /etc/secret/password biće dostupni u kontejneru.


⚠️ Napomena:

  • Iako su "secure", Secret-i su base64 kodirani, a ne enkriptovani po defaultu.

    • Šifrovanje na disku moraš eksplicitno da uključiš.

  • Pristup Secret-ima treba kontrolisati putem RBAC pravila.

No comments:

Post a Comment