作者:安德鲁-佐拉 2022年1月26日

最初发表在Magalix的博客上的客座文章,作者是Andrew Zola

GitOps团队正在将安全问题向左转移。这对任何寻找坚实有效的计划来保护整个生态系统内的应用程序、基础设施和其他流程的人来说都是个好消息。

其主要目的是提高成果,减少花在安全上的时间。GitOps有一大堆开箱即用的好处。这些好处包括改善企业基础设施管理协议,加速开发,以及(当然)提高安全性。

什么是GitOps?

GitOps是一种利用基于Git的代码版本控制的开发方法。它也经常自动化。这意味着Git定义和控制工作流程,并在各系统之间进行同步。这意味着你可以在基于容器的持续集成/持续交付或部署(CI/CD)环境的每一个方面添加版本控制。

Git已经发展成为从事开源和专有软件开发项目的开发人员的标准。遵循GitOps的做法也有很多不同的方式,但在大多数情况下,我们遵循Weaveworks(一家创造了这个术语的初创公司,也是GitOps最有力的倡导者之一)制定的最佳实践。

GitOps之所以受欢迎,是因为Git是开发人员可以互动和协作的唯一界面,而集成和部署过程则完全自动化。这种方法使所有基础设施的模板都可以被审计,实现完整的版本控制,并提高开发人员的速度。

GitOps方法论也包含了持续安全的概念。这种方法确保安全是每个迭代的核心,允许开发人员在应用程序上线之前就消除所有错误和漏洞。

要用 "安全即代码 "来保护GitOps流程,请遵循以下步骤。

1- 应用关键权限管理

每当你在Git上构建应用程序时,当前的开发阶段可以无缝衔接到理想状态。GitOps本质上是一套流程,允许向理想状态收敛。

你可以利用版本控制供应商提供的工具和功能,利用权限管理。如果你以一种有组织的方式设置你的环境,你可以很容易地分配所有权、质量门和启用不同类型的访问。

然而,没有适当的批准,任何修改都不会发生。在这种情况下,你应该定义所有者,并确保团队对具体的修改进行审核。

GitOps迫使团队思考包括在环境即代码中的一切。因此,你会有基础设施即代码(IaC)、配置即代码(CaS)、策略即代码(PaC)、安全即代码(SaC),以及其他任何你能想到的代码。

但是,不要把你的秘密当作代码来存储。

与DevSecOps相比,GitOps在实施方面的规定性更强。它将Git作为整个环境的单一真理来源。

2- 尽早纳入安全扫描

GitOps允许你将更多的部署过程自动化。GitOps的开发者必须编写代码,在本地进行测试,并提交拉动/合并请求。一旦你提交了代码,在为安全扫描提供必要的工具后,就必须继续前进。

在软件开发生命周期(SDLC)中尽可能早地开始安全扫描总是更好。这种方法也允许软件工程师以他们已经习惯的方式提供反馈。

你的VCS和CI管道是一个很好的地方,可以开始嵌入基础设施代码库的安全扫描。

3- 在整个SDLC中嵌入安全

使用PaC在整个SLDC中执行安全和合规性是非常关键的。在这种情况下,最好在将IaC模板提交到Git存储库之前对其进行扫描。这种方法可以确保开发人员获得持续不断的反馈。

只要你有持续和频繁的反馈,你就可以快速修复错误和错误配置。定期的安全扫描还可以确保你执行最新的安全最佳实践,并抓住代码中的潜在问题。

4- 强化关键数据管理

Git中的机密信息是很危险的(还记得Uber的数据泄露事件吗)。这是因为提交到git仓库的代码可以迅速在多个地方传播。因此,对敏感数据进行加密是企业的当务之急。

然而,保持关键业务数据的机密性是一个挑战,而且可用的选项往往很复杂。因此,在GitOps工作流程的每个步骤中,所有的秘密都必须得到保护和控制。

如果你想知道为什么我们仍然选择在GitHub上存储敏感数据,答案很简单。Git允许所有修改的修订历史,备份敏感数据,提供对敏感数据的安全访问,并提供统一的源代码管理方法。

5- 鼓励可操作的反馈

GitOps的最佳实践要求你迅速解决SLDC期间出现的安全问题。这是确保显著速度和敏捷性的最佳方式。如果不主动解决安全问题,你就有可能在GitOps开发团队中产生摩擦。

