安全隔离¶
概述¶
OpenClaw 支持三种安全隔离方案,适用于不同的安全需求场景。
方案对比¶
| 方案 | 隔离强度 | 成本 | 适用场景 |
|---|---|---|---|
| 方案 A:普通容器 + 网络策略 | ⭐⭐ | 基准成本 | 同公司用户,低风险 |
| 方案 B:调度亲和性 + 网络策略 | ⭐⭐⭐ | 基准成本 | 同公司用户,中风险 |
| 方案 C:Kata Containers + 裸金属 | ⭐⭐⭐⭐⭐ | +30-50% | 跨公司,高安全要求 |
方案 A:普通容器运行时¶
原理¶
- 标准 Linux 容器隔离(Namespace + Cgroup)
- 使用 containerd/runc 运行时
配置¶
apiVersion: v1
kind: Pod
metadata:
name: openclaw-user
spec:
containers:
- name: openclaw
image: openclaw:latest
securityContext:
readOnlyRootFilesystem: true
allowPrivilegeEscalation: false
runAsNonRoot: true
网络策略¶
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: openclaw-isolation
spec:
podSelector:
matchLabels:
app: openclaw
policyTypes:
- Ingress
- Egress
ingress:
- from:
- podSelector:
matchLabels:
role: ingress
egress:
- to:
- podSelector:
matchLabels:
role: nat-gateway
适用场景¶
- 同公司内部用户
- 风险可控场景
- 成本敏感
方案 B:调度亲和性策略¶
原理¶
将同公司用户的 Pod 固定到同一节点,即使发生逃逸,也只能访问同公司数据。
配置¶
apiVersion: v1
kind: Pod
metadata:
name: openclaw-company-a
labels:
company: company-a
spec:
affinity:
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
company: company-a
topologyKey: kubernetes.io/hostname
containers:
- name: openclaw
image: openclaw:latest
适用场景¶
- 多租户场景
- 需要隔离不同公司用户
- 成本与方案 A 相同
方案 C:Kata Containers + 裸金属¶
原理¶
- 每个 Pod 运行在独立的轻量级虚拟机中
- 使用裸金属服务器(无二次虚拟化损耗)
- 虚拟机级别隔离,安全性接近物理隔离
配置¶
apiVersion: v1
kind: Pod
metadata:
name: openclaw-secure
spec:
runtimeClassName: kata-containers
containers:
- name: openclaw
image: openclaw:latest
RuntimeClass 配置¶
apiVersion: node.k8s.io/v1
kind: RuntimeClass
metadata:
name: kata-containers
handler: kata
scheduling:
nodeSelector:
node.kubernetes.io/instance-type: bare-metal
成本考虑¶
- 裸金属价格比虚拟机高 30-50%
- 超卖后成本可控
- 适合高安全要求场景
适用场景¶
- 金融/政务等敏感场景
- 跨公司数据强隔离
- 合规要求
推荐选择¶
| 阶段 | 推荐方案 | 理由 |
|---|---|---|
| 初期试点 | 方案 A | 成本最低,快速验证 |
| 规模上线 | 方案 B | 成本不变,风险降低 |
| 高安全要求 | 方案 C | 金融/政务等敏感场景 |