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

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

Microsoft 针对容器推荐的 gMSA 策略这里这里效果很好。一般的想法是容器主机从 Active Directory 域控制器检索 gMSA 密码并将其提供给容器。身份配置存储在 JSON Credential Spec 文件中,该文件预计位于容器主机C:\\ProgramData\\docker\\CredentialSpecs上的位置。此文件包含有关 gMSA 的元数据,最终传递给运行容器的 Docker Engine。下面是通过 docker run 执行此操作的示例:

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

问题是,如果多个团队使用相同的容器主机,您如何防止一个团队使用另一个团队的 Credential Spec,从而使用该团队的权限运行其容器?例如,如果主机具有以下 CredentialSpecs,则团队 A 可以使用团队 C 的 CredentialSpecs。

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

答案1

尽管我没有读过或使用过该技术,但我建议使用 NTFS 权限。
删除文件上的权限,仅为允许的组或用户应用读取权限。Docker
无法读取凭证文件,因此无法在不同/未允许的用户下运行。
仅当 docker 也在不同的用户上下文中运行时才有效。

相关内容