Kubernetes 你不知道的事

简介: Kubernetes 你不知道的事



网络异常,图片无法展示
|

你真的需要 Secret 对象吗?

很多人认为应该始终使用 Kubernetes Secrets。当开始使用 Kubernetes 时,我认为对 Secret Objects 的需求是显而易见的。

但是经过很短的时间和多个项目的工作后,我开始怀疑在将应用程序部署到生产环境的过程中的实际需求。让我们详细说明。

什么是 Secret

我希望我们首先清楚地了解 Kubernetes 上的 Secret 对象是什么。我认为官方文档给出了明确的定义。

Secret 是一个包含少量敏感数据(例如密码、令牌或密钥)的对象。此类信息可能会以其他方式放入 Pod Spec 或容器镜像中。使用 Secret 意味着您不需要在应用程序代码中包含秘密数据。

让我们看一个 Secret YAML 文件的示例:


让我们看一个 Secret YAML 文件的示例:

apiVersion: v1kind: Secretmetadata:  name: mysecret  namespace: defaulttype: Opaquedata:  username: YWRtaW4=  password: MWYyZDFlMmU2N2Rm

Secret 的特征

Secret 有如下特征:

  • 一个 pod 无法访问另一个 pod 的 Secret。
  • 如果在该节点上安排了一个 pod 并且需要它,则该节点可以使用 Secret。
  • Secret 的最大允许大小只能是 1 MB。这有助于保护 apiserver 内存资源和 kubelet 免受滥用。
  • 默认的 View 角色不授予对 Secrets 的访问权限。

这些是 Kubernetes 为提供 Secret 安全基线而实施的一些主要安全机制。

生产 Secret 的硬道理

现在让我们从攻击者的角度来看,事情是怎样的。

让我们从 Kubernetes 文档中提到的漏洞开始。

  1. 默认情况下,Kubernetes Secret 未加密地存储在 API 服务器的底层数据存储 (etcd) 中。
    实际上,秘密数据是 base64 编码的。但是只需要应用反向 base64 即可获得纯数据。
  2. 任何拥有 API 访问权限的人都可以检索或修改 Secret,任何有权访问 etcd 的人也可以。
  3. 此外,任何有权在命名空间中创建 Pod 的人都可以使用该访问权限来读取该命名空间中的任何 Secret;这包括间接访问,例如创建 Deployment 的能力。

为了解决这些问题,Kubernetes 推荐了一些实践来保证 Secret 数据的安全。

Kubernetes 文档有什么建议?

为了避免这些陷阱,文档提供了一些建议。

首先,您应该为 Secrets 启用静态加密。

其次,您应该启用或配置限制读取和写入 Secret 的 RBAC 规则。

最后,还应该使用 RBAC 等机制来限制允许哪些主体创建新的 Secret 或替换现有的 Secret。


生产中的 Secret 问题

也就是说,一些问题仍然存在,当我们在生产中考虑它们时,事情就会浮出水面。让我们来看看。

  1. GitOps 已经控制了我们创建和维护基础设施的方式。因此,如果我们需要创建一个 Secret 来存储敏感数据,我们是否要将其添加到 Ops 存储库中?

如果不这样做,那么用户(开发人员、管理员等)将不得不通过命令式命令来处理这些秘密。如果这样做了,那么就为不同类型的攻击打开了大门。

  1. 通过同一个 pod 中的容器,可以访问 pod 内的任何秘密。

第 4 个问题是 DevOps 最关注的问题:我们如何在 Kubernetes 集群上提供 Secret 数据,同时遵循 GitOps 最佳实践。

以下是我迄今为止找到的一些替代方案。

1. Hashicorp 保险库:

HashiCorp Vault 是一个基于身份的秘密和加密管理系统。Vault 提供由身份验证和授权方法控制的加密服务。

https://www.vaultproject.io/

Vault 的美妙之处在于它是一个开源工具。您可以设置自己的实例并自行管理。也可以依赖他们的云平台。

2. 云提供商 Secret Managers

AWS、GCP 和 Azure 等云提供商提供了 Secret Manager,可以使用它来保护秘密数据的安全并在 Kubernetes 上使用它们。

GCP 有 Google Secret Manager。本教程展示了如何开始在 GKE(Kubernetes For Google)上使用 Google Secret Manager。

https://cloud.google.com/secret-manager

AWS 提供 AWS Secret Manager,可以利用它来管理您的秘密数据。

https://docs.aws.amazon.com/secretsmanager/latest/userguide/integrating_csi_driver.html

Azure 也是如此,它提出了 Key Vault,可以与 Azure Kubernetes Service 集成。

https://medium.com/swlh/integrate-azure-key-vault-with-azure-kubernetes-service-1a8740429bea

还有很多其他解决方案可以提出相同的服务并更好地解决这些问题。

结论

我们经常说没有一个 100% 安全的系统,但作为 DevOps 和软件工程师,有责任寻找、构建和实施最佳实践,以改进基础设施并为客户提供更安全的系统。

Kubernetes Secret 仍然有用(例如在访问私有 Docker 存储库时),但我们必须将它们与更高级的工具和服务结合起来以确保系统安全。

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
5天前
|
弹性计算 人工智能 安全
云上十五年——「弹性计算十五周年」系列客户故事(第二期)
阿里云弹性计算十五年深耕,以第九代ECS g9i实例引领算力革新。携手海尔三翼鸟、小鹏汽车、微帧科技等企业,实现性能跃升与成本优化,赋能AI、物联网、智能驾驶等前沿场景,共绘云端增长新图景。
|
11天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
|
3天前
|
云安全 人工智能 安全
Dify平台集成阿里云AI安全护栏,构建AI Runtime安全防线
阿里云 AI 安全护栏加入Dify平台,打造可信赖的 AI
|
10天前
|
人工智能 自然语言处理 自动驾驶
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
|
6天前
|
人工智能 运维 Java
Spring AI Alibaba Admin 开源!以数据为中心的 Agent 开发平台
Spring AI Alibaba Admin 正式发布!一站式实现 Prompt 管理、动态热更新、评测集构建、自动化评估与全链路可观测,助力企业高效构建可信赖的 AI Agent 应用。开源共建,现已上线!
495 13
|
4天前
|
编解码 文字识别 算法
一张图能装下“千言万语”?DeepSeek-OCR 用视觉压缩长文本,效率提升10倍!
一张图能装下“千言万语”?DeepSeek-OCR 用视觉压缩长文本,效率提升10倍!
387 10
|
11天前
|
编解码 自然语言处理 文字识别
Qwen3-VL再添丁!4B/8B Dense模型开源,更轻量,仍强大
凌晨,Qwen3-VL系列再添新成员——Dense架构的Qwen3-VL-8B、Qwen3-VL-4B 模型,本地部署友好,并完整保留了Qwen3-VL的全部表现,评测指标表现优秀。
686 7
Qwen3-VL再添丁!4B/8B Dense模型开源,更轻量,仍强大
|
13天前
|
机器学习/深度学习 缓存 自然语言处理
【万字长文】大模型训练推理和性能优化算法总结和实践
我们是阿里云公共云 AI 汽车行业大模型技术团队,致力于通过专业的全栈 AI 技术推动 AI 的落地应用。
612 37
【万字长文】大模型训练推理和性能优化算法总结和实践