DevOps-bootcamp · Oppitunti

Secretit arkaluonteisille tiedoille

Tallentakaa ja hallinnoikaa arkaluonteisia tietoja, kuten salasanoja ja API-avaimia, turvallisesti Secretien avulla.

Oppitunti 2/411 vaihetta

Secretit arkaluonteisille tiedoille on ilmainen DevOps-bootcamp-oppitunti CoddyKitissä. Tämä on oppitunti 2/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 DevOps-bootcamp-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. DevOps-bootcamp-kurssilla on yhteensä 4 oppituntia.

Arkaluonteisten tietojen suojaaminen

Sovelluksia rakentaessanne käsittelette usein arkaluonteisia tietoja, kuten tietokantojen salasanoja, API-avaimia tai yksityisiä varmenteita.

Näiden tietojen tallentaminen suoraan sovelluskoodiin tai määritystiedostoihin on suuri tietoturvariski! Se voi johtaa tietomurtoihin ja altistaa järjestelmänne.

Kubernetes Secrets -objektien esittely

Kubernetes Secrets ovat objekteja, jotka on suunniteltu arkaluonteisten tietojen turvalliseen tallentamiseen klusterissa.

Niiden avulla voitte pitää arkaluonteiset tiedot erillään Pod-määrityksistä ja sovelluskoodista, mikä tekee käyttöönotosta turvallisempaa ja helpommin hallittavaa.

  • Erillään: Pitäkää arkaluonteiset tiedot poissa konttikuvista ja Pod YAML -tiedostoista.
  • Käytettävissä: Podit voivat käyttää niitä ympäristömuuttujina tai liitettyinä tiedostoina.

Secrets ja ConfigMaps

Saatatte muistaa ConfigMaps-objektit aiemmasta oppitunnista. Niitä käytetään ei-arkaluonteisiin määritystietoihin.

Secrets-objektit ovat samankaltaisia, mutta ne on tarkoitettu nimenomaan arkaluonteisille tiedoille. Molemmat tallentavat avain–arvo-pareja, mutta Secrets käsittelevät tietojen arkaluonteista luonnetta.

  • ConfigMaps: Yleisiä, ei-arkaluonteisia määrityksiä varten (esimerkiksi lokitasot ja API-päätepisteet).
  • Secrets: Arkaluonteisia tietoja varten (esimerkiksi salasanat, tunnukset ja yksityiset avaimet).

Muistakaa, että Secrets-objektit koodataan base64-muotoon, mutta niitä ei oletusarvoisesti salata!

Secretin luominen literaaliarvosta

Yksinkertaisin tapa luoda Secret on käyttää literaaliarvoa komennolla kubectl create secret generic.

Tämä on hyödyllistä, kun käsiteltävänä on yksi lyhyt arkaluonteinen tieto, kuten yksinkertainen salasana.

kubectl create secret generic my-db-secret \
  --from-literal=username=admin \
  --from-literal=password=SuperSecretP@ssw0rd!

Secretin luominen tiedostoista

Kun käsiteltävänä on suurempia tai monirivisiä arkaluonteisia tietoja, kuten yksityinen avain tai kokonainen määritystiedosto, Secret on parempi luoda tiedostoista.

Luokaa ensin tiedostot paikallisesti ja viitatkaa niihin sen jälkeen. Kubernetes lukee tiedostojen sisällön ja tallentaa sen.

# Create local files first
echo "my-api-key-12345" > api-key.txt
echo "my-token-abcde" > auth-token.txt

# Create the Secret
kubectl create secret generic app-credentials \
  --from-file=api-key.txt \
  --from-file=auth-token.txt

Secrets-objektien käyttö ympäristömuuttujina

Podit voivat käyttää Secret-tietoja lisäämällä ne suoraan ympäristömuuttujiinsa. Tämä on tavallista yksinkertaisten avain–arvo-parien yhteydessä.

Voitte viitata yksittäisiin Secret-avaimiin tai kaikkiin avaimiin envFrom-määrityksellä.

apiVersion: v1
kind: Pod
metadata:
  name: my-app-pod-env
spec:
  containers:
  - name: my-app
    image: nginx:latest
    env:
    - name: DB_USERNAME
      valueFrom:
        secretKeyRef:
          name: my-db-secret
          key: username
    - name: DB_PASSWORD
      valueFrom:
        secretKeyRef:
          name: my-db-secret
          key: password

Secrets-objektien käyttö liitettyinä tiedostoina

