在Kubernetes中使用runAsNonRoot

And*_*ume 5 security containers docker kubernetes

很长时间以来,我们一直在计划securityContext: runAsNonRoot: true将Pod配置作为一项要求引入。

今天测试一下,我了解到,由于v1.8.4(我认为)您还必须为运行容器的用户指定特定的UID,例如runAsUser: 333

这意味着我们不仅必须告诉开发人员确保其容器不能以root用户身份运行,而且还必须指定其应以其运行的特定UID,这给我们引入了很多麻烦。

我理解正确吗?其他人在这方面做什么?要利用杠杆作用runAsNonRoot,现在是否需要Docker容器使用特定的已知UID运行?

Luk*_*ler 9

Kubernetes Pod SecurityContext 提供了两个选项runAsNonRootrunAsUser强制非 root 用户。您可以单独使用这两个选项,因为它们测试不同的配置。

当您设置时,runAsNonRoot: true您要求容器将与具有除 0 以外的任何 UID 的用户一起运行。无论您的用户具有哪个 UID。
设置时,runAsUser: 333您要求容器与 UID 333 的用户一起运行。

  • 您实际上必须在 Dockerfile 中指定一个数字用户,例如“USER 1001” (2认同)