k8s学习-CKS真题-Dockerfile和deployment优化
分析和编辑给定的 Dockerfile /cks/docker/Dockerfile(基于 ubuntu:16.04 镜像),只需修改现有的配置设置让以上两个配置设置都不再有安全/最佳实践问题。注意:如果您需要非特权用户来执行任何项目,请使用用户 ID 65535 的用户 nobody。分析和编辑给定的清单文件 /cks/docker/deployment.yaml ,并修复在文件中拥有的突出的安
·
题目
Task
1.分析和编辑给定的 Dockerfile /cks/docker/Dockerfile(基于 ubuntu:16.04 镜像),
并修复在文件中拥有的突出的安全/最佳实践问题的两个指令。
2.分析和编辑给定的清单文件 /cks/docker/deployment.yaml ,
并修复在文件中拥有突出的安全/最佳实践问题的两个字段。
注意:请勿添加或删除配置设置;只需修改现有的配置设置让以上两个配置设置都不再有安全/最佳实践问题。
注意:如果您需要非特权用户来执行任何项目,请使用用户 ID 65535 的用户 nobody 。
只修改即可,不需要创建
环境搭建
/cks/docker/Dockerfile
FROM ubuntu:latest
USER root
RUN apt get install -y nginx=4.2
ENV ENV=testing
CMD ["nginx -d"]
/cks/docker/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: lady_killer9_test
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx1
template:
metadata:
labels:
app: nginx2
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
securityContext:
{'capabilities':{'add':['NET_ADMIN'],'drop':['all']},'privileged': True,'readOnlyRootFilesystem': False,'runAsUser': 65535}
解题
Dockerfile
修改Ubuntu的版本为16.04,一般不使用root来运行容器,这里改为使用nobody
命令
vim /cks/docker/Dockerfile
截图
deployment.yaml
标签改为一样的
安全上下文配置错误
- privileged改为False
- readOnlyRootFilesystem改为True
命令
vim /cks/docker/deployment.yaml
截图
注意:如果add列表中有SYS_ADMIN,也需要去掉。
当容器满足一下条件之一时,allowPrivilegeEscalation 总是为 true:
以特权模式运行,或者
具有 CAP_SYS_ADMIN 权能
模拟题
参考
Docker-Dockerfile学习
Docker-dockerfile最佳实践
k8s学习-Deployment(模板、更新、扩缩容、回滚等)
为 Pod 或容器配置安全上下文
更多k8s相关内容,请看文章:k8s学习-思维导图与学习笔记
更多推荐
已为社区贡献44条内容
所有评论(0)