ZBLOG

k8s Pod的安全策略配置

Kubernetes 的 Pod 安全策略可以帮助我们提高集群的安全性。以下是一些常见的 Pod 安全策略配置:

  1. 禁止特权容器:特权容器是具有 Linux 的 root 权限和访问主机名字空间、网络名字空间等权限的容器。禁止使用特权容器可以有效地避免攻击者利用容器逃脱沙盒。
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
  name: restrict-privilege
spec:
  privileged: false
  allowPrivilegeEscalation: false
  1. 文件系统只读:将文件系统设置为只读,可以防止攻击者在运行时修改敏感信息或植入木马。
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
  name: readonly-fs
spec:
  volumes:
    - configMap
    - downwardAPI
    - emptyDir
    - persistentVolumeClaim
    - projected 
    - secret 
  fsGroup:
    rule: RunAsAny # 继承宿主机用户组 
  runAsUser:
    rule: RunAsAny # 继承宿主机用户 
  seLinux:
    rule: RunAsAny # 继承宿主机 SELinux 标签 
  supplementalGroups:
    rule: MustRunAs # 必须以指定用户组运行 
  1. AppArmor 或 Seccomp:AppArmor 和 Seccomp 是两种 Linux 安全模块,它们可以限制容器的系统调用和文件系统访问权限。
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
  name: restrict-apparmor-seccomp
spec:
  seLinux:
    rule: RunAsAny # 继承宿主机 SELinux 标签 
  supplementalGroups:
    rule: MustRunAs # 必须以指定用户组运行 
  volumes:
    - configMap
    - downwardAPI
    - emptyDir
    - persistentVolumeClaim 
  allowedUnsafeSysctls:
    - "kernel.msg*"
  forbiddenSysctls:
    - "net.ipv4.ip_forward"

在配置完 Pod 安全策略后,需要创建一个 ClusterRoleBinding 对象来将该安全策略绑定到 ServiceAccount 上:

apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: psp-admin-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole 
  name: psp-admin 
subjects:
- kind: ServiceAccount 
  name: default 
  namespace: default 

这个例子中创建了一个名为 restrict-privilege 的 PodSecurityPolicy,并将其绑定到了默认的 ServiceAccount 上。这样,在使用该 ServiceAccount 创建 Pod 或 Deployment 时,就会自动应用这个安全策略。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=6926

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?