Windows gMSA 如何保護 Docker 容器引擎所使用的 CredentialSpec 的安全使用

Windows gMSA 如何保護 Docker 容器引擎所使用的 CredentialSpec 的安全使用

Microsoft 為容器推薦的 gMSA 策略這裡這裡效果很好。整體想法是容器主機從 Active Directory 網域控制站擷取 gMSA 密碼並提供給容器。身分配置儲存在 JSON 憑證規範檔案中,該檔案預計位於C:\\ProgramData\\docker\\CredentialSpecs容器主機上的位置。該檔案包含有關 gMSA 的元數據,並最終傳遞到運行容器的 Docker 引擎。下面是透過 docker run 執行此操作的範例:

docker run --security-opt "credentialspec=file://myspec.json" --hostname myappname -it myimage powershell

問題是,如果多個團隊使用相同的容器主機,如何防止一個團隊使用另一團隊的憑證規範,從而使用該團隊的權限來運行其容器?例如,如果主機有下列 CredentialSpecs,團隊 A 可以使用團隊 C 的 CredentialSpec。

C:\\ProgramData\\docker\\CredentialSpecs\\TeamA.json
C:\\ProgramData\\docker\\CredentialSpecs\\TeamB.json
C:\\ProgramData\\docker\\CredentialSpecs\\TeamC.json

答案1

即使我沒有閱讀或使用該技術,我還是建議使用 NTFS 權限。
刪除檔案的權限,僅對允許的群組或使用者套用讀取權限。
Docker 無法讀取憑證文件,因此無法在不同/不允許的使用者下執行。
僅當 docker 也在不同的使用者上下文下運行時才有效。

相關內容