在嵌入和执行安全协议时,你也应该专注于终端用户或开发人员。这是因为,当安全问题不直观时,开发人员是臭名昭著的,他们会一并规避掉。

产品所有者和项目经理应该自觉地让开发人员容易遵守安全协议。在这种情况下,你应该创建补救和优先级准则与违规的行项目。

6- 避免云漂移

在你的存储库中使用托管的IaC模板和版本控制来对你的云环境进行修改。你也可以通过利用相同的模板来执行所有不可变的基础设施和调和循环。

值得注意的是,通过对运行中的资源进行手动修改来解决问题,偶尔会导致云漂移。这使得拥有适当的可见性和监控以实现自动安全扫描变得至关重要。这种方法也将有助于让你的开发团队对云漂移负责任。

每当出现云漂移,你必须立即恢复到以前的状态。另外,你可以在模板中添加对策,并通过管道将其推送到运行环境中。

IaC模板必须与部署的基础设施的图片完全一致。即使你有轻微的差异,当你的代码进入生产时,你也会产生巨大的风险。

7- 持续地审计和跟踪进展

当你的所有代码进入生产时,应用程序或基础设施的实施并没有结束。这使得审计对于部署整个应用程序和基础设施至关重要。

我们可以将审计性定义为对记录的检查,以验证其准确性。在这种情况下,这将是一个系统性的评估,以确定一切是否符合先前建立的标准。

你必须分析和比较诸如日志、监控和可追溯性等内容。由于Git已经有了一个审计工具,它存储了所有与单一真理之源的任何变化有关的日志。由于GitOps的审计有多种形式,Git将日志和自定义元数据存储在云端。

当你审计并跟踪进展时,你可以通过快速打补丁来解决现有的错误配置。当你积极从事这项活动时,你应该设定一个基准。通过持续接触安全反馈,你的团队可能会下意识地防止潜在的错误。他们甚至可能会多走几步路,自己去寻找和修复这些错误。

8- 安全应该是一种规范

只有在无缝协作的情况下,GitOps才能发挥作用。因此,GitOps工程师在部署基础设施时,不能不把它放在一些合适的安全护栏里(不假设它是完美的)。

确保成功的最好方法是让开发人员和安全团队紧密合作。这种方法将有助于在每次迭代中改进流程。与你的安全团队合作也很关键,以确定哪些可以通过,哪些不能通过。他们也可以与开发人员分享他们的知识和技巧,了解什么是可行的,什么是不可行的。

当所有这些结合在一起时,你将能够加强你的安全态势。当所有利益相关者之间有密切的合作和协议时,实施自动化协议就会更容易。

用Magalix保护你的GitOps工作流程


图。嵌入GitOps工作流程中的安全即代码

在Magalix,我们的业务是通过PaC以编程方式执行安全标准。当GitOps团队将PaC和SaC整合到他们的工作流程中时,它有助于建立以开发人员为中心的安全体验,为云原生应用程序提供持续部署。

在执行PaC时,企业还可以通过一次点击在集群中应用治理标准,在云环境中部署政策检查,并验证基础设施的合规性协议。

这种方法还允许开发团队在整个SLDC中创建和执行集中的游戏手册。这将有助于加速开发,实施最佳实践,并跨迭代自动化安全协议。

GitOps中的SaC也将在促进创新和上市时间方面发挥很大的作用。

