Secretsbeheer en RBAC
Leer geavanceerde strategieën voor het beheren van gevoelige gegevens en het implementeren van Role-Based Access Control (RBAC) in containeromgevingen.
Secretsbeheer en RBAC is een gratis Docker en de basis van DevOps-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Docker en de basis van DevOps. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Docker en de basis van DevOps bevat in totaal 4 lessen.
Uw containeromgeving beveiligen
Welkom! In deze les gaan we dieper in op cruciale beveiligingswerkwijzen voor toepassingen in containers: geheimenbeheer en Role-Based Access Control (RBAC).
Deze concepten zijn essentieel om gevoelige gegevens te beschermen en ervoor te zorgen dat alleen geautoriseerde entiteiten specifieke acties in uw containeromgevingen kunnen uitvoeren.

Het gevaar van hardcoded geheimen
Gevoelige informatie zoals API-sleutels, databasewachtwoorden of persoonlijke certificaten rechtstreeks in uw applicatiecode of Dockerfiles opnemen, vormt een groot beveiligingsrisico.
- Blootstelling: Iedereen met toegang tot uw coderepository of gebouwde image kan deze informatie eenvoudig bekijken.
- Gebrek aan controle: Om een geheim te wijzigen, moet u uw volledige toepassing opnieuw bouwen en implementeren.
- Problemen met naleving: Dit schendt veel best practices voor beveiliging en wettelijke vereisten.
Omgevingsvariabelen (voorzichtig gebruiken)
Een gebruikelijke, maar niet altijd veilige manier om geheimen door te geven, is via omgevingsvariabelen. Met Docker kunt u deze doorgeven met de vlag -e, waarna toepassingen ze kunnen uitlezen.
Omgevingsvariabelen kunnen echter eenvoudig worden bekeken (bijvoorbeeld met docker inspect) en kunnen in de shellgeschiedenis of logboeken blijven staan. Voor echt gevoelige gegevens bestaan betere oplossingen.
Docker Secrets in de praktijk
Met Docker Secrets kunt u gevoelige gegevens veilig opslaan en naar containers verzenden. Wanneer een geheim aan een container wordt gekoppeld, wordt het als tijdelijk bestand aangekoppeld in /run/secrets/.
Eerst maakt u een geheim aan (bijvoorbeeld echo "my_secure_pass" | docker secret create app_secret -). Daarna kan uw toepassing het uitlezen:
import os
def main():
secret_path = "/run/secrets/app_secret"
try:
with open(secret_path, 'r') as f:
secret_value = f.read().strip()
print(f"Secret read: {secret_value}")
except FileNotFoundError:
print("Secret file not found. Make sure it's mounted.")
except Exception as e:
print(f"An error occurred: {e}")
if __name__ == "__main__":
main()Overzicht van Kubernetes Secrets
Net als Docker Secrets heeft Kubernetes een eigen object met de naam "Secrets" om gevoelige informatie op te slaan en te beheren. Deze geheimen kunnen als bestanden in Pods worden aangekoppeld of als omgevingsvariabelen beschikbaar worden gemaakt.
Belangrijk: Kubernetes Secrets worden standaard met base64 gecodeerd, niet versleuteld. Dat betekent dat ze eenvoudig kunnen worden gedecodeerd. Voor echte versleuteling in rust is aanvullende configuratie nodig (bijvoorbeeld integratie met KMS).
Implementeren met K8s Secrets
Bekijk een voorbeeld van hoe een Kubernetes Secret wordt gedefinieerd en vervolgens binnen een Pod wordt gebruikt. U kunt geheimen definiëren in YAML of ze aanmaken met opdrachten van kubectl.
Een Pod kan na het aanmaken naar het geheim verwijzen om het als volume aan te koppelen of de waarden ervan als omgevingsvariabelen te injecteren.
apiVersion: v1
kind: Pod
metadata:
name: my-secret-pod
spec:
containers:
- name: my-app-container
image: busybox
command: ["sh", "-c", "echo Username: $(cat /etc/secrets/username) Password: $(cat /etc/secrets/password)"]
volumeMounts:
- name: secret-volume
mountPath: "/etc/secrets"
readOnly: true
volumes:
- name: secret-volume
secret:
secretName: my-k8s-secretExterne geheimenkluizen
Voor zeer gevoelige gegevens of wanneer u geheimen in meerdere clusters en omgevingen beheert, bieden externe tools voor geheimenbeheer geavanceerde functies zoals:
- Gecentraliseerde opslag: Eén bron van waarheid voor alle geheimen.
- Versleuteling in rust en tijdens transport: Sterkere beveiligingsgaranties.
- Dynamische geheimen: Automatisch gegenereerde referenties met een korte levensduur.
- Controle en toegangsbeheer: Gedetailleerde machtigingen en uitgebreide logboekregistratie.
Populaire opties zijn HashiCorp Vault, AWS Secrets Manager en Azure Key Vault.
Wat is RBAC?
Role-Based Access Control (RBAC) is een methode om systeemtoegang te beperken tot geautoriseerde gebruikers. In plaats van machtigingen rechtstreeks aan afzonderlijke gebruikers toe te wijzen, worden machtigingen gegroepeerd in "rollen" en worden gebruikers aan die rollen toegewezen.
Binnen containerorchestratie zorgt RBAC ervoor dat gebruikers, toepassingen of services alleen de noodzakelijke machtigingen hebben om met resources (zoals Pods, Deployments en Secrets) te werken.
Bouwstenen van K8s RBAC
Kubernetes RBAC gebruikt enkele belangrijke resourcetypen:
- Role: Definieert machtigingen binnen een specifieke namespace (bijvoorbeeld "pods kunnen bekijken" in de namespace "dev").
- ClusterRole: Definieert machtigingen voor het hele cluster (bijvoorbeeld "alle pods kunnen bekijken" of "nodes kunnen beheren").
- RoleBinding: Verleent de in een Role gedefinieerde machtigingen aan een gebruiker, groep of serviceaccount binnen een namespace.
- ClusterRoleBinding: Verleent de in een ClusterRole gedefinieerde machtigingen aan een gebruiker, groep of serviceaccount in het hele cluster.
RBAC-voorbeeld: toegang beperken
Bekijk een voorbeeld waarin een specifiek serviceaccount alleen toestemming krijgt om pods in een bepaalde namespace op te vragen en te bekijken. Hiermee wordt het principe van minimale bevoegdheden afgedwongen.
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: default
name: pod-reader
rules:
- apiGroups: [""] # "" indicates the core API group
resources: ["pods"]
verbs: ["get", "list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-pods-binding
namespace: default
subjects:
- kind: ServiceAccount
name: pod-viewer-sa # Name of the ServiceAccount to bind to
namespace: default
roleRef:
kind: Role
name: pod-reader
apiGroup: rbac.authorization.k8s.ioControleer uw begrip
U hebt geleerd hoe u gevoelige gegevens beveiligt en toegang beheert. Tijd voor een korte controle!
Samenvatting: uw apps beveiligen
Goed gedaan! In deze les hebt u geleerd over twee cruciale pijlers van containerbeveiliging:
- Geheimenbeheer: Gevoelige gegevens beschermen met Docker Secrets en Kubernetes Secrets, en hun sterke punten en beperkingen begrijpen.
- Role-Based Access Control (RBAC): Gedetailleerde machtigingen implementeren in Kubernetes om het principe van minimale bevoegdheden te waarborgen.
Door deze vaardigheden onder de knie te krijgen, bouwt u robuustere en veiligere toepassingen in containers!
Leer Docker en de basis van DevOps met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 12
- Lessen
- 48
Veelgestelde vragen
Is de les “Secretsbeheer en RBAC” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Docker en de basis van DevOps, waaronder “Secretsbeheer en RBAC”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Docker en de basis van DevOps bevat in totaal 4 lessen.
Wat leer ik in “Secretsbeheer en RBAC”?
Leer geavanceerde strategieën voor het beheren van gevoelige gegevens en het implementeren van Role-Based Access Control (RBAC) in containeromgevingen. Je oefent met Docker en de basis van DevOps door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Docker en de basis van DevOps te beginnen?
Ervaring vooraf is niet nodig. Docker en de basis van DevOps op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Secretsbeheer en RBAC”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Docker en de basis van DevOps?
Ja. Elke les over Docker en de basis van DevOps bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Beveiligingsscanning van containerimages
- Containerbeveiliging tijdens runtime
- Secretsbeheer en RBAC
- Netwerkpolicies en networking met minimale rechten