# K8s 安全策略 (k8s-security-policies)

> 用 NetworkPolicy、Pod 安全标准、RBAC、OPA Gatekeeper 和 Istio mTLS 为集群实施纵深防御。

- 分类: [安全加固](https://www.myskills.tools/zh/categories/hardening/)
- 来源: 社区 · Seth Hobson
- 代码仓库: https://github.com/wshobson/agents/tree/main/plugins/kubernetes-operations/skills/k8s-security-policies (commit 47a5dbc)
- SKILL.md: https://github.com/wshobson/agents/blob/main/plugins/kubernetes-operations/skills/k8s-security-policies/SKILL.md
- 安装命令: `npx skills add wshobson/agents --skill k8s-security-policies`
- 许可证: MIT
- 兼容工具: Claude Code, Codex, Cursor, Copilot, OpenCode
- 权限: read-repo ✓, write-files ✓, shell ✓, network ✓
- 状态: 扫描通过
- 规则扫描无法覆盖所有风险，安装前请阅读此技能的 SKILL.md，确认权限后再使用。
- ⚠ 排查命令需要拥有可访问目标集群的 kubectl 凭据。

## 核心规则

对所有服务账户应用最小权限 RBAC，并与 Pod 安全标准和网络策略叠加形成纵深防御。

## 执行阶段

1. **设置 Pod 安全标准** — 通过命名空间标签设定 privileged、baseline 或 restricted 的 enforce/audit/warn 级别。
2. **配置网络策略** — 先对入站和出站默认拒绝，再按需放行前端到后端、DNS 等特定流量。
3. **最小权限 RBAC** — 定义只含必要动词的 Role/ClusterRole，并通过 RoleBinding 绑定到用户和服务账户。
4. **加固 Pod 与准入** — 以非 root 运行、只读根文件系统并丢弃全部 capability；用 OPA Gatekeeper 强制规则，用 Istio 开启 mTLS 和授权策略。
5. **排查问题** — NetworkPolicy 不生效时检查 CNI 支持并 describe 策略；权限被拒时用 kubectl auth can-i 检查实际权限。

## 权限说明（据 SKILL.md 整理）

| 能力 | 是否需要 | 说明 |
|---|---|---|
| 文件写入 | 需要 | 编写 NetworkPolicy、RBAC、Pod 安全上下文、Gatekeeper 和 Istio 等 YAML 清单。 |
| 命令执行 | 部分需要 | 仅在排查时使用 kubectl get、describe 和 auth can-i 等诊断命令。 |
| 网络外发 | 部分需要 | 仅通过 kubectl 访问目标 Kubernetes 集群的 API。 |

## SKILL.md 头部信息（YAML）

```yaml
---
name: k8s-security-policies
description: Implement Kubernetes security policies including NetworkPolicy, PodSecurityPolicy, and RBAC for production-grade security. Use when securing Kubernetes clusters, implementing network isolation, or enforcing pod security standards.
---
```

首页: https://www.myskills.tools/zh/ · URL: https://www.myskills.tools/zh/skills/k8s-security-policies/
