关于 kubernetes-hardening
kubernetes-hardening 是面向 Kubernetes 集群和工作负载安全加固的技能,适用于负责集群安全的团队。内容涵盖 Pod 安全、网络策略和 RBAC 配置等实践。
主要功能
- 01配置 Pod Security Standards
- 02设置安全上下文
- 03配置网络策略
- 04实施最小权限 RBAC
- 05集群加固实践
适用场景
- 01为生产命名空间启用受限策略
- 02限制 Pod 网络流量
- 03为应用配置最小权限角色
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ bagelhole/ devops-security-agent-skills --skill kubernetes-hardening安装后在 Claude Code 中输入/kubernetes-hardening确认已加载。
详细介绍
Kubernetes 加固
保护 Kubernetes 集群和工作负载。
何时使用此技能
在以下情况下使用此技能:
- 加固 Kubernetes 集群
- 实施 Pod 安全标准
- 配置网络策略
- 满足安全合规要求
Pod 安全标准
# Namespace with restricted policy
apiVersion: v1
kind: Namespace
metadata:
name: production
labels:
pod-security.kubernetes.io/enforce: restricted
pod-security.kubernetes.io/audit: restricted
pod-security.kubernetes.io/warn: restricted
安全上下文
apiVersion: v1
kind: Pod
metadata:
name: secure-pod
spec:
securityContext:
runAsNonRoot: true
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
seccompProfile:
type: RuntimeDefault
containers:
- name: app
image: myapp:latest
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop: ["ALL"]
网络策略
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: default-deny-all
spec:
podSelector: {}
policyTypes:
- Ingress
- Egress
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-web
spec:
podSelector:
matchLabels:
app: web
ingress:
- from:
- podSelector:
matchLabels:
app: frontend
ports:
- port: 8080
RBAC
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: app-reader
rules:
- apiGroups: [""]
resources: ["pods", "services"]
verbs: ["get", "list"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: app-reader-binding
subjects:
- kind: ServiceAccount
name: myapp
roleRef:
kind: Role
name: app-reader
apiGroup: rbac.authorization.k8s.io
最佳实践
- 启用 Pod 安全标准
- 实施网络策略
- 遵循最小权限原则使用 RBAC
- 启用审计日志
- 使用加密保护 etcd
- 使用服务网格实现 mTLS
- 定期进行安全扫描
相关技能
- kubernetes-ops - K8s 运维
- container-hardening - 容器安全
评论
支持 Markdown