如何解决如何在Fargate的Amazon ECS中以非root用户身份运行docker容器
非root用户可以使用USER指令运行docker容器。
参考:https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#user
我想在Fargate上的Amazon ECS中做到这一点。
非root用户如何在Fargate的Amazon ECS中运行docker容器?
谢谢。
解决方法
如果您碰巧要管理Dockerfile,则可以仅向其添加USER
指令,以防止生成的容器以root身份运行。您还可以使用FROM
指令(该指令指向要作为非root用户运行的映像)和USER
指令创建一个临时Dockerfile。所有这些都需要使用Dockerfile并自行构建映像。
其他选择是删除外壳,这是在容器开始使用rm
之后可以执行的操作,但这是非常基本的缓解措施,不会阻止访问容器中的敏感数据。
最后,如果使用Kubernetes,则有一个策略可以作为用户或组运行。我将直接粘贴源代码的片段以获得此答案:AWS - EKS Best Practices Guide
,Kubernetes podSpec在
spec.securityContext
下包含一组字段,这些字段允许您指定用户和/或组来运行您的应用程序。这些字段分别是runAsUser
和runAsGroup
。您可以通过创建Pod安全策略来强制使用这些字段。有关该主题的更多信息,请参见https://kubernetes.io/docs/concepts/policy/pod-security-policy/#users-and-groups。
在Amazon ECS中作为Fargate任务运行容器映像时,有如下所述的参数“ user”,“ privileged”:https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html可用于指定用于运行容器的用户。 / p>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。