在K8S平台通过PSP来限制Pod的安全行为,限制在指定命名空间范围内部署的Pod不允许使用shareProcessNamespace
时间: 2024-10-16 12:12:22 浏览: 15
k8s-diagrams:与kubernetes相关的图的集合
在 Kubernetes (K8s) 中,Pod Security Policies (PSP) 是一种安全机制,用于控制在一个集群内可以创建的 Pod 的安全属性。PSP 允许管理员定义一组规则,包括但不限于网络策略、文件系统访问、运行时环境等,以限制Pod的行为,增强集群的安全性。
如果你想要限制部署在特定命名空间中的Pod,不允许它们共享 `shareProcessNamespace`(也称为进程命名空间),你可以创建一个PSP,并在其配置中明确禁止这一特性。例如,在YAML文件中,可能会这样设定:
```yaml
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
name: restricted-processes
spec:
allowPrivilegeEscalation: false
seLinux:
rule: RunAsAny
supplementalGroups:
rule: RunAsAny
fsGroup:
rule: RunAsAny
runAsUser:
rule: RunAsAny
runAsNonRoot: True
volumes:
# 添加对某些特殊卷类型的限制,如如果希望禁止挂载host路径
hostPath: {}
hostNetwork: false
hostPorts:
# 如果希望限制对外端口的访问,可以在这里指定
- min: 0
max: 65535
processRestrictions:
requireNonRoot: true
prohibitedProcessTypes:
- name: '*'
namespaceSelector:
matchExpressions:
- key: metadata.name
operator: In
values:
- your-namespace-name
```
在这个例子中,`prohibitedProcessTypes` 部分明确指定了不允许共享进程命名空间。只有在目标命名空间 (`your-namespace-name`) 中,新创建的Pod才会受到这个限制。
阅读全文