映像存取管理
目錄
映像檔存取管理 (Image Access Management) 讓管理員可以控制開發人員能夠從 Docker Hub 拉取 (pull) 哪些類型的映像檔。這能防止開發人員誤用未經信任的社群映像檔,進而避免對貴組織造成安全風險。
透過映像檔存取管理,您可以限制對以下項目的存取:
- Docker 官方映像檔 (Docker Official Images):由 Docker 維護的精選映像檔
- Docker 驗證發布者映像檔 (Docker Verified Publisher Images):來自受信任商業發布者的映像檔
- 組織映像檔 (Organization images):屬於貴組織的私有儲存庫
- 社群映像檔 (Community images):來自個人開發者的公開映像檔
誰應該使用映像檔存取管理?
映像檔存取管理有助於防止供應鏈攻擊,確保開發人員僅使用受信任的容器映像檔。例如,開發人員在建置新應用程式時,可能會不小心使用惡意的社群映像檔作為元件。映像檔存取管理透過僅限存取已核准的映像檔類型來防止這種情況。
常見的安全情境包括:
- 防止使用無人維護或惡意的社群映像檔
- 確保開發人員僅使用經過審查的官方基礎映像檔
- 控制對商業第三方映像檔的存取
- 在各開發團隊間維持一致的安全標準
先決條件
在設定映像檔存取管理之前,您必須:
- 強制登入,以確保使用者使用您的組織帳戶進行驗證
- 使用個人存取權杖 (PAT) 進行驗證(不支援組織存取權杖)
- 擁有 Docker Business 訂閱
重要映像檔存取管理僅在使用者以組織憑證登入 Docker Desktop 時生效。
設定映像檔存取
若要設定映像檔存取管理:
- 登入 Docker Home 並選取您的組織。
- 選擇 Admin Console(管理主控台),然後選擇 Image access(映像檔存取)。
- 使用開關來啟用映像檔存取功能。
- 選擇要允許的映像檔類型:
- 組織映像檔:來自您組織的映像檔(預設一律允許)。這可以是貴組織成員所建立的公開或私有映像檔。
- 社群映像檔:由各種使用者貢獻、可能構成安全風險的映像檔。此類別包含 Docker 贊助的開源 (Docker-Sponsored Open Source) 映像檔,預設為關閉。
- Docker 驗證發布者映像檔:來自 Docker 合作夥伴計畫中驗證發布者的映像檔,適用於安全的供應鏈。
- Docker 官方映像檔:由 Docker 精選的儲存庫,提供 OS 儲存庫、Dockerfile 最佳實踐、隨插即用的解決方案,以及即時的安全更新。
一旦實施限制,組織成員可以唯讀方式檢視權限頁面。
注意映像檔存取管理預設為關閉。無論政策設定為何,組織擁有者皆可存取所有映像檔。
驗證存取限制
設定映像檔存取管理後,請測試限制是否正常運作。
當開發人員拉取允許的映像檔類型時
$ docker pull nginx # Docker Official Image
# Pull succeeds if Docker Official Images are allowed
當開發人員拉取封鎖的映像檔類型時
$ docker pull someuser/custom-image # Community image
Error response from daemon: image access denied: community images not allowed
映像檔存取限制適用於所有 Docker Hub 操作,包括拉取 (pull)、使用 FROM 指令的建置,以及 Docker Compose 服務。
安全性實作
從最嚴格的政策開始,並根據合法的業務需求逐步放寬:
- 起始設定:Docker 官方映像檔和組織映像檔
- 視需要新增:用於商業工具的 Docker 驗證發布者映像檔
- 謹慎評估:僅針對特定且經過審查的使用案例開放社群映像檔
其他安全建議包括:
- 監控使用模式:檢視開發人員嘗試拉取的映像檔、識別對額外映像檔類型的合法需求、定期審核已核准的映像檔類別以確認其相關性,並使用 Docker Desktop 分析來監控使用模式。
- 分層安全控制:映像檔存取管理若與「登錄檔存取管理」(Registry Access Management) 搭配使用效果最佳,藉此控制開發人員可存取的登錄檔;使用「增強型容器隔離」(Enhanced Container Isolation) 在執行階段保護容器;並透過「設定管理」(Settings Management) 控制 Docker Desktop 的設定。
範圍與繞過注意事項
- 映像檔存取管理僅控制對 Docker Hub 映像檔的存取。來自其他登錄檔的映像檔不受這些政策影響。請使用登錄檔存取管理來控制對其他登錄檔的存取。
- 使用者可能會透過登出 Docker Desktop(除非強制登入)、使用其他不受限制的登錄檔映像檔,或使用登錄檔鏡像 (mirrors) 或代理伺服器來繞過映像檔存取管理。請務必強制執行登入,並結合登錄檔存取管理以實現全面的控制。
- 映像檔限制適用於 Dockerfile 中的
FROM指令;使用受限映像檔的 Docker Compose 服務將會失敗;若中間映像檔受限,多階段建置 (multi-stage builds) 可能會受到影響;而使用多種映像檔類型的 CI/CD 管線也可能受影響。