【翻译】用 安全即代码 保护你的GitOps流程相关推荐

  1. 前端技术周刊 2019-02-26:前端代码保护

    2019-02-26 前端代码保护 前端快爆 Vue 2.6 正式发布,带来了全新的 Slots(插槽)语法.异步错误处理.动态指令参数.编译警告位置信息.显式创建响应式对象.SSR 数据预抓取.可直 ...

  2. python 源码保护_Python代码保护

    Python等解释性脚本语言都需要源码明文存储,所以有两种情况需要考虑代码保护的问题: 代码逻辑的保护:代码本身有版权或者不能公开源代码 涉及用户名.密码等关键信息的配置 代码保护方法 Python代 ...

  3. excel不能编辑如何解锁_偷梁换柱之EXCEL编辑保护和VBA隐藏代码保护的解锁

    如何解锁EXCEL表格编辑保护和VBA隐藏代码保护? 当我们想借用别人的表格发现表格上锁无法编辑又不知道密码时或者当我们用软件生成一些表格时往往会遇到"上锁"问题,导致我们无法对表 ...

  4. [翻译]编写高性能 .NET 代码 第一章:工具介绍 -- Visual Studio

    Visual Studio vs虽然不是全宇宙唯一的IDE,但它是.net开发人员最常用的开发工具.它自带一个性能分析工具,你可以使用它来做开发,不同的vs版本在工具上会略有差别. VS可以分析CPU ...

  5. [翻译]编写高性能 .NET 代码 第一章:性能测试与工具 -- 平均值 vs 百分比

    平均值 vs 百分比 在考虑要性能测试的目标值时,我们需要考虑用什么统计口径.大多数人都会首选平均值,但在大多数情况下,这个正确的,但你也应该适当的考虑百分数.但你有可用性的要求,作为性能测试的目标里 ...

  6. vba excel 退出编辑状态_偷梁换柱之EXCEL编辑保护和VBA隐藏代码保护的解锁

    如何解锁EXCEL表格编辑保护和VBA隐藏代码保护? 当我们想借用别人的表格发现表格上锁无法编辑又不知道密码时或者当我们用软件生成一些表格时往往会遇到"上锁"问题,导致我们无法对表 ...

  7. android 代码保护 高级混淆

    Android高级混淆和代码保护技术 --------- 有了代码混淆还不够,我们需要更多技巧来保护我们的代码,特别是对于需要做混淆但又需要暴露许多 API 的 SDK 开发者来说.混淆是基础,代码安 ...

  8. Android高级混淆和代码保护技术

    本文讲的是 Android高级混淆和代码保护技术, 这是一篇关于 Android 代码保护的文章,旨在介绍代码混淆.防止逆向工程的各种高级技巧.大家都很忙,我也赶着回去继续开发我的新应用,因此话不多说 ...

  9. Android 高级混淆和代码保护技术

    转载自@drakeet Android大牛的博客 http://drakeet.me/android-advanced-proguard-and-security/ Android 高级混淆和代码保护 ...

最新文章

  1. 码农技术炒股之路——配置管理器、日志管理器
  2. 最大间隔分类器的错误理解
  3. DPM 2012 SP1---安装并部署DPM 2012 SP1服务器
  4. python运行不了指令_python不是内部命令或外部命令,也不是可执行程序解决方法...
  5. 同一个容器实例可以同时运行在多个宿主机_从零开始学K8s: 3.什么是容器
  6. mysql主从io为no_mysql主从同步错误解决和Slave_IO_Running: NO
  7. 里bl2和bl3为什么分开_真正爱过的人,分开,真的会是“好散”吗?
  8. 国内外著名CAD、CAM雕刻软件介绍
  9. 等保与ISO27001
  10. 判断斗地主卡牌类型的思路
  11. php 截掉最后一个字符_php 截取并删除字符串最后一个字符的方法
  12. 电脑启动计算机管理闪退,win7系统控制面板无法打开出现闪退的设置方案
  13. C++文件操作的具体方法
  14. CI/CD——构建企业级Docker+Jenkins+Git+Harbor流水线自动化持续集成持续发布平台
  15. 【PCB学习笔记】绘制智能车四层板 --- PCB设计规则设置及手工布线
  16. 黑猴子的家:Java SE 知识储备
  17. xception in thread “main“ org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualif
  18. php lcg value与mt rand生成0 1随机小数的效果比较
  19. 网络安全如何学习?(学习路线及资料)
  20. C语言 内部函数和外部函数

热门文章

  1. P3324 [SDOI2015]星际战争
  2. 新宝市场分析大盘前瞻高位抱团股要提防
  3. 一篇文章看懂:量化交易
  4. eclipse安装说明
  5. python制作三维散点图
  6. oracle中replace into,oracle SELECT INTO 和 replace into SELECT 两种表复制语句详解
  7. 安大计算机学院李伟教授,安徽大学高教所研究生导师聘任仪式在我校举行
  8. [ACNOI2022]我不会GF啊
  9. 【盘点】值得推荐的优质文章!
  10. 第十届蓝桥杯C/C++ B组决赛