You need to enable JavaScript to run this app.
文档中心
容器服务

容器服务

复制全文
下载 pdf
容器配置
配置安全上下文
复制全文
下载 pdf
配置安全上下文
本文介绍为弹性容器实例(VCI)中的 Pod 或 Container 配置安全上下文(Security Context)方法,定义 Pod 或者 Container 的权限和访问控制。​
背景信息​
安全上下文(Security Context)用于定义 Pod 或者 Container 的权限和访问控制,包括 Discretionary Access Control、SELinux、Linux Capabilities 等。更多信息,请参见 Security Context。​
Kubernetes 提供了 Pod 和 Container 级别的安全上下文配置方法:​
  • Pod Security Context:Pod 级别,应用于 Pod 内所有容器和 Volume。Kubernetes 支持配置的参数,请参见 Pod Security Context API。​
  • Container Security Context:Container 级别,应用于指定的容器。Kubernetes 支持配置的参数,请参见 Security Context API。​
配置 Pod Security Context​
弹性容器实例支持通过 Pod Security Context 来修改 sysctls、runAsUser、runAsGroup。​
参数说明​
​
可配置参数​
类型​
说明​
Kubernetes API​
sysctls​
List<Sysctl>​
弹性容器实例的内核参数配置列表,包括:​
  • kernel.shm*(kernel.shm_next_id、kernel.shm_rmid_forced 除外)​
  • kernel.msg*(kernel.msg_next_id 除外)​
  • kernel.sem​
  • fs.mqueue.*​
  • net.*(net.ipv4.ip_local_port_range 和 net.ipv4.tcp_syncookies 除外)​
  • vm.min_free_kbytes​
runAsUser​
integer​
运行容器的用户 ID,若设置,将覆盖 Dockerfile 中的 USER 指令。​
-​
runAsGroup​
integer​
运行容器的用户组 ID,若设置,表示指定 Pod 中所有容器的进程都以用户组 ID 运行。​
注意​
若设置 runAsGroup,则必须同时设置 runAsUser。​
-​
​
配置示例​
  • sysctls 参数配置示例:​
  • ​
    apiVersion: v1​
    kind: Pod​
    metadata:​
    name: security-context-pod-sysctls-demo​
    spec:​
    securityContext: #Pod 级别安全上下文配置​
    sysctls: #sysctls 参数配置​
    - name: kernel.shmmax​
    value: "18446744073692774399"​
    - name: kernel.msgmax​
    value: "8192"​
    - name: kernel.sem​
    value: "32000 1024000000 500 32000"​
    containers:​
    - name: busybox​
    image: busybox​
    command: ["sh", "-c", "sleep 10000"]​
    ​
  • runAsUser 参数配置示例:​
  • ​
    apiVersion: v1​
    kind: Pod​
    metadata:​
    name: security-context-pod-runAsUser-demo​
    spec:​
    securityContext: #Pod 级别安全上下文配置​
    runAsUser: 1000 # runAsUser 参数配置​
    containers:​
    - name: busybox​
    image: busybox​
    command: ["sh", "-c", "sleep 10000"]​
    ​
  • runAsGroup 参数配置示例:​
  • ​
    apiVersion: v1​
    kind: Pod​
    metadata:​
    name: security-context-pod-runAsUser-demo​
    spec:​
    securityContext: # Pod 级别安全上下文配置​
    runAsUser: 1000 # runAsUser 参数配置​
    runAsGroup: 1000 # runAsGroup 参数配置​
    containers:​
    - name: busybox​
    image: busybox​
    command: ["sh", "-c", "sleep 10000"]​
    ​
配置 Container Security Context​
弹性容器实例支持通过 Container Security Context 来修改 runAsUser、runAsGroup、capabilities。​
说明​
在 Pod Security Context 和 Container Security Context 中均可以设置的参数(例如 runAsUser),若都配置,那么 Container 的设置会覆盖 Pod 的设置。​
参数说明​
​
可配置参数​
类型​
说明​
Kubernetes API​
runAsUser​
integer​
运行容器的用户 ID,若设置,将覆盖 Dockerfile 中的 USER 指令。​
-​
runAsGroup​
integer​
运行容器的用户组 ID,若设置,表示指定容器中的所有进程都以用户组 ID 运行。​
-​
capabilities​
List<String>​
为容器内运行的进程,授予(add)某些特定权限。​
当前支持配置以下权限:​
  • AUDIT_WRITE​
  • CHOWN​
  • DAC_OVERRIDE​
  • FSETID​
  • FOWNER​
  • KILL​
  • MKNOD​
  • NET_ADMIN​
  • NET_BIND_SERVICE​
  • NET_RAW​
  • SETGID​
  • SETUID​
  • SETFCAP​
  • SETPCAP​
  • SYS_CHROOT​
  • SYS_PTRACE​
  • SYS_RAWIO​
  • SYS_TIME​
说明​
SYS_RAWIO、SYS_TIME 为邀测能力,如需使用,请 提交工单 申请。​
​
部分不支持配置的参数及说明如下:​
​
不支持配置的参数​
说明​
是否为原生 Kubernetes API​
privileged​
是否以特权模式运行容器。特权模式容器中的进程拥有等同于主机上的 root 权限。默认为 false。​
是​
readOnlyRootFilesystem​
容器运行的根目录系统是否为只读权限。默认值为 false,即允许读写根目录。​
是​
procMount​
指定容器可以挂载的 proc 类型。默认值为 DefaultProcMount。​
是​
​
配置示例​
  • runAsUser 参数配置示例:​
  • ​
    apiVersion: v1​
    kind: Pod​
    metadata:​
    name: security-context-container-runAsUser-demo​
    spec:​
    containers:​
    - name: busybox01​
    image: busybox​
    command: ["sh", "-c", "sleep 10000"]​
    - name: busybox02​
    image: busybox​
    command: ["sh", "-c", "sleep 10000"]​
    securityContext: #Container 级别的安全上下文配置​
    runAsUser: 2000 #Container 级别的 runAsUser 参数配置​
    ​
  • runAsGroup 参数配置示例:​
  • ​
    apiVersion: v1​
    kind: Pod​
    metadata:​
    name: security-context-container-runAsUser-demo​
    spec:​
    containers:​
    - name: busybox01​
    image: busybox​
    command: ["sh", "-c", "sleep 10000"]​
    - name: busybox02​
    image: busybox​
    command: ["sh", "-c", "sleep 10000"]​
    securityContext: #Container 级别的安全上下文配置​
    runAsGroup: 2000 #Container 级别的 runAsGroup 参数配置​
    ​
  • capabilities 参数配置示例:​
  • ​
    apiVersion: v1​
    kind: Pod​
    metadata:​
    name: security-context-container-runAsUser-demo​
    spec:​
    containers:​
    - name: busybox01​
    image: busybox​
    command: ["sh", "-c", "sleep 10000"]​
    securityContext: # Container 级别的安全上下文配置​
    capabilities: # capabilities 参数配置​
    add: ["NET_ADMIN", "CHOWN", "SYS_CHROOT"]​
    ​
​
最近更新时间:2026.01.21 14:45:11
这个页面对您有帮助吗?
有用
有用
无用
无用