Docker入門教程(五)Docker Security

jopen 9年前發布 | 28K 次閱讀 Docker

【編者的話】DockerOne組織翻譯了Flux7的Docker入門教程,本文是系列入門教程的第五篇,介紹了Docker的安全問,依然是老話重談,入門者可以閱讀本文快速了解。

我們必須高度重視開源軟件的安全問題,當開發者在使用Docker時,從本地構建應用程序到生產環境部署是沒有任何差異的(譯者注:作者的言外之 意是更應該重視Docker的安全問題)。當Docker被用到越來越多的平臺的時候,我們需要重點保證Docker作為一個項目或者平臺的安全性。

因此,我們決定在Docker系列教程的第五篇來討論Docker安全的相關問題以及為什么它們影響到Docker的整體安全性。鑒于Docker是LXC的延伸,它也很容易使用LXC的安全特性。

在本系列的 第一篇文章中,我們知道docker run命令可以用來運行容器。那運行這個命令后,Docker做了哪些具體的工作了?具體如下:

  1. docker run命令初始化。
  2. Docker 運行 lxc-start 來執行run命令。
  3. lxc-start 在容器中創建了一組namespace和Control Groups。
  4. </ol>
    對于那些不知道namespace和control groups的概念的讀者,我在這里先解釋一下:namespace是隔離的第一級,容器是相互隔離的,某個容器是不能看到其它容器內部運行的進程(譯者注:namespace系列教程可以閱讀DockerOne上的 系列教程)。每個容器都分配了單獨的網絡棧,因此一個容器不可能訪問另一容器的sockets。為了支持容器之間的IP通信,您必須指定容器的公網IP端口。

    Control Groups是非常重要的組件,具有以下功能:

    • 負責資源核算和限制。
    • 提供CPU、內存、I/O和網絡相關的指標。
    • 避免某種DoS攻擊。
    • 支持多租戶平臺。
    • </ul>

      Docker Daemon的攻擊面

      Docker Daemon以root權限運行,這意味著有一些問題需要格外小心,
      下面介紹一些需要注意的地方:

      • 當Docker允許與訪客容器目錄共享而不限制其訪問權限時,Docker Daemon的控制權應該只給授權用戶。
      • REST API支持Unix sockets,從而防止了cross-site-scripting攻擊。
      • REST API的HTTP接口應該在可信網絡或者V*N下使用。
      • 在服務器上單獨運行Docker時,需要與其它服務隔離。
      • </ul>
        一些關鍵的Docker安全特性包括:

        1. 容器以非特權用戶運行。
        2. Apparmor、SELinux、GRSEC解決方案,可用于額外的安全層。
        3. 可以使用其它容器系統的安全功能。
        4. </ol>

          Docker.io API

          用于管理與有關授權和安全的幾個進程,Docker提供REST API。如下表格列出了關于此API用于維護相關的安全功能的一些命令。

           Docker入門教程(五)Docker Security


          Docker系列教程下一篇文章中我們繼續探討 前面第二篇文章所討論的Docker命令的進階。

          原文鏈接:Part 5: Docker Security(翻譯:田浩 審校:李穎杰)

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!