[英]Kubernetes + Django / PostgreSQL - How do I specify HOST of my PostgreSQL Database when I deploy it to Kubernetes Cluster
[英]Do I need to specify an UID in my Dockerfile when running in kubernetes
擁有這個 dockerfile:
FROM debian:stretch
CMD ["cat", "/tmp/secrets.txt"]
然后我可以運行
docker run -v /etc/shadow:/tmp/secrets.txt spycontainer
即使我不是 root,我也能看到/etc/shadow
!
Kubernetes 如何避免有人這樣做? 我是否需要確保每個圖像都有 dockerfile 中的 UID?
在 kubernetes 中,您可以使用pod 安全上下文
當您在沒有任何安全上下文的情況下運行容器時,帶有 run as root的 entrypoint 命令。 例如
$ kubectl run -i --tty busybox --image=busybox --restart=Never -- sh
/ # ps aux
PID USER TIME COMMAND
1 root 0:00 sh
如果您使用如下安全上下文
spec:
securityContext:
runAsUser: 1000
runAsGroup: 3000
fsGroup: 2000
使用runAsUser
,您可以修改容器內進程的用戶 ID。 例如
$ kubectl apply -f https://k8s.io/examples/pods/security/security-context.yaml
$ kubectl exec -it security-context-demo -- sh
/ $ ps aux
PID USER TIME COMMAND
1 1000 0:00 sleep 1h
6 1000 0:00 sh
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.