標題: 「容器的除錯之路,遇到 Permission Denied 該怎麼辦」
類別: container
連結: https://live-rhes.pantheonsite.io/sysadmin/container-permission-denied-errors
作者提到大部分遇到 Container 權限問題時,最無腦的一招就是 –privileged 直接硬上權限,但是其實大家都不知道自己到底缺少什麼權限,盲目地使用 –privileged 的確可以解決問題
但是實務上卻是犧牲 Security 換來的,因為不知道缺少什麼而直接硬開,其實就是硬生生的將幾乎所有保護功能都關閉。
本篇文章就來探討當遇到權限問題時有可能是什麼造成的,以及應該如何精準地去設定這些權限而不是用一招 –privileged 跳過。
此外由於作者本身就是 Podman 開發團隊,因此文章之後的介紹與範例都會基於 Podman 來完成,
- 錯誤定位
如果你的容器問題透過 –privileged 也不能解決,那至少你的問題跟本篇文章的關聯性不大,或是說你的問題其實根本不是安全性方面的設定問題,只有當妳確認你的問題
可以因為 –privileged 而解決時本篇文章的內容才會對你有幫助
- Is SELinux the issue?
- Is AppArmor the issue?
- Test capabilities
- Test SECCOMP
- Test masked kernel filesystem
除了上述五個安全性設定外,作者也針對 namespace 探討可能會出現的問題,包含
- Is user namespace the issue?
- Is network namespace the issue?
- Is pid namespace the issue?
最後就是不免俗的推薦大家使用看看 rootless container,畢竟大部分的應用程式其實都沒有要寫入系統的需求,理論上來說應該都要可以運行於 rootless 的模式
整篇文章整理的非常的好,每個類別都有指令操作來介紹概念,對於這些資安控管不熟的人來說可以說是一個溫習的好機會
個人資訊
我目前於 Hiskio 平台上面有開設 Kubernetes 相關課程,歡迎有興趣的人參考並分享,裡面有我從底層到實戰中對於 Kubernetes 的各種想法
詳細可以參閱
線上課程詳細資訊: https://course.hwchiu.com/
另外,歡迎按讚加入我個人的粉絲專頁,裡面會定期分享各式各樣的文章,有的是翻譯文章,也有部分是原創文章,主要會聚焦於 CNCF 領域
https://www.facebook.com/technologynoteniu
如果有使用 Telegram 的也可以訂閱下列頻道來,裡面我會定期推播通知各類文章
https://t.me/technologynote
你的捐款將給予我文章成長的動力