Salaisuuksien hallinta ja RBAC
Tutustukaa edistyneisiin strategioihin arkaluonteisten tietojen hallintaan ja roolipohjaisen käyttöoikeuksien hallinnan (RBAC) toteuttamiseen konttiympäristöissä.
Salaisuuksien hallinta ja RBAC on ilmainen Dockerin ja DevOpsin perusteet-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Dockerin ja DevOpsin perusteet-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Dockerin ja DevOpsin perusteet-kurssilla on yhteensä 4 oppituntia.
Konttiympäristön suojaaminen
Tervetuloa! Tässä oppitunnissa tutustutaan konttipohjaisten sovellusten tärkeisiin tietoturvakäytäntöihin: salaisuuksien hallintaan ja roolipohjaiseen käyttöoikeuksien hallintaan (RBAC).
Nämä käsitteet ovat olennaisia arkaluontoisten tietojen suojaamisessa ja sen varmistamisessa, että vain valtuutetut entiteetit voivat suorittaa tiettyjä toimintoja konttiympäristöissä.

Salaisuuksien kovakoodauksen vaarat
Arkaluontoisten tietojen, kuten API-avainten, tietokantojen salasanojen tai yksityisten varmenteiden, kovakoodaaminen suoraan sovelluskoodiin tai Dockerfile-tiedostoihin on merkittävä tietoturvariski.
- Paljastuminen: Kuka tahansa, jolla on pääsy koodivarastoon tai rakennettuun kuvaan, voi nähdä tiedot helposti.
- Hallinnan puute: Salaisuuden muuttaminen edellyttää koko sovelluksen uudelleenrakentamista ja -käyttöönottoa.
- Vaatimustenmukaisuusongelmat: Tämä rikkoo monia tietoturvan parhaita käytäntöjä ja sääntelyvaatimuksia.
Ympäristömuuttujat (varoen)
Yleinen, mutta ei aina turvallinen tapa välittää salaisuuksia on käyttää ympäristömuuttujia. Dockerin avulla ne voi välittää -e-lipulla, ja sovellukset voivat lukea ne.
Ympäristömuuttujat voidaan kuitenkin tarkastaa helposti (esimerkiksi komennolla docker inspect), ja ne saattavat säilyä komentohistoriassa tai lokeissa. Todella arkaluontoisille tiedoille on olemassa parempia ratkaisuja.
Docker Secrets käytännössä
Docker Secrets -toiminnolla arkaluontoisia tietoja voidaan tallentaa ja välittää konteille turvallisesti. Kun salaisuus liitetään konttiin, se liitetään tilapäisenä tiedostona hakemistoon /run/secrets/.
Ensin luodaan salaisuus (esimerkiksi echo "my_secure_pass" | docker secret create app_secret -). Sen jälkeen sovellus voi lukea sen:
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()Kubernetes Secrets -yleiskatsaus
Docker Secretsin tapaan Kubernetesilla on oma objektinsa nimeltä "Secrets" arkaluontoisten tietojen tallentamiseen ja hallintaan. Salaisuudet voidaan liittää tiedostoina Podeihin tai välittää ympäristömuuttujina.
Tärkeää: Kubernetes Secrets -salaisuudet on oletusarvoisesti koodattu base64-muotoon, ei salattu. Siksi ne voidaan helposti purkaa. Jotta tiedot voidaan salata levossa, tarvitaan lisämäärityksiä (esimerkiksi KMS-integraatio).
Käyttöönotto K8s Secrets -salaisuuksilla
Katsotaan esimerkkiä siitä, miten Kubernetes Secret määritellään ja miten sitä käytetään Podissa. Salaisuudet voi määritellä YAML-muodossa tai luoda kubectl-komennoilla.
Luomisen jälkeen Pod voi viitata salaisuuteen liittääkseen sen taltiona tai syöttääkseen sen arvot ympäristömuuttujiksi.
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-secretUlkoiset salaisuuksien säilöt
Erittäin arkaluontoisille tiedoille tai salaisuuksien hallintaan useissa klustereissa ja ympäristöissä ulkoiset salaisuuksien hallintatyökalut tarjoavat edistyneitä ominaisuuksia, kuten:
- Keskitetty tallennus: Kaikille salaisuuksille on yksi totuuden lähde.
- Salaus levossa ja siirron aikana: Vahvemmat tietoturvatakuut.
- Dynaamiset salaisuudet: Automaattisesti luodut, lyhytikäiset tunnistetiedot.
- Auditointi ja käyttöoikeuksien hallinta: Hienojakoiset oikeudet ja kattava lokitus.
Suosittuja vaihtoehtoja ovat HashiCorp Vault, AWS Secrets Manager ja Azure Key Vault.
Mikä RBAC on
Roolipohjainen käyttöoikeuksien hallinta (RBAC) on menetelmä, jolla järjestelmän käyttö rajataan valtuutetuille käyttäjille. Sen sijaan, että oikeudet määritettäisiin suoraan yksittäisille käyttäjille, ne ryhmitellään "rooleiksi", joihin käyttäjät liitetään.
Konttien orkestroinnissa RBAC varmistaa, että käyttäjillä, sovelluksilla ja palveluilla on vain tarvittavat oikeudet käsitellä resursseja, kuten Podeja, Deployment-objekteja ja Secrets-salaisuuksia.
K8s RBAC:n rakennuspalikat
Kubernetesin RBAC käyttää muutamia keskeisiä resurssityyppejä:
- Role: Määrittää oikeudet tietyn namespacen sisällä (esimerkiksi "voi tarkastella podeja" namespacessa "dev").
- ClusterRole: Määrittää oikeudet koko klusterissa (esimerkiksi "voi tarkastella kaikkia podeja" tai "voi hallita solmuja").
- RoleBinding: Myöntää Rolen määrittämät oikeudet käyttäjälle, ryhmälle tai palvelutilille namespacen sisällä.
- ClusterRoleBinding: Myöntää ClusterRolen määrittämät oikeudet käyttäjälle, ryhmälle tai palvelutilille koko klusterissa.
RBAC-esimerkki: käyttöoikeuksien rajoittaminen
Katsotaan esimerkkiä, jossa tietylle palvelutilille myönnetään tietyssä namespacessa oikeus vain listata podeja ja hakea niiden tiedot. Näin vähimpien oikeuksien periaate toteutuu.
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.ioTestatkaa ymmärryksenne
Olette oppineet arkaluontoisten tietojen suojaamisesta ja käyttöoikeuksien hallinnasta. On nopean testin aika!
Kertaus: sovellusten suojaaminen
Hienoa työtä! Tässä oppitunnissa opitte kahdesta konttien tietoturvan keskeisestä pilarista:
- Salaisuuksien hallinta: Arkaluontoisten tietojen suojaaminen Docker Secrets- ja Kubernetes Secrets -toiminnoilla sekä niiden vahvuuksien ja rajoitusten ymmärtäminen.
- Roolipohjainen käyttöoikeuksien hallinta (RBAC): Hienojakoisten käyttöoikeuksien toteuttaminen Kubernetesissa vähimpien oikeuksien periaatteen varmistamiseksi.
Kun hallitsette nämä, rakennatte entistä vankempia ja turvallisempia konttipohjaisia sovelluksia!
Opi Dockerin ja DevOpsin perusteet tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 12
- Oppitunnit
- 48
Usein kysytyt kysymykset
Onko oppitunti ”Salaisuuksien hallinta ja RBAC” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Dockerin ja DevOpsin perusteet-oppimispolun 3 oppituntia, myös oppitunnin “Salaisuuksien hallinta ja RBAC”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Dockerin ja DevOpsin perusteet-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Salaisuuksien hallinta ja RBAC”?
Tutustukaa edistyneisiin strategioihin arkaluonteisten tietojen hallintaan ja roolipohjaisen käyttöoikeuksien hallinnan (RBAC) toteuttamiseen konttiympäristöissä. Harjoittelet Dockerin ja DevOpsin perusteet-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Dockerin ja DevOpsin perusteet-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Dockerin ja DevOpsin perusteet-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.
Kuinka kauan ”Salaisuuksien hallinta ja RBAC”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Dockerin ja DevOpsin perusteet-oppitunnilla?
Kyllä. Jokainen Dockerin ja DevOpsin perusteet-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Konttikuvien tietoturvaskannaus
- Konttien ajonaikainen tietoturva
- Salaisuuksien hallinta ja RBAC
- Verkkokäytännöt ja vähimpien oikeuksien verkotus