如何用CRD实现自动化容器安全

如何用CRD实现自动化容器安全

译文
作者:陈峻编译 2020-01-06 09:00:34

云计算

安全

系统运维

自动化 在本文中,我们将讨论如何使用Kubernetes CRD来引入安全自动化,进而确保应用程序得到相应的保护。

【51CTO.com快译】长久以来,安全一直是困扰着许多DevOps团队(包括我自己供职的加拿大保险和金融服务合作社)的症结所在。尽管在各种工具的帮助下,我们的CI/CD管道的绝大部分都已经实现了自动化,而且基于容器的自动化应用部署也是我们的常态,但是在安全方面的自动化程度仍然比较落后。与大多数DevOps团队一样,我们实施了自动化的漏洞扫描,但是在手动构建安全策略,以保护生产环境中的应用程序、及其工作负载方面仍存在着一定的问题。

可喜的是,如今Kubernetes的自定义资源类型(custom resource definitions,CRDs),却能够使我们的团队通过自己的管道,尽早地将应用程序的安全策略声明融入代码,并将此类安全策略自动化地部署到生产环境中。

目前,我们通过CRD引入了各种全局安全策略。这些策略预定义了应用程序的允许行为,并在多个Kubernetes集群之间实施了不同的防护措施。通过使用CRD来自动化且集中化地管理安全策略即代码(security policy as code),我们既可以加强与简化策略的执行,又能够以高效、容错且安全的方式部署和更新各种应用程序。

下面,我们将分享本企业是如何实现应用安全策略的自动化:

CRD的优势

为了利用容器工具所提供的各项优势,我们的团队使用了NeuVector CRD,并在NeuVector容器安全平台内定义了各种安全策略。

  • 首先通过CRD,我们让这些策略能够捕获应用程序最初的正常与合法行为,并以此建立一个完整的配置档案(profile)。
  • 接着,CRD将这些行为列入白名单,其中包括:与应用程序的标准操作相一致的所有网络规则、流程、协议、以及文件活动。
  • 最后,在应用程序的容器环境内,CRD通过只允许那些获批的网络连接(使用ISO第7层的应用协议,进行识别与检查)来提供安全性,并拒绝任何异常的外部连接。

据此,我们的策略便能够防止攻击者试图利用内部或外部的通信连接,进入应用程序所在的生产环境。

CRD既允许我们基于全局或每一个服务,来定义不同的规则;又通过支持RBAC,使我们能够利用本地的Kubernetes服务帐户与角色,来实施各项安全策略。同时,它的版本控制功能也有助于我们跟踪每一个应用程序修订版的策略。另外,诸如Open Policy Agent之类的安全策略管理工具,也能够按需支持各类集成。

创建NeuVector CRD

NeuVector CRD允许您使用Kubernetes的本地YAML文件来创建各项安全规则。

首先,您需要创建一个NeuVector CRD。如下图所示,我们使用YAML代码创建了一个CRD。同时,我们为NvSecurityRule定义了一个namespaced域,并将NvClusterSecurityRule的域范围定义为能够跨集群进行操作。

我们通过运行如下命令来创建CRD:

  • 有了NeuVector CRD之后,所有由NvSecurityRule类型调用的自定义资源,现在都可以交由CRD来处理。因此,您可以继续创建各种自定义的资源,来定义更多的安全策略。不过在此之前,请参考NeuVector的相关文档,以添加所有必需的clusterroles和clusterrolebindings。

另外,CRD可以在Kubernetes内部部署原生的、启用了RBAC的NeuVector安全规则。那些由CRD为特定的名称空间所声明的安全策略,只能由具备部署到工作区权限的服务帐户来执行。同样地,服务帐户必须具有适当的群集管理员权限,才能够跨名称空间部署那些群集范围的CRD定义。

以下是demo-security-v1.yaml文件的代码片段。它使用HTTP协议,来限制demo名称空间中的nginx-pod容器,去连接同一名称空间中的node-pod容器。

除了上述代码段,yaml文件还应该继续指定demo名称空间中各个容器所允许的所有网络连接,使用Redis协议的网络连接,以及每个容器允许的进程与文件活动。在部署应用程序之前,您可以通过将它们部署到NeuVector中,以提前准备好安全规则。此举可让应用程序在开始运行之时,就已经激活了相应的安全属性。

请参照如下命令部署您的安全策略:

  • NeuVector会在新创建的自定义资源中解析安全策略,并继续对NeuVector Controller进行REST API的调用。该Controller会按需在NeuVector中通过创建规则和配置,以实施各项策略。

安全策略即代码的用例

我个人认为:CRD和安全策略即代码的定义能力,应该能够为DevOps、DevSecOps、以及开发团队带来更好的安全性。我们可以从如下四个方面着手进行实践:

将开发和测试清单尽早导入应用的生命周期中

通过为应用程序创建部署与安全清单,开发人员能够在开发的初期尽早的利用CRD来保障安全性。在完成镜像的构建、自动化漏洞扫描、以及DevOps的审查之后,DevOps人员可以通过测试这两份清单,来为开发人员提供有效的安全性反馈。

因此,从最初到被部署到生产环境中,有效的安全策略始终伴随着新的应用程序。

使用行为学习来创建安全策略。

DevOps团队可以在测试环境中使用NeuVector的行为学习功能,来定义安全策略,并创建针对NeuVector CRD的YAML格式文件。通过如下的工作流(从图的右下角开始),DevOps和QA团队就能够将应用程序顺利地部署到测试与QA环境之中。也就是说,应用程序在此将完成全部与行为相关的配置文件,其中包括:产生适当的网络、流程、以及文件访问的安全性规则等。

在部署到生产环境之前,开发人员可以将新创建的规则导出为YAML格式,以便进行检查、编辑、以及开展DevOps的相关测试。

定义全局的安全策略

值得注意的是:通过启用全局安全策略的定义方式,NeuVector CRD既可以为那些未连接到任何特定应用的负载,又可以不针对集群中的某个特定负载予以分组。例如:安全、合规或运营团队可能需要定义网络出、入口的全局安全规则,以阻止某些进程横跨各个容器,或是允许某些进程对于整个集群中的监控与诊断。

因此,通过结合使用全局策略,和那些特定于某个应用的策略,整个团队就可以制定出本组织真正所需的精确规则。如下图所示,我们用如下规则来拒绝来自容器的SSH连接。

将策略从研发阶段迁移到生产环境。

通过使用NeuVector CRD,您可以将全部或是某些选定的安全策略,从研发阶段自动化迁移到生产环境中。在NeuVector控制台中,您可以通过配置“New Services Mode”,来发现、监视或保护各种设置。通过选择“Monitor”或“Protect”,您可以确保所有新部署的、或更新的服务,在激活之前,都必须包含必需的安全规则。

综上所述,通过利用Kubernetes CRD、以及安全策略即代码,开发团队和DevOps团队能够确保从开发伊始到生产部署,都能够得到安全自动化的“加持”,进而为应用程序提供更好的保护。

原文标题:How to Automate Container Security by Using CRDs to Get Security Policy as Code,作者:Niteen Kole

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/308397.html<

(0)
运维的头像运维
上一篇2025-05-27 13:48
下一篇 2025-05-27 13:49

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注