乐趣区

关于部署:应用部署初探6个保障安全的最佳实践

在之前的文章中,咱们理解了利用部署的阶段以及常见的部署模式,包含微服务架构的利用应该如何部署等根本内容。本篇文章将介绍如何平安地部署应用程序。
 

平安是软件开发生命周期(SDLC)中的要害局部,同时也须要成为 SDLC 中每个环节的一部分,尤其是部署。因而,保障利用部署平安并不是开始于部署阶段,而是从写下第一行代码开始就须要将平安纳入思考的因素,即平安左移。
 

本文将会介绍 6 个保障利用部署平安的最佳实际,帮忙您防止平安问题。这些最佳实际还能够保障部署过程的速度不受影响。
 

1、管制部署的触发形式

开发团队应该谨慎治理触发主动部署到生产环境的代码,生产部署不应该从不受信赖的代码库、fork 或者分支中进行。
 

2、理解开发环境的平安问题

在启动一个新的软件我的项目之前,让开发团队相熟相干零碎环境的平安最佳实际是至关重要的。例如,Kubernetes 的平安上下文设置能够帮忙开发团队了解 Kubernetes 平安的根本内容。当开发团队理解这些基础知识之后就能够极大水平缩小人为谬误。
 

这之所以重要是因为 Kubernetes 是历史上倒退最迅速的开源我的项目之一,它被广泛应用于云原生开发和部署,对 Kubernetes 的平安最佳实际有深刻理解能够帮忙团队防止平安失误,其余的容器编排零碎也同理。
 

3、施行密钥策略

当应用动静服务来解决配置变动时,它们(或相似服务)也应该会解决相干的密钥。它们在运行时将密钥传递给容器,同时应用对立的策略来解决密钥,确保不同类型的密钥(即运行时与构建密钥)不被混同,并放弃测试和开发顺利。
 

应用程序仅须要在打包时构建密钥(比方,我的项目 repo 或文件存储凭证)。运行时密钥只有在部署之后才是必要的(比方,私钥、数据库明码以及 SSL 证书),因而开发者仅需传递必要的密钥到应用程序即可。
 

具体的策略并不重要,重要的时候保持采纳对立的策略。每个团队都必须在所有环境中应用雷同的密钥解决策略,使其更容易跟踪密钥。这个策略应该是灵便的,以便于测试和部署。重点应该是密钥的应用,而不是其起源。

 

4、采纳 GitOps 实际

GitOps 正逐步成为平安的云原生和以 Kubernetes 为核心的 CI/CD 的首选办法。它同时提供了平安和疾速部署,这是以后任何软件开发我的项目中最重要的两个方面。
 

依据许多优良的开发人员和工程师的说法,GitOps 是一系列针对 Kubernetes 环境的实际,尤其是当单个集群资源被多个用户或团队共享时。
 

GitOps 能够与 Kubernetes 的性能(如命名空间)协同工作,确保多个租户以平安的形式应用资源。这些做法通过放弃租户之间的隔离、缩小平安和可读性的危险来实现。当所有用户都在进行批改时,这一点尤其有帮忙。
 

应用像 GitOps 这样的模式,能够确保任何用户所做的任何扭转在进入最终构建之前都会被跟踪和批准。这不仅能够管理应用程序的更新,而且如果某个更新并没有像预期那样工作时,你能够轻松回滚到以前的版本。
 

5、永远别用默认配置

如果你正在应用开源我的项目,那么千万别用它们的默认配置,这点尤为重要。默认配置不肯定与你的安全策略统一,因为它们关注的是商业、经营和性能上的胜利,而不是平安。此外,它们是常识,任何人都能够利用它们。在这种状况下,你能够寻求商业平台和供应商的帮忙。
 

这方面的一个典型例子是,在应用 Kubernetes 时,部署及其 pod 没有网络分段策略。这让所有的资产在它们之间进行通信。如果开发者想疾速建设一个应用程序,这种默认设置是很不便的,但保留默认设置意味着,如果一个容器被攻打,威逼就会迅速蔓延。
 

6、作为部署的一部分运行自动测试

通过三思而行的测试能够帮忙你对代码的安全性取得信念,反之蹩脚的测试会障碍你。如果条件容许的话,将测试自动化,使其反对部署流水线。简略的“测试”能够在每次代码批改时运行,资源密集型的测试能够保留到重要的版本。不要漠视失败的测试,你须要从新评估和重构不起作用的测试。

退出移动版