Dockerfile-tiedostojen tietoturvan parhaat käytännöt
Toteuttakaa Dockerfile-tiedostoissa tietoturvatoimia haavoittuvuuksien ja hyökkäyspinta-alan vähentämiseksi.
Dockerfile-tiedostojen tietoturvan parhaat käytännöt 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.
Suojatkaa Dockerfile-tiedostonne!
Tervetuloa Dockerfile-tiedostojen tietoturvan parhaiden käytäntöjen pariin! Turvallinen sovellus alkaa turvallisesta perustasta.
Dockerfile ei ole vain build-komentosarja, vaan sovelluksen tietoturvan suunnitelma. Huonot käytännöt voivat johtaa merkittäviin haavoittuvuuksiin.
Tässä oppitunnissa tutustumme keskeisiin strategioihin Docker-levykuvien suojaamiseksi ja mahdollisten hyökkäyspintojen pienentämiseksi.

Aloittakaa luotettavista peruslevykuvista
FROM-ohje on ensimmäinen puolustuslinjanne. Valitkaa aina virallisia ja hyvin ylläpidettyjä peruslevykuvia luotettavista lähteistä, kuten Docker Hubista.
- Viralliset levykuvat: Ne on vahvistettu, ja niitä päivitetään säännöllisesti.
- Täsmälliset tagit: Välttäkää tagia
latest. Käyttäkää tietyn version tageja (esimerkiksialpine:3.18) ennakoitavuuden ja vakauden takaamiseksi. - Minimaaliset levykuvat: Suosikaa ’slim’- tai ’alpine’-versioita. Ne sisältävät vähemmän paketteja, joten mahdollisia haavoittuvuuksia on vähemmän.
Suojatun peruslevykuvan valitseminen
Katso, miten minimaalisen ja tietyn version peruslevykuvan valitseminen voi parantaa tietoturvaa. Se vähentää hyödynnettävissä olevien pakettien ja työkalujen määrää.
FROM alpine:3.18
# This is better than:
# FROM ubuntu:latest
# FROM python:latest
# Alpine is a minimal Linux distribution,
# making the image smaller and more secure.Pienentäkää levykuvan kokoa
Jokainen levykuvaan lisäämänne tiedosto, paketti tai riippuvuus kasvattaa sen ’hyökkäyspintaa’. Mitä vähemmän ohjelmistoja levykuvassa on, sitä vähemmän mahdollisia haavoittuvuuksia siinä on.
Asentakaa vain sovelluksen suorittamisen kannalta ehdottoman välttämättömät osat. Poistakaa build-työkalut ja väliaikaiset tiedostot, kun niitä ei enää tarvita.
Siivotkaa asennuksen jälkeen
Kun asennatte paketteja, tyhjentäkää aina paketinhallinnan välimuistit ja poistakaa tarpeettomat tiedostot. Tämä pienentää lopullisen levykuvan kokoa ja poistaa mahdollisia tietovuotoja.
Debian-pohjaisissa levykuvissa, kuten Ubuntussa, käyttäkää komentoa apt-get clean ja poistakaa /var/lib/apt/lists/* samassa RUN-ohjeessa.
FROM debian:stable-slim
RUN apt-get update && \
apt-get install -y --no-install-recommends \
curl \
git && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# All in one RUN command to leverage Docker's caching and reduce layers.Älkää suorittako pääkäyttäjänä!
Docker-säilön sisäiset prosessit suoritetaan oletusarvoisesti käyttäjän root oikeuksilla. Tämä on merkittävä tietoturvariski!
Jos hyökkääjä saa säilön hallintaansa, hänellä olisi pääkäyttäjän oikeudet, joiden avulla hän voisi mahdollisesti paeta säilöstä tai vaarantaa isäntäjärjestelmän.
Luokaa aina erillinen käyttäjä ilman pääkäyttäjän oikeuksia ja vaihtakaa siihen USER-ohjeella.
Määrittäkää käyttäjä ilman pääkäyttäjän oikeuksia
Seuraavaksi näette, miten luodaan uusi käyttäjä ja Docker ohjataan suorittamaan myöhemmät komennot kyseisen käyttäjän oikeuksilla. Tämä rajoittaa merkittävästi mahdollisia vahinkoja, jos säilön tietoturva vaarantuu.
FROM alpine:3.18
# Create a non-root user and group
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
# Switch to the non-root user
USER appuser
CMD ["echo", "Hello from non-root user!"]Älkää tallentako salaisuuksia Dockerfile-tiedostoon!
Älkää koskaan kirjoittako arkaluonteisia tietoja, kuten API-avaimia, tietokantojen salasanoja tai yksityisiä avaimia, suoraan Dockerfile-tiedostoon tai tallentako niitä levykuvaan.
Kuka tahansa levykuvan käyttöön pääsevä voi helposti poimia nämä salaisuudet levykuvasta, vaikka poistaisitte ne myöhemmässä kerroksessa.
Käyttäkää sen sijaan turvallisia menetelmiä, kuten Docker Secrets -ominaisuutta, ympäristömuuttujia (ei-arkaluonteisille tiedoille) tai Kubernetes Secrets -ominaisuutta suorituksen aikana.
Suosikaa COPY-ohjetta ADD-ohjeen sijaan
Sekä COPY- että ADD-ohjeilla kopioidaan tiedostoja levykuvaan, mutta COPY-ohjetta suositaan yleensä tietoturvan ja selkeyden vuoksi.
COPY: Kopioi vain paikallisia tiedostoja tai hakemistoja. Sen toiminta on suoraviivaista ja ennakoitavaa.ADD: Voi myös noutaa tiedostoja URL-osoitteista ja purkaa pakattuja arkistoja automaattisesti (tar, gzip). Tämä lisätoiminnallisuus aiheuttaa mahdollisia tietoturvariskejä, kuten epäluotettavan sisällön lataamisen tai haitallisten arkistojen purkamisen.
Pitäytykää COPY-ohjeessa, ellette erityisesti tarvitse ADD-ohjeen edistyneitä ominaisuuksia ja ymmärrä niihin liittyviä riskejä.
Tietoturvatarkistus!
Mikä seuraavista Dockerfile-tiedoston käytännöistä on keskeinen vaihe hyökkäyspinnan pienentämisessä ja mahdollisten haavoittuvuuksien vähentämisessä?
Matkanne kohti suojattua Dockerfile-tiedostoa
Hienoa työtä! Olette oppineet Dockerfile-tiedostojen keskeiset tietoturvan parhaat käytännöt, jotka muodostavat turvallisen konttiteknologian perustan:
- Aloittakaa luotettavista ja minimaalisista peruslevykuvista: Käyttäkää virallisia, tietyn version levykuvia, joissa on vain vähän ylimääräistä sisältöä.
- Pienentäkää levykuvan kokoa: Asentakaa vain tarvittavat osat ja siivotkaa asennusten jälkeen.
- Suorittakaa komennot käyttäjänä ilman pääkäyttäjän oikeuksia: Rajoittakaa käyttöoikeuksia mahdollisten tietoturvaloukkausten vaikutusten pienentämiseksi.
- Välttäkää salaisuuksia: Älkää koskaan kirjoittako arkaluonteisia tietoja suoraan Dockerfile-tiedostoon.
- Suosikaa `COPY`-ohjetta `ADD`-ohjeen sijaan: Valitkaa ennakoitavampi ja turvallisempi `COPY`-ohje.
Näitä käytäntöjä noudattamalla parannatte merkittävästi kontitettujen sovellustenne tietoturvaa!
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 ”Dockerfile-tiedostojen tietoturvan parhaat käytännöt” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Dockerin ja DevOpsin perusteet-oppimispolun 3 oppituntia, myös oppitunnin “Dockerfile-tiedostojen tietoturvan parhaat käytännöt”. 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 ”Dockerfile-tiedostojen tietoturvan parhaat käytännöt”?
Toteuttakaa Dockerfile-tiedostoissa tietoturvatoimia haavoittuvuuksien ja hyökkäyspinta-alan vähentämiseksi. 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 ”Dockerfile-tiedostojen tietoturvan parhaat käytännöt”-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
- Monivaiheiset koonnit tehokkuutta varten
- Koontivälimuistin hyödyntäminen
- Dockerfile-tiedostojen tietoturvan parhaat käytännöt
- Näköistiedoston koon pienentäminen Slim- ja Distroless-pohjilla