建立安全的 Docker 映像

Docker 入門

Tim Sangster

Software Engineer @ DataCamp

內建安全性

若容器遭入侵並突破虛擬化層,就可能存取主機。

Docker 入門

建立安全映像

$$

攻擊者仍可能偶發性地逃脫容器。

$$

額外的安全措施可進一步降低風險

$$

當把執行中的容器對外公開時,這點尤為重要。

Docker 入門

來自可信來源的映像

建立安全映像 -> 從可信來源的映像開始

Docker Hub 篩選:

Docker Hub 有三種「可信內容」篩選:Docker Official Images、Verified Publisher、Sponsored OSS。

Docker 入門

維持軟體最新

就算超熱門的 Ubuntu 映像,更新也只是在 14 天前。 同樣非常熱門的 mariaDB 映像,上次更新是 1 個多月前。

Docker 入門

讓映像維持精簡

安裝不必要的套件會降低安全性

Ubuntu,包含:

  • Python2.7
  • Python3.11
  • Java default-jre
  • Java openjdk-11
  • Java openjdk-8
  • Airflow
  • 我們的 pipeline 應用程式

僅安裝必要套件可提升安全性

Ubuntu,包含:

  • Python3.11
  • 我們的 pipeline 應用程式
Docker 入門

不要以 root 執行應用程式

允許以 root 權限存取映像,會破壞你維持映像最新與精簡的目標。

改用權限較少的使用者來啟動容器:

FROM ubuntu # User is set to root by default.
RUN apt-get update
RUN apt-get install python3
USER repl # We switch the user after installing what we need for our use-case.
CMD python3 pipeline.py
Docker 入門

一起來練習吧!

Docker 入門

Preparing Video For Download...