增强云原生应用安全性的4个因素

云原生应用程序越来越火,但是设计容器化应用程序或微服务只是冰山一角。我们在设计中所做的工作需要进一步扩大界限。

软件不仅是要为客户提供服务,它还应具有高度的可靠性和可用性。而这,只有通过严格控制开发流程以及专注于持续集成,持续交付才能实现。

当然,作为开发人员,你不想在编写代码或定义DockerFile等文件时受到太多限制。但是你必须认识到,你对自己和团队施加的约束越多,输出就会越稳定。

当这些约束成为一种习惯时,你甚至不会再注意到它们。慢慢地,团队和团队成员将学到比预期更多的有关安全操作的知识,改进了开发和交付流程,并使软件“投产”决策变得更加简单和顺利。

在以前,当我们开发应用程序或产品时,我们通常遵循以下步骤(按此顺序或多或少):

  1. 分析并明确你的市场需求。
  2. 定义你的软件架构,数据库,模型等。
  3. 开始编码。
  4. 准备测试,实施CI / CD流程。
  5. 建立你的生产环境。
  6. 投入生产。

以前当会有一位优秀的系统管理员,来帮助你关注应用实例的安全性。但作为开发人员,你实际上会讨厌他们-因为他们总是会批评你做了“不应该做”或“不正确”的事情的。

但是在云原生应用程序中,如果我们做的事情有所不同,要确保我们为客户提供的产品高度可靠,高可用情况下,该怎么办?

1. 生产环境是关键

我们知道工作负载的任何部分都可能崩溃。

你的生产系统和客户是相互依存的。我们的目标始终是避免停机并提供最佳服务。因此,为什么不首先改变代码的设计方式?

因此,让我们更新产品创建过程:

  1. 分析并明确你的市场需求。
  2. 定义你的生产体系结构:需要的第三方类型,部署策略(CI / CD,工具等),容器技术。
  3. 对于上面列出的每个组件,明确安全性的限制性方法。例如:
    • 为你的Dockerfile定义模板和准则
    • 定义webhooks的配置,认真检查文件修改。
    • 定义访问每个项目和环境的用户角色。
  4. 创建自定义的约束。
  5. 现在可以做出数据库或其他第三方组件的决策。
  6. 在这种情况下,编码可能会有些局限,但这是最好的。
  7. 投入生产

对于每个新项目,按照此过程进行更改可能在一开始都是很耗时的,但是如果我们从整体上看,我们知道它将为你的团队构建坚如磐石的工作环境,并为客户提供可靠的软件。

2. 实施Kubernetes控制策略

开发人员选择使用Kubernetes的原因有很多:好奇心,想了解“新”技术,可伸缩性需求等等。

Kubernetes不是魔术。当我开始使用它时,我感到很失望,意识到我要被yaml文件控制了。

话虽这么说,一旦你深入研究,你就会意识到它实际上可以成为各种生产环境中的强大工具。

我坚信Kubernetes是值得使用的工具,尽管它并不像我们想要的那样简单。

另外,如果它是Kubernetes的生产体系架构的一部分,则Kubernetes为你提供了许多限制环境和容器的可能性。

不幸的是,每个人都需要全心投入Kubernetes环境的配置中才能发现这些可能性,因为默认情况下它们并未嵌入大多数Managed Kubernetes产品中。

此外,对于基于角色的访问控制(RBAC),你可以在集群的所有层(从云到代码)上定义策略。

Admission controllers(准入控制器),将为你提供部署到Kubernetes集群的所有对象的规则。这些使你可以强制执行容器pull策略,证书配置,pod特权和访问等。

这就是为什么定义Kubernetes对象,容器和Pod之间的交互至关重要的原因。在生产启动并运行之后,要确定所需的限制,以确保重新部署所有对象并使其符合新策略,这将是一个真正的挑战。

3. 确保第三方组件的安全

作为开发人员,几年前,我并没有真正考虑过我所使用的第三方中组件的现有安全问题,例如Cassandra,Redis,PostgreSQL,ElasticSearch,Kibana等。

老实说,我从来没有考虑过安全方面。我仅出于服务目的使用这些工具。

但是,像所有软件一样,第三方组件也有一个缺点:都是由人类编写的,而且据我们所知,他们也经常修补漏洞。每次使用外部工具时,都应遵循安全评估流程。只要我们知道并且能够集成必要的安全层,就可以避免使用不完善和不安全的工具。

第三方代码安全性问题也会影响我们自己的代码。例如,我们使用多个库(有时甚至是同一库的不同版本),但是我们很少更新版本和关联的代码,删除不推荐使用的功能,在出现漏洞警报后没有及时修补等。

4. 速度慢一点

云原生应用程序,持续集成和持续部署等越来越快。

不幸的是,提高速度会直接影响我们产品的安全性和可靠性,使我们容易受到攻击并影响我们服务的可用性。反过来,这也会影响我们的客户。

我们为我们的产品和客户服务。但是,有时,实现我们目标的最佳方法是慢一点,总结我们的错误并从中学习。

可靠性对于你和你的客户来说是一切。

译文链接:https://thenewstack.io/how-design-impacts-the-security-of-cloud-native-applications/

K8S中文社区微信公众号

评论 1

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    Hello Guys, I just completed my divorce with my cheating husband of 10 years with two beautiful kids when i got a solid evidence of his unfaithfulness on extra marital affairs and his infidelity lifestyle, And the various applications he used to hide chats and lot of secret on his cell phone. Then, i decided to hire (Henry clark) an hacker and a PI just to be 100% sure because i don’t want to confront him or take any kinda step without proof, fact and figures because that could leads to defamation… It was with this great, honest, professional and trustworthy Man i got to know my husband is a professional cheater and has been using this app to hide most of his chats. This great hacker helped me broke to into his cell phone activities and wired everything he does on his cell phone directly to my phone and i was able to monitor and track him directly from my phone remotely without him knowing,
    Contact the Ethical hacker via email, Henryclarkethicalhacker@gmail.com you can also reach him on Whatsapp 18134211326..

    Steve Jenna2周前 (09-19)回复