Kun kyseessä ovat arkaluonteiset tiedostot, kuten varmenteet ja yksityiset avaimet, tai kun sovellus odottaa määrityksiä tietyistä tiedostopoluista, voitte liittää Secrets-objektit tiedostoiksi Podin sisälle.

Jokaisesta Secretin avaimesta tulee liitettyyn hakemistoon tiedosto, jonka sisältönä on avaimen arvo.

apiVersion: v1
kind: Pod
metadata:
  name: my-app-pod-vol
spec:
  containers:
  - name: my-app
    image: nginx:latest
    volumeMounts:
    - name: app-secret-volume
      mountPath: "/etc/secrets"
      readOnly: true
  volumes:
  - name: app-secret-volume
    secret:
      secretName: app-credentials

Secrets-objektien suojaaminen

Vaikka Secrets suojaavat tietoja uteliailta katseilta, ne eivät ratkaise kaikkia tietoturvaongelmia. Muistakaa seuraavat asiat:

  • Base64-koodaus: Secrets koodataan base64-muotoon, mutta niitä ei salata. Kuka tahansa, jolla on pääsy Secretiin, voi purkaa koodauksen.
  • RBAC: Rajoittakaa Role-Based Access Controlin (RBAC) avulla sitä, kuka voi lukea, luoda tai muokata Secretsejä.
  • Levossa olevien tietojen salaus: Todellisen suojauksen varmistamiseksi ottakaa käyttöön levossa olevien tietojen salaus etcd-tiedoille (Kubernetesin taustalla oleva tallennusjärjestelmä). Pilvipalveluntarjoajat tarjoavat usein tämän ominaisuuden.

Secrets-objektien päivittäminen

Jos arkaluonteiset tietonne muuttuvat, Secret on päivitettävä. Uusien arvojen antaminen komennolle kubectl create secret päivittää Secretin, tai voitte käyttää komentoa kubectl apply -f päivitetyn YAML-tiedoston kanssa.

Secretia käyttävät käynnissä olevat Podit eivät kuitenkaan ota muutoksia automaattisesti käyttöön. Muutosten käyttöön ottaminen edellyttää yleensä Secretia käyttävien Podien uudelleenkäynnistämistä tai uuden käyttöönoton tekemistä.

Pikatesti: Secrets

Kuvitelkaa, että teillä on yksityinen API-avain, jota sovelluksenne tarvitsee käyttääkseen tiettyä palvelua. Mikä menetelmä on turvallisin ja tarkoituksenmukaisin tapa tallentaa tämä avain ja tarjota se Kubernetes Podille?

Kertaus: Secrets arkaluonteisille tiedoille

Hienoa työtä! Olette oppineet käsittelemään arkaluonteisia tietoja Kubernetesissa!

  • Secrets tallentavat arkaluonteisia tietoja, kuten salasanoja ja API-avaimia.
  • Ne koodataan base64-muotoon, ja niitä voidaan käyttää ympäristömuuttujina tai liitettyinä tiedostoina.
  • Käyttäkää aina RBACia ja harkitkaa levossa olevien tietojen salausta mahdollisimman hyvän suojauksen saavuttamiseksi.
  • Muistakaa, että Podit on käynnistettävä uudelleen, jotta ne ottavat Secret-päivitykset käyttöön.
Aloita maksutta

Opi DevOps-bootcamp 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
142
Oppitunnit
568

Usein kysytyt kysymykset

Onko oppitunti ”Secretit arkaluonteisille tiedoille” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa DevOps-bootcamp-oppimispolun 3 oppituntia, myös oppitunnin “Secretit arkaluonteisille tiedoille”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. DevOps-bootcamp-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Secretit arkaluonteisille tiedoille”?

Tallentakaa ja hallinnoikaa arkaluonteisia tietoja, kuten salasanoja ja API-avaimia, turvallisesti Secretien avulla. Harjoittelet DevOps-bootcamp-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni DevOps-bootcamp-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin DevOps-bootcamp-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”Secretit arkaluonteisille tiedoille”-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ä DevOps-bootcamp-oppitunnilla?

Kyllä. Jokainen DevOps-bootcamp-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

  1. ConfigMapit määrityksiä varten
  2. Secretit arkaluonteisille tiedoille
  3. Pysyvät taltiot ja varaukset
  4. StorageClassit ja dynaaminen provisiointi
← Takaisin: DevOps-bootcamp