▲ 点击上方"DevOps和k8s全栈技术"关注公众号

Kubernetes(简称
K8s)是一个强大的容器编排平台,广泛应用于生产环境中。然而,与其功能强大相对应的是对安全性的高要求。在生产环境中,我们必须采取一系列措施来保护
Kubernetes 集群免受潜在的威胁和攻击。本文将介绍一些关键的 Kubernetes 安全实践,以及如何有效地防止潜在的攻击。

1. 控制访问权限

Kubernetes 的 RBAC(Role-Based Access
Control)机制允许您细粒度地控制用户和服务账户对集群资源的访问权限。在生产环境中,必须审慎配置 RBAC 规则,仅授予最小必要权限。

  • 1)创建最小特权的服务账户,并将其分配给需要的 Pods。

  • 2)定期审查 RBAC 规则,确保权限仍然符合实际需求。

    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
    namespace: default
    name: pod-reader
    rules:

    • apiGroups: [“”]
      resources: [“pods”]
        verbs: [“get”, “list”]

2. 安全的网络策略

Kubernetes 的网络策略允许您定义 Pod 之间和 Pod 与外部服务之间的通信规则。通过限制流量,可以减少横向移动攻击的风险。

  • 1)创建网络策略,只允许必要的流量通过。

  • 2)使用网络插件(如 Calico、Cilium)以加强网络隔离。

    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
    name: deny-from-other-namespaces
    spec:
    podSelector: {}
    ingress:

    • from:
          - namespaceSelector: {}

3. 敏感信息管理

在容器中管理敏感信息时需要格外小心。使用 Kubernetes 的 Secret 对象来存储敏感信息,如密码和 API 密钥。

  • 1)避免在容器镜像中硬编码敏感信息。

  • 2)使用 RBAC 限制对 Secret 对象的访问。

    apiVersion: v1
    kind: Secret
    metadata:
    name: mysecret
    type: Opaque
    data:
    username:
      password: 

4. 持续监控与审计

实时监控是发现异常活动的关键。将集群的活动日志中央化,并使用工具进行实时分析。

  • 1)使用 Kubernetes 的审计功能记录所有 API 请求。

  • 2)配置集中式日志收集和分析工具(如 ELK Stack、Splunk)。

    apiVersion: audit.k8s.io/v1
    kind: Policy
    rules:
    - level: Metadata

5. 定期更新和漏洞管理

保持 Kubernetes 集群和相关组件的最新版本是关键,因为新版本通常包含了修复安全漏洞的补丁。

  • 1)定期检查 Kubernetes、容器运行时、网络插件等组件的更新。

  • 2)使用漏洞扫描工具来检查应用容器中的漏洞。

    更新 Kubernetes

    kubectl cluster-info dump | grep -E ‘image:|hyperkube’ # 查看当前版本
    kubeadm upgrade plan # 检查可升级版本
    kubeadm upgrade apply v1.x.y   # 执行升级

6. API Server 安全实践

a. 访问控制

确保 API Server 受到有效的访问控制,以防止未经授权的访问。

  • 1)使用 RBAC(Role-Based Access Control)限制用户和服务账户的权限。

  • 2)禁用匿名访问,并启用认证和授权。

    禁用匿名访问

    apiVersion: v1
    kind: Config
    users:

    • name: anonymous
      user: {}
      clusters:
    • cluster:
      insecure-skip-tls-verify: true
      name: local
      contexts:
    • context:
      cluster: local
      user: anonymous
      name: local
      current-context: local
b. 使用安全连接

确保 API Server 使用安全的连接,通过启用 TLS 和使用证书进行加密通信。

  • 1)配置 Kubernetes API Server 使用有效的 SSL 证书。

  • 2)禁用不安全的传输协议(如 HTTP)。

    生成自签名证书

    openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj “/CN=kube-api-server”

    配置 kube-apiserver

    –tls-cert-file=tls.crt
    –tls-private-key-file=tls.key
    –insecure-port=0

c. 启用审计

启用审计功能以记录 API 请求,以便进行审计和故障排除。

  • 1)配置审计策略以记录关键事件。

  • 2)将审计日志集中存储和监控。

    apiVersion: audit.k8s.io/v1
    kind: Policy
    rules:
    - level: Metadata

7. Kubelet 安全实践

a. Kubelet 启动参数

