始めに

Security Contextとは、個々のコンテナに対するセキュリティ設定のこと。
コンテナ、Podレベルで設定できる。

Dockerでは、以下のように、コンテナの実行に際して、User IDを指定できる。

docker run --user=1001 ubuntu(image) sleep 1000

それと同じようなことを、k8sで実行できる。

YAML

---
apiVersion: v1
kind: Pod
metadata:
  name: xxxxx
  namespace: default
## User ID 1010で、sleep Commandを実行する。
spec:
  securityContext:
    runAsUser: 1010
  containers:
  - command:
    - sleep
    - "3000"
    image: xxxxx
    name: xxxxx
---
apiVersion: v1
kind: Pod
metadata:
  name: xxxxx
  namespace: default
spec:
  containers:
  - command:
    - sleep
    - "3500"
    image: xxxxx
    name: xxxxx
## root userとして、SYS_TIMEを実行。
    securityContext:
      capabilities:
        add: ["SYS_TIME"]

なお、Podレベルで設定すると、設定はPod内の全てのコンテナに引き継がれる。
Podレベルか、コンテナレベルどちらで設定するかは、
単に、securityContext:をspec:に含めて書くか、spec:containers:の中に書くか、の違いで反映できる。

参考

https://kubernetes.io/ja/docs/concepts/security/pod-security-standards/
Kubernetes完全ガイド (impress top gear)
https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/

参考にさせていただきました。ありがとうございます。

備考

何か間違っている記載ありましたら教えていただけると嬉しいです。

元記事はこちら

https://qiita.com/namely_/items/9a85db8eedeae334839a
著者:@namely_