映象訪問管理
目錄
映象訪問管理允許管理員控制開發人員可以從 Docker Hub 拉取哪些型別的映象。這可以防止開發人員意外使用可能對組織造成安全風險的不受信任的社群映象。
透過映象訪問管理,您可以限制對以下型別的訪問:
- Docker 官方映象:由 Docker 維護的精選映象
- Docker 驗證釋出者映象:來自受信任的商業釋出者的映象
- 組織映象:您的組織的私有倉庫
- 社群映象:來自個人開發人員的公共映象
誰應該使用映象訪問管理?
映象訪問管理透過確保開發人員僅使用受信任的容器映象來幫助防止供應鏈攻擊。例如,正在構建新應用程式的開發人員可能會意外地將惡意社群映象用作元件。映象訪問管理透過將訪問許可權限制為僅批准的映象型別來防止這種情況。
常見的安全場景包括:
- 防止使用未維護或惡意的社群映象
- 確保開發人員僅使用經過審查的官方基礎映象
- 控制對商業第三方映象的訪問
- 在開發團隊中保持一致的安全標準
先決條件
在配置映象訪問管理之前,您必須:
- 強制登入以確保使用者使用您的組織憑據進行身份驗證
- 使用個人訪問令牌 (PAT) 進行身份驗證(不支援組織訪問令牌)
- 擁有 Docker Business 訂閱
重要映象訪問管理僅在使用者使用組織憑據登入 Docker Desktop 時生效。
配置映象訪問
配置映象訪問管理
- 登入 Docker Home 並選擇您的組織。
- 選擇 Admin Console,然後選擇 Image access。
- 使用 toggle 啟用映象訪問。
- 選擇允許的映象型別
- 組織映象:來自您組織的映象(預設始終允許)。這些可以是您的組織成員建立的公共或私有映象。
- 社群映象:由各種使用者貢獻的映象,可能存在安全風險。此類別包括 Docker 贊助的開源映象,預設情況下已關閉。
- Docker 驗證釋出者映象:來自 Docker Verified Publisher 計劃中 Docker 合作伙伴的映象,符合安全供應鏈標準。
- Docker 官方映象:經過精心策劃的 Docker 倉庫,提供作業系統倉庫、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 操作,包括拉取、使用 `FROM` 指令構建以及 Docker Compose 服務。
安全實施
從最嚴格的策略開始,並根據合法的業務需求逐步擴充套件
- 從以下開始:Docker 官方映象和組織映象
- 如果需要,新增:用於商業工具的 Docker 驗證釋出者映象
- 仔細評估:僅針對特定、經過審查的用例使用社群映象
其他安全建議包括:
- 監控使用模式:審查開發人員嘗試拉取哪些映象,識別對其他映象型別的合法請求,定期稽核批准的映象類別以確保持續相關性,並使用 Docker Desktop 分析來監控使用模式。
- 分層安全控制:映象訪問管理與登錄檔訪問管理配合使用效果最佳,以控制開發人員可以訪問哪些登錄檔,增強容器隔離以在執行時保護容器,以及設定管理以控制 Docker Desktop 配置。
範圍和繞過注意事項
- 映象訪問管理僅控制對 Docker Hub 映象的訪問。來自其他登錄檔的映象不受這些策略的影響。使用登錄檔訪問管理來控制對其他登錄檔的訪問。
- 使用者可能透過退出 Docker Desktop(除非強制登入)、使用不受限制的其他登錄檔中的映象或使用登錄檔映象或代理來繞過映象訪問管理。強制登入並與登錄檔訪問管理結合使用以實現全面控制。
- 映象限制適用於 Dockerfile `FROM` 指令,使用受限映象的 Docker Compose 服務將失敗,如果中間映象受限,多階段構建可能會受到影響,並且使用不同映象型別的 CI/CD 管道可能會受到影響。