对 Kubelet 的启动参数进行安全配置,以减小攻击面。

  • 1)设置 --authorization-mode 为 RBAC。

  • 2)启用安全端口,禁用不必要的端口。

    启动 Kubelet

    kubelet --authorization-mode=Webhook
    –client-ca-file=/path/to/ca.crt
    –tls-cert-file=/path/to/tls.crt
    –tls-private-key-file=/path/to/tls.key
    –read-only-port=0

b. 使用证书

确保 Kubelet 使用安全的证书进行身份验证和通信。

  • 1)配置 Kubelet 使用有效的 TLS 证书进行身份验证。

  • 2)定期更新证书,确保证书的有效性。

    apiVersion: v1
    kind: Config
    clusters:

    • cluster:
      certificate-authority: /etc/kubernetes/pki/ca.crt
      server: https://:10250
      name: my-cluster
      users:
    • name: kubelet
      user:
      client-certificate: /etc/kubernetes/pki/kubelet.crt
      client-key: /etc/kubernetes/pki/kubelet.key
      contexts:
    • context:
      cluster: my-cluster
      user: kubelet
      name: my-context
      current-context: my-context
c. 使用 Pod 安全策略

启用 Pod 安全策略,限制容器的权限,防止攻击者通过容器逃逸攻击主机。

  • 1)创建 Pod 安全策略对象,并将其应用到命名空间或集群中。

    apiVersion: policy/v1beta1
    kind: PodSecurityPolicy
    metadata:
    name: restrictive
    spec:
    privileged: false
      # 其他策略规则…

8. 容器安全实践

a. 最小权限原则

确保容器的运行时用户以及容器的权限是最小的,以减小攻击面。

  • 1)使用非特权用户运行容器,避免使用 root 用户。

  • 2)确保容器的文件系统只包含必要的文件和程序。

    apiVersion: v1
    kind: Pod
    metadata:
    name: mypod
    spec:
    securityContext:
    runAsUser: 1000
    runAsGroup: 3000
      # 其他 Pod 配置…

b. 使用容器安全上下文

使用容器安全上下文配置容器的安全特性,如 SELinux 或 AppArmor。

  • 1)配置容器安全上下文以强制额外的安全措施。

  • 2)在容器运行时启用 SELinux 或 AppArmor。

    apiVersion: v1
    kind: Pod
    metadata:
    name: mypod
    spec:
    securityContext:
    seLinuxOptions:
    level: “s0:c123,c456”
      # 其他 Pod 配置…

c. 容器镜像扫描

使用容器镜像扫描工具,定期检查容器镜像中的漏洞。

  • 1)集成容器镜像扫描工具到 CI/CD 流程。

  • 2)定期扫描生产环境中正在运行的容器镜像。

    使用 Trivy 进行容器镜像扫描

    trivy image 

结语

在生产环境中运行 Kubernetes
集群需要综合考虑安全性的各个方面。通过控制访问权限、配置网络策略、管理敏感信息、持续监控和定期更新,可以降低潜在攻击的风险,确保集群的稳定和安全运行。请记住,安全是一个持续不断的过程,不断更新和改进是确保
Kubernetes 生产环境安全性的关键。

本周精彩文章推荐

linux系统常用命令大全

基于K8S实现代码自动化上线

基于Kubernetes的实战案例分享

k8s证书过期之后如何自动续订证书

K8S网站被10T流量攻击,1秒钟内就快速处理

基于k8s的devOps自动化运维平台架构设计(中英文版本)

基于k8s的大型在线购物网站设计与自动扩缩容实现

Kubernetes最佳实战案例:优化容器化部署与扩展性

现代化战机之路:美国空军U-2侦察机基于Jenkins和k8s的CI/CD架构演进

干掉99%传统运维:基于Jenkins和K8S构建DevOps流水线

合肥电信/Kubernetes技术培训

作者微信:luckylucky421302

![83e3993b7fc8f57db67b310055155c24.png](https://img-
blog.csdnimg.cn/img_convert/83e3993b7fc8f57db67b310055155c24.png)

加微信,可以进学习交流群。

点亮收藏,服务器10年不宕机![9e3ced945f7aeacdb8916e808d8975c0.gif](https://img-
blog.csdnimg.cn/img_convert/9e3ced945f7aeacdb8916e808d8975c0.gif)

题外话

初入计算机行业的人或者大学计算机相关专业毕业生,很多因缺少实战经验,就业处处碰壁。下面我们来看两组数据:

2023届全国高校毕业生预计达到1158万人,就业形势严峻;

国家网络安全宣传周公布的数据显示,到2027年我国网络安全人员缺口将达327万。

