关于 container-hardening
这是一份用于加固容器镜像和运行时配置的安全指南,面向构建或部署容器的团队。内容涉及基础镜像选择、最小权限运行时设置、Kubernetes 安全上下文和镜像扫描。
主要功能
- 01精简基础镜像建议
- 02配置非 root 用户
- 03运行时安全选项
- 04Kubernetes 安全上下文
- 05使用 Trivy 扫描镜像
适用场景
- 01加固容器镜像
- 02降低容器运行时权限
- 03应用 Kubernetes Pod 安全设置
- 04检查镜像漏洞
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ bagelhole/ devops-security-agent-skills --skill container-hardening安装后在 Claude Code 中输入/container-hardening确认已加载。
附带文件references/container-security.md
详细介绍
容器加固
保护容器映像和运行时配置。
何时使用此技能
在以下情况下使用此技能:
- 构建安全的容器映像
- 加固容器部署
- 满足容器安全要求
- 实施纵深防御
Dockerfile 安全
# Use minimal base image
FROM alpine:3.18
# Don't run as root
RUN addgroup -g 1001 -S appgroup && \
adduser -u 1001 -S appuser -G appgroup
# Copy with specific ownership
COPY --chown=appuser:appgroup . /app
# Remove unnecessary packages
RUN apk del --purge build-dependencies && \
rm -rf /var/cache/apk/*
# Use non-root user
USER appuser
# Read-only filesystem support
WORKDIR /app
运行时安全
# Run with security options
docker run -d \
--read-only \
--tmpfs /tmp \
--security-opt=no-new-privileges:true \
--cap-drop=ALL \
--cap-add=NET_BIND_SERVICE \
--user 1001:1001 \
myapp:latest
Kubernetes 安全上下文
apiVersion: v1
kind: Pod
spec:
securityContext:
runAsNonRoot: true
runAsUser: 1001
fsGroup: 1001
containers:
- name: app
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop: ["ALL"]
映像扫描
# Scan with Trivy
trivy image --severity HIGH,CRITICAL myapp:latest
# Use distroless images
FROM gcr.io/distroless/static-debian11
最佳实践
- 使用精简的基础映像
- 以非 root 用户运行
- 启用只读文件系统
- 删除所有功能
- 定期扫描映像
- 对映像进行签名和验证
- 使用密钥管理
相关技能
- 容器扫描 - 漏洞扫描
- kubernetes-hardening - K8s 安全
评论
支持 Markdown