Welcome to the Linux Foundation Forum!

Not sure about Exercise 6.6, security review

Posts: 15
edited January 2024 in LFD259 Class Forum

Hi,
I am not 100% sure I nailed the exercise in the topic.
In order to make nginx run I had to add a fsGroup: 101 so that the pod mounted the volumes with the correct user/group permissions (mounted volumes in order to overcome the permission denied issues I had with /var/cache/nginx and /var/run)
Also, it seems that using capabilities when the pod is not running as root won't work (https://github.com/kubernetes/kubernetes/issues/56374) so I used the suggested sysctls (https://github.com/kubernetes/kubernetes/issues/56374#issuecomment-928917495). What I am not sure about is the fact that I had to modify the pod securityContext rather than the container securityContext and that the course does not mention sysctls in the Lab 6.6.

here's my solution:

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4. name: securityreview
  5. spec:
  6. securityContext:
  7. runAsUser: 101
  8. fsGroup: 101 ##need this in order to mount volumes with correct permission
  9. sysctls: ## this was found in in issue 56374: https://github.com/kubernetes/kubernetes/issues/56374#issuecomment-928917495
  10. - name: net.ipv4.ip_unprivileged_port_start
  11. value: "78" #pick a port number less than 80 and it will work
  12. containers:
  13. - name: webguy
  14. image: nginx
  15. securityContext:
  16. runAsUser: 101
  17. allowPrivilegeEscalation: false
  18. # this is not working because when going from UID 0 to UID <> 0 the capabilities are removed
  19. # capabilities:
  20. # add: ["NET_ADMIN","NET_BIND_SERVICE"]
  21.  
  22. volumeMounts:
  23. - name: nginx-temp
  24. mountPath: /var/cache/nginx
  25. - name: run-temp
  26. mountPath: /var/run
  27.  
  28. volumes:
  29. - name: nginx-temp
  30. emptyDir: {}
  31. - name: run-temp
  32. emptyDir: {}
  33.  

Is this a correct answer or am I missing something ?

Answers

  • Yes this indeed works i tried and it worked for me too. But why do we have to use the fsGroup and sysctls which are not even explained in the labs and also why we have to use volumes and volumemounts?

  • because the content creators, either purposely or neglectfully, left course takers to flounder in this domain review. leaving everyone to come up with their own solutions and maybe along the way absorbing some of the content by trial and error.

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Categories

Upcoming Training