news 2026/4/22 19:08:21

【架构实战】容器安全最佳实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【架构实战】容器安全最佳实践

一、容器安全概述

容器安全是云原生安全的基础:

安全层次:

  • 镜像安全
  • 运行时安全
  • 网络安全
  • 供应链安全

二、镜像安全

1. 镜像扫描

# Trivy扫描trivy image myapp:latest# Clair扫描clairctl analyze-lmyapp:latest# Docker扫描dockerscan myapp:latest

2. 最小化基础镜像

# ❌ 不推荐 FROM ubuntu:20.04 RUN apt-get update && apt-get install -y python3 # ✅ 推荐 FROM python:3.11-slim # ✅ 最佳 FROM gcr.io/distroless/python:3.11

3. 安全构建

# 使用非root用户 FROM node:18-alpine RUN addgroup -g 1001 appgroup && \ adduser -u 1001 -G appgroup -s /bin/sh -D appuser USER appuser # 多阶段构建 FROM node:18 AS builder WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . RUN npm run build FROM node:18-alpine WORKDIR /app COPY --from=builder /app/dist ./dist COPY --from=builder /app/node_modules ./node_modules USER node

三、运行时安全

1. Pod安全策略

apiVersion:policy/v1beta1kind:PodSecurityPolicymetadata:name:restrictedspec:privileged:falseallowPrivilegeEscalation:falserequiredDropCapabilities:-ALLvolumes:-'configMap'-'emptyDir'-'projected'-'secret'-'downwardAPI'-'persistentVolumeClaim'runAsUser:rule:'MustRunAsNonRoot'seLinux:rule:'RunAsAny'fsGroup:rule:'RunAsAny'

2. 安全上下文

apiVersion:v1kind:Podmetadata:name:secure-podspec:securityContext:runAsNonRoot:truerunAsUser:10000runAsGroup:10000fsGroup:10000containers:-name:appimage:myapp:latestsecurityContext:allowPrivilegeEscalation:falsereadOnlyRootFilesystem:truecapabilities:drop:-ALL

四、网络安全

1. 网络策略

apiVersion:networking.k8s.io/v1kind:NetworkPolicymetadata:name:default-denyspec:podSelector:{}policyTypes:-Ingress-Egress---apiVersion:networking.k8s.io/v1kind:NetworkPolicymetadata:name:allow-frontendspec:podSelector:matchLabels:app:frontendpolicyTypes:-Ingressingress:-from:-podSelector:matchLabels:app:nginx-ingressports:-protocol:TCPport:80

2. 服务网格安全

apiVersion:security.istio.io/v1beta1kind:PeerAuthenticationmetadata:name:defaultspec:mtls:mode:STRICT

五、密钥管理

1. Secret管理

apiVersion:v1kind:Secretmetadata:name:db-credentialstype:OpaquestringData:username:adminpassword:${DB_PASSWORD}

2. 外部密钥管理

# 使用SealedSecretapiVersion:bitnami.com/v1alpha1kind:SealedSecretmetadata:name:db-credentialsspec:encryptedData:username:AgBy...==password:AgBy...==

六、供应链安全

1. 签名验证

# Cosign签名cosign sign myapp:latest# 验证镜像cosign verify myapp:latest

2. 准入控制

apiVersion:admissionregistration.k8s.io/v1kind:ValidatingWebhookConfigurationmetadata:name:image-validatorwebhooks:-name:validate-images.example.comrules:-apiGroups:[""]apiVersions:["v1"]operations:["CREATE","UPDATE"]resources:["pods"]clientConfig:service:name:image-validatornamespace:defaultcaBundle:LS0t...admissionReviewVersions:["v1"]sideEffects:NonefailurePolicy:Reject

七、监控与审计

1. 审计日志

# kube-apiserver配置--audit-policy-file=/etc/kubernetes/audit-policy.yaml--audit-log-path=/var/log/kubernetes/audit.log
# audit-policy.yamlapiVersion:audit.k8s.io/v1kind:Policyrules:-level:RequestResponseresources:-group:""resources:["pods","secrets"]-level:Metadataresources:-group:"apps"resources:["deployments"]

2. 运行时监控

apiVersion:security.datadoghq.com/v1kind:RuntimeSecurityPolicymetadata:name:runtime-policyspec:meta:runtimeType:syscallrules:-name:spawn_shellcondition:evt.type == "exec" evt.argv[0]== "/bin/sh"action:type:block

八、总结

容器安全最佳实践:

  • 镜像:最小化、定期扫描
  • 运行时:安全上下文、PSP
  • 网络:NetworkPolicy
  • 供应链:签名、准入

个人观点,仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/22 19:04:02

电影交流平台小程序(文档+源码)_kaic

第5章 系统实现进入到这个环节,也就可以及时检查出前面设计的需求是否可靠了。一个设计良好的方案在运用于系统实现中,是会帮助系统编制人员节省时间,并提升开发效率的。所以在系统的编程阶段,也就是系统实现阶段,对于…

作者头像 李华
网站建设 2026/4/22 19:03:09

别再只会打两拍了!手把手教你搞定跨时钟域信号处理的三种实战场景(单bit/多bit/异步FIFO)

跨时钟域信号处理实战指南:单bit、多bit与异步FIFO的工程化解决方案 在数字电路设计中,时钟域交叉问题如同暗礁般潜伏在每个高速系统的架构中。当信号需要跨越不同频率或相位的时钟边界时,工程师们面临的不仅是理论上的亚稳态风险&#xff0…

作者头像 李华
网站建设 2026/4/22 19:02:57

别再只盯着水电站了!用储能电站做电网‘黑启动’,这3个优势太香了

储能电站:电网黑启动的颠覆性解决方案 去年夏天,一场突如其来的极端天气导致某区域电网全面瘫痪。传统水电机组因山体滑坡导致输电线路中断,无法执行黑启动任务。就在调度中心紧急协调备用方案时,一座位于市郊的储能电站仅用15分钟…

作者头像 李华
网站建设 2026/4/22 19:02:55

从一次提交失败说起:PySpark开发者必须懂的Python版本兼容性底层逻辑

从一次提交失败说起:PySpark开发者必须懂的Python版本兼容性底层逻辑 凌晨两点,李工盯着屏幕上那段熟悉的报错信息,第17次尝试提交PySpark作业到生产集群。本地测试一切顺利的代码,在集群上却反复抛出ImportError: cannot import …

作者头像 李华
网站建设 2026/4/22 19:01:08

终极指南:Source Han Serif开源中文字体如何重塑你的设计体验

终极指南:Source Han Serif开源中文字体如何重塑你的设计体验 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf Source Han Serif是一款由Google与Adobe联合开发的完全免费商…

作者头像 李华