一方面是每年应届毕业生就业形势严峻,一方面是网络安全人才百万缺口。

6月9日,麦可思研究2023年版就业蓝皮书(包括《2023年中国本科生就业报告》《2023年中国高职生就业报告》)正式发布。

2022届大学毕业生月收入较高的前10个专业

本科计算机类、高职自动化类专业月收入较高。2022届本科计算机类、高职自动化类专业月收入分别为6863元、5339元。其中,本科计算机类专业起薪与2021届基本持平,高职自动化类月收入增长明显,2022届反超铁道运输类专业(5295元)排在第一位。

具体看专业,2022届本科月收入较高的专业是信息安全(7579元)。对比2018届,电子科学与技术、自动化等与人工智能相关的本科专业表现不俗,较五年前起薪涨幅均达到了19%。数据科学与大数据技术虽是近年新增专业但表现亮眼,已跻身2022届本科毕业生毕业半年后月收入较高专业前三。五年前唯一进入本科高薪榜前10的人文社科类专业——法语已退出前10之列。

“没有网络安全就没有国家安全”。当前,网络安全已被提升到国家战略的高度,成为影响国家安全、社会稳定至关重要的因素之一。

网络安全行业特点

1、就业薪资非常高,涨薪快 2022年猎聘网发布网络安全行业就业薪资行业最高人均33.77万!

img

2、人才缺口大,就业机会多

2019年9月18日《中华人民共和国中央人民政府》官方网站发表:我国网络空间安全人才 需求140万人,而全国各大学校每年培养的人员不到1.5W人。猎聘网《2021年上半年网络安全报告》预测2027年网安人才需求300W,现在从事网络安全行业的从业人员只有10W人。
img

行业发展空间大,岗位非常多

网络安全行业产业以来,随即新增加了几十个网络安全行业岗位︰网络安全专家、网络安全分析师、安全咨询师、网络安全工程师、安全架构师、安全运维工程师、渗透工程师、信息安全管理员、数据安全工程师、网络安全运营工程师、网络安全应急响应工程师、数据鉴定师、网络安全产品经理、网络安全服务工程师、网络安全培训师、网络安全审计员、威胁情报分析工程师、灾难恢复专业人员、实战攻防专业人员…

职业增值潜力大

网络安全专业具有很强的技术特性,尤其是掌握工作中的核心网络架构、安全技术,在职业发展上具有不可替代的竞争优势。

随着个人能力的不断提升,所从事工作的职业价值也会随着自身经验的丰富以及项目运作的成熟,升值空间一路看涨,这也是为什么受大家欢迎的主要原因。

从某种程度来讲,在网络安全领域,跟医生职业一样,越老越吃香,因为技术愈加成熟,自然工作会受到重视,升职加薪则是水到渠成之事。

黑客&网络安全如何学习

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

1.学习路线图

行业发展空间大,岗位非常多

网络安全行业产业以来,随即新增加了几十个网络安全行业岗位︰网络安全专家、网络安全分析师、安全咨询师、网络安全工程师、安全架构师、安全运维工程师、渗透工程师、信息安全管理员、数据安全工程师、网络安全运营工程师、网络安全应急响应工程师、数据鉴定师、网络安全产品经理、网络安全服务工程师、网络安全培训师、网络安全审计员、威胁情报分析工程师、灾难恢复专业人员、实战攻防专业人员…

职业增值潜力大

网络安全专业具有很强的技术特性,尤其是掌握工作中的核心网络架构、安全技术,在职业发展上具有不可替代的竞争优势。

随着个人能力的不断提升,所从事工作的职业价值也会随着自身经验的丰富以及项目运作的成熟,升值空间一路看涨,这也是为什么受大家欢迎的主要原因。

从某种程度来讲,在网络安全领域,跟医生职业一样,越老越吃香,因为技术愈加成熟,自然工作会受到重视,升职加薪则是水到渠成之事。

黑客&网络安全如何学习

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

1.学习路线图

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

内容涵盖了网络安全法学习、网络安全运营等保测评、渗透测试基础、漏洞详解、计算机基础知识等,都是网络安全入门必知必会的学习内容。

3.技术文档和电子书

技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本,由于内容的敏感性,我就不一一展示了。

4.工具包、面试题和源码

“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。

还有我视频里讲的案例源码和对应的工具包,需要的话也可以拿走。

这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。

参考解析:深信服官网、奇安信官网、Freebuf、csdn等

内容特点:条理清晰,含图像化表示更加易懂。

内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…

img

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