DZone>安全地带>使用Nirmata和Venafi确保Kubernetes上的软件供应链安全
使用Nirmata和Venafi确保Kubernetes上的软件供应链安全
了解如何在设计和构建云原生应用程序时考虑到安全性。
通过
-
Jun. 25, 22 - 安全区 -教程
喜欢 (1)
评论
保存
鸣叫
371次浏览
加入DZone社区,获得完整的会员体验。
确保软件供应链的安全仍然是DevOps团队的首要任务。在之前的一篇文章中,我们讨论了Kubernetes供应链安全的A MAP框架。 在这篇文章中,我们将讨论如何使用Nirmata Policy Manager和Venafi CodeSign Protect实现供应链安全。
随着供应链攻击的增加,确保软件供应链的安全已经成为在Kubernetes上构建云原生应用的DevOps团队的一项要求。签署容器镜像通常是保护软件供应链安全的第一步。现代应用开发和部署过程高度自动化,Kubernetes和Github等平台是持续集成(CI)和持续交付(CD)实践的核心。签署和验证容器镜像所需的任何额外步骤也需要自动化,这样才能保持软件开发的敏捷性。
关于Venafi CodeSign Protect(或Venafi TPP平台)
Venafi CodeSign Protect 可以帮助你管理所有的代码签名私钥,并以快速、安全和一致的方式为你的开发团队自动执行代码签名流程。它减少了您的代码签名证书落入网络犯罪分子手中的风险。CodeSign Protect可以自动完成签名钥匙和证书从发放到撤销的生命周期。此外,安全团队可以在企业的所有开发团队中定义和执行代码签名的最佳实践。CodeSign Protect还可轻松集成到现有的构建管道中,允许开发人员使用符合DevStack的本地签名工具。
关于Nirmata策略管理器
Nirmata Policy Manager让DevSecOps团队确保其Kubernetes工作负载和集群的安全性、合规性和运营准备状态,具体方法是:自动创建、部署和生命周期管理基于政策的智能护栏,提供政策洞察力、警报和报告,并通过与DevSecOps流程、工具和工作流的整合促进团队协作。您可以创建和部署策略来验证图像签名,确保只有经过验证的图像才能部署到您的集群中。
把这一切放在一起
以下是在你的CI/CD管道中设置供应链安全的步骤。
- 创建证书
- 签署容器镜像
- 创建策略
- 点击 "添加环境->证书和密钥"
- 选择创建类型为 "创建新 "或 "导入PKCS#12/PFX",并提供信息以创建代码签名证书。
创建证书
在Venafi CodeSign Protect中配置用于容器图像签名的代码签名证书。
- 以团队所有者的身份登录Venafi CodeSign Protect用户界面(例如:someorg-tpp.se.venafi.com/codesign-pr…。
- 导航到 "项目 "页面,为你的开发团队创建一个新项目。
- 根据安全团队的政策,给用户分配他们指定的角色。例如,(1)关键用户是一个开发人员或服务账户,将执行签名操作。
- 点击 "添加环境->证书和密钥"
- 选择创建类型为 "创建新 "或 "导入PKCS#12/PFX",并提供信息以创建代码签名证书。
添加证书
注意:以上步骤适用于Venafi TPP平台22.1版本。根据平台版本,细节可能有所不同。
签署容器镜像
接下来,使用Venafi Codesign Protect客户端(https://www.venafi.com/platform/codesign-protect)签署容器镜像。
安装Venafi Codesign Protect客户端和协同签名
- 为你的平台安装Venafi Codesign Protect客户端。该客户端可用于Linux、Windows和MacOS平台。安装说明在Venafi Codesign Protect帮助文档中提供(通常是在。Venafi 文档 > CodeSign Protect > 安装 CodeSign Protect > 在签名工作站上安装 CodeSign Protect 客户端)
- 从github repo下载cosign v1.8.0 pkcs11二进制。 https://github.com/sigstore/cosign/releases/download/v1.8.0/cosign-linux-pivkey-pkcs11key-amd64
用Cosign签署图像
首先,运行以下命令以获得OAUTHtoken。
运行下面的命令可以看到与OAUTH令牌相对应的代码签名证书列表。
选择证书并使用Venafi CodeSign Protect客户端提供的cosign和PKCS11模块签署容器镜像。
创建策略
现在,你需要创建一个策略,在k8s集群中部署使用该镜像的pod时,可以验证该镜像的签名。
安装Kyverno和Venafi key-fetch控制器
如果你的集群不包含Kyverno 1.7。你需要安装它。
(你可能需要卸载以前的Kyverno版本,如果它存在的话)
通过运行Venafi密钥控制器在集群上安装。
这将在 "nirmata "命名空间中创建一个图像密钥获取控制器。
在NPM中配置Venafi CodeSign Protect
在Nirmata策略管理器中为Venafi CodeSign Protect配置访问信息。这可以在 "集成 "选项卡中完成。你将需要以下信息来配置访问权限。
- 名称 - 该账户的唯一标识符
- Auth URL - Venafi信任保护平台(TPP)的认证URL。
- HSM URL - Venafi信任保护平台(TPP)的HSM URL。
- 用户名 - 访问Venafi Trust Protection Platform (TPP)的用户名。
- 密码 - 该账户的密码
- 额外的可信证书 - 这是可选的,只有在为Venafi信任保护平台使用自签名证书或私人CA证书时才需要(通常是在测试环境中)。
添加账户
创建图像验证策略
要为Venafi CodeSign Protect创建一个图像验证策略,请进入你的策略组并选择 "添加策略"。这将启动策略编辑器。在编辑器中,在实例下拉菜单中选择 "Venafi密钥"。接下来,在对话框中指定所需信息。
- 策略名称 - 为你的策略输入一个独特的名称
- 图像 - 指定应用此策略的图像
- Venafi账户和标签 - 选择账户并指定密钥的标签。这个标签将被用来从Venafi CodeSign Protect获取密钥。多个允许的密钥标签可以与该策略相关联,允许用户下载由多个来源签署的容器。
一旦信息被添加,你将在编辑器中看到策略YAML。你可以继续在编辑器中对策略进行任何其他修改。
接下来,将策略部署到你的集群。你可以运行这个命令来验证策略是否已经部署。
检查策略以确保它处于 "READY "状态
验证策略
一旦政策部署完毕,我们就可以测试端到端的流程了。
部署一个使用未签名镜像的pod。这个pod的部署应该由于签名不匹配而被阻止。在Nirmata策略管理器中,你会看到一个政策违反的细节。
部署一个使用签名图像并符合图像验证策略的pod。这个pod的部署应该是成功的。
正如你所看到的,任何不符合图像验证策略的图像将被阻止。该策略可以在集群或命名空间级别上进行范围控制。
总结
由于供应链攻击变得越来越普遍,确保CI/CD管道中各个阶段的安全已成为绝对必要。在将容器镜像部署到Kubernetes之前,对其进行签名是第一步。现在,你可以使用Venafi CodeSign Protect和Nirmata Policy Manager轻松实现这一过程的自动化。
我希望这篇博文能帮助你了解如何使用Nirmata Policy Manager和Venafi CodeSign Protect来保护你的容器镜像。
Kubernetes 软件开发
DZone贡献者所表达的观点属于他们自己。
DZone上的热门话题
评论