Kubernetes 安全上下文-Security Context

Security Context

 Pod及容器的安全上下文
◼ 一组用来决定容器是如何创建和运行的约束条件,这些条件代表创建和运行容器时使用的运行时参数
◼ 给了用户为Pod或容器定义特权和访问控制机制
 Pod和容器的安全上下文设置主要包括以下几个方面
◼ 自主访问控制DAC
◼ 容器进程运行身份及资源访问权限 *
◼ Linux Capabilities *
◼ seccomp
◼ AppArmor
◼ SELinux
◼ Privileged Mode
◼ Privilege Escalation
SecurityContext:
        配置在两个级别:
            Pod级别:对当前Pod中所有容器都生效;
            Container级别:仅对当前容器生效; 

            pods.spec.securityContext: 
                以指定的身份运行进程:
                    runAsGroup
                    runAsUser

                以非root的身份运行进程:
                    runAsNonRoot

                设定指定的内核参数值:
                    sysctls

            pods.spec.containers[*].securityContext
                以指定的身份运行进程:
                    runAsGroup
                    runAsUser

                以非root的身份运行进程:
                    runAsNonRoot

                设定Capability:
                    capabilities:

                    用户级别:
                        root 
                        non root 

                        Linux把内核中的管理权限,分成了多个类别,并给每个类别一个名称;这种类别,称为Capability;

                是否运行为特权容器:
                    privileged

                是否设定根文件系统为只读:
                    readOnlyRootFilesystem

seccon-capability

apiVersion: v1
kind: Pod
metadata:
  name: demoapp-seccon-capability
  namespace: default
  labels:
    app: demoapp
    version: v1.0
spec:
  containers: 
  - name: demoapp
    image: ikubernetes/demoapp:v1.0
    imagePullPolicy: IfNotPresent
    securityContext:
      capabilities:
        add:
        - NET_ADMIN
        drop:
        - CHOWN
  restartPolicy: OnFailure

seccon-privileged

apiVersion: v1
kind: Pod
metadata:
  name: demoapp-seccont-privileged
  namespace: default
  labels:
    app: demoapp
    version: v1.0
spec:
  containers: 
  - name: demoapp
    image: ikubernetes/demoapp:v1.0
    imagePullPolicy: IfNotPresent
    securityContext:
      privileged: true
  restartPolicy: OnFailure

seccon-runas

apiVersion: v1
kind: Pod
metadata:
  name: demoapp-sc-runas
  namespace: default
  labels:
    app: demoapp
    version: v1.0
spec:
  containers: 
  - name: demoapp
    image: ikubernetes/demoapp:v1.0
    imagePullPolicy: IfNotPresent
    env:
    - name: PORT 
      value: "8080"
    securityContext:
      runAsUser: 1001
      runAsGroup: 1001
  restartPolicy: OnFailure

 

posted @ 2024-01-03 12:45  しみずよしだ  阅读(40)  评论(0)    收藏  举报