当前位置: 首页 > 科技观察

GitLab灾备优秀实践译者_0

时间:2023-03-17 20:05:19 科技观察

译者|陈军审稿人|孙淑娟创新开发对于码农来说,往往是一项艰巨的“实践”任务。每个GitLab用户或多或少都认识到源代码对于确保DevOps团队不间断工作流程的重要性。有人可能会问:GitLab是最可靠的源代码管理(SCM)工具提供商之一。它会发生什么?GitLab作为一个开源、开放的平台,不可避免地会受到服务中断、勒索病毒、系统宕机等各种潜在威胁。其中一部分源于GitLab服务器被攻击,一部分源于GitLab数据库本身的故障。为此,您和您的团队应该始终为各种突发事件提前做好准备,即:为您的GitLab数据建立强大的备份机制。同时,您还应该确保可以将默认备份策略集成到您自己的DevSecOps流程和CI/CD流水线中。1、GitLab备份应该包含什么?一旦确定了要备份的GitLab环境,我们应该确保GitLab备份包含各种GitLab存储库和元数据。我们可以将这里的“元数据”理解为各种wiki、问题、问题注释、部署密钥、合并请求、LFS(LinuxfromScratch,一种直接从网上下载源代码,从头开始编译Linux的安装方式)、标签、Webhooks、里程碑、发布、操作和其他组件和链接。只有备份好这些,开发团队和整个公司在项目中使用的所有Git仓库数据才能得到充分的保护。二、备份策略的关键特性如果你已经理清了手头的工作流程,那么你就可以着手制定备份策略了。为了保证工作流程不中断,我们应该根据需要进行多次备份,这样不仅可以及时恢复GitLab数据,还可以满足审计、合规和安全需求。以下是一些值得注意的安全元素:AES加密和各种动态和静态加密密钥供自己使用;区分灵活的、长期的和无限期的存储需求;归档旧的、未使用的存储库可行性;通过报告、邮件通知等监控方式检查GitLab备份的执行情况;防范勒索软件;检查灾难恢复技术是否满足恢复目标。以上只是与完善的备份策略相关的基本安全方面。如果你想为你的GitLab环境制定一个完整的备份计划,你需要考虑并构建一个替代的备份策略,其中包括各种高级备份功能。1.3-2-1备份规则如果DevOps团队为了一些源代码日夜奋战了很长时间,一旦GitLab中断或者备份失败,就会导致他们的成果丢失,也会造成公司蒙受经济损失。为此,我向您介绍3-2-1的“黄金”备用规则。即:一个公司应该在2个不同的存储实例中保留3个备份副本,并且至少有1个应该是离线的。因此,您需要注意备份复制的相关问题,它可以帮助您将本地备份的副本保存到多个位置,从而实现服务冗余和业务连续性。当然,如果你的DevOps备份软件具备多存储兼容性,就可以省下一大笔花在软件上的钱。目前,AWSS3、BackblazeB2、GoogleCloudStorage、AzureBlobStorage、GitProtectCloud以及与S3兼容的任何其他公共云(本地或混合)都提供了这种兼容性。如果您不确定,请咨询您的备份服务提供商,确认是否可以充分利用现有基础架构将代码数据连同您自己的存储空间备份到不同的目的地。2、需要无限期保留的数据保留期限也是我们在制定备份流程时需要考虑的一个重要方面。对于一些非常重要的GitLab数据,您可以将保留期限设置为5年、10年,甚至无限期。如果您的代码包含个人隐私数据,那么其存储期限需要满足当地法律法规和共同责任的要求。3.防范勒索软件备份GitLab数据是抵御勒索软件攻击的最后一道防线。因此,如果您的GitLab备份解决方案旨在防止勒索软件,它会在备份过程中对GitLab数据进行压缩和加密,从而确保数据在其存储状态下不可执行。因此,即使您的备份数据被某些勒索软件截获,也无法轻易执行或无限传播。此外,在最坏的情况下,即使某些勒索软件加密、修改或删除捕获的数据,您仍然手头有一个备份,允许您根据确切的时间点恢复您需要的GitLab的确切副本,然后保证您的团队将毫不拖延地继续开展项目。4.为审计和合规提供监控报告俗话说:知者天下。及时了解GitLab备份本身、备份失败、备份状态等信息,可以帮助DevOps团队理清遇到的问题,实时掌控备份数据的可用性。软件项目团队通常需要通过Slack通知、数据驱动的仪表板、电子邮件通知和高级审计日志来跟踪备份系统的每次执行。此信息不仅有利于您的团队,还可以为审计和安全认证提供详细的备份完成报告。3.恢复过程中应包括哪些内容?根据备份策略,GitLab的有效备份只是整体容灾计划的一部分。我们还需要规划一个策略,尽快恢复GitLab备份数据。也就是说,灾难恢复计划应确保您的企业在服务中断/停机、(非)故意人为错误以及勒索软件攻击导致数据丢失的情况下继续保持业务连续性。以下是我们在制定恢复策略时需要慎重考虑的几个方面:需要恢复的数据的时间点;存储库和选定元数据的恢复程度和数据量;用于从存储库备份数据恢复的GitLab帐户;是否以交叉恢复的方式从GitLab恢复到另一个Git托管平台(如:GitHub或Bitbucket),这在工具间迁移时非常实用;恢复到本地设备的可能性。实际上,如果您可以将备份和恢复操作整合到一个应用程序中,则可以为您的团队节省大量时间。有了恢复策略,我们正在讨论我们的团队如何为GitLab、基础设施和备份解决方案的故障做准备:1.GitLab中断。虽然GitLab是可靠的托管服务提供商平台,但发生中断的可能性仍然存在。对此,你可以将GitLab实例以.git文件的形式恢复到你自己的电脑上;也可以基于交叉恢复的方式,直接将GitLab的副本恢复到另一个Git托管平台。2.你的基础设施中断根据上面提到的3-2-1备份规则,即使你的基础设施中断,你将始终在2个目的地有3个备份副本,其中一个是离线状态。因此,您可以获得任何时间点的备份副本,并轻松恢复您的GitLab存储库及其元数据。3.备份方案本身的故障在决定使用第三方备份方案之前,您必须确认其已为潜在的中断做好准备,并能在实际发生时为您提供适当可靠的数据恢复支持。例如:如果他们可以与你共享本地应用程序中安装的权限,那么如果他们的SaaS环境出现故障,你可以轻松地直接从本地应用程序访问你的数据。4.总结综上所述,为了应对GitLab可能出现的中断,可以自己管理备份过程,编写专门的GitLab备份脚本并做快照命令,或者选择第三方备份的自动备份服务软件。同时,你需要实现灾难发生时应该实现的恢复流程,让整个GitLab环境能够尽快访问,保证团队工作的连续性。原文链接:https://dzone.com/articles/devops-security-which-gitlab-backup-best-practices管控内外部资源和风险,重点传播网络和信息安全知识和经验。