您当前的位置:   首页 > 新闻中心
如何增强基础设施即代码的安全性
发布时间:2021-11-30 14:04:54   阅读次数:

如何增强基础设施即代码的安全性(图1)

在当今云和移动优先的时代,跨超扩容器和本地手动创建和维护基础设施已不再可持续。不断增长的业务需求更频繁地发布使这进一步复杂化,应用程序和基础设施的变化以惊人的速度发生。基础设施的稳定性、可扩展性和安全性对于任何应用程序都至关重要。


现代 DevOps 和云工程团队正在通过以编程方式将基础架构“资源”(虚拟机、网络、配置等)定义为代码来解决这一困境。这种做法被恰当地称为基础设施即代码(Infrastructure-as-Code)


什么是基础设施即代码?

基础设施即代码 (IaC) 是在描述性模型中以代码形式管理基础设施(网络、计算机、虚拟机、负载平衡器和连接拓扑)。正如代码每次生成相同的二进制文件一样,IaC 模型每次应用都会生成相同的环境。


常见的 IaC 工具包括 Chef、Puppet、Ansible、Terraform 和 Pulumi。


基础设施即代码的工作原理:宠物与牛服务模型

用于描述 IaC 的一个常见例子是基础设施服务模型的“宠物与牛”的概念。这首先是由比尔·贝克上的话题推出扩大VS缩放 出在缩放的SQL Server 2012,并通过加文麦坎斯在后来推广CERN数据中心演进呈现。


宠物服务模型中,每个宠物服务器都被赋予一个爱的名字,如宙斯、哈迪斯、波塞冬等。他们是“独一无二的,亲手抚养和照顾的,当他们生病时,你会照顾他们恢复健康”。你可以通过扩大它们来扩大它们的规模,当它们不可用时,每个人都会注意到。


牛服务模型中,服务器被赋予标识号,如web01、web02、db01、db02等,与牛被赋予编号的方式非常相似。每台服务器“彼此几乎相同”,并且“当一个服务器生病时,您可以用另一个服务器替换它”。您可以通过创建更多它们来扩展它们,当一个不可用时,没有人会注意到。


IaC 工具用于大规模创建、维护或停用此类基础设施。例如,下面的 terraform 代码片段(一个 IaC 工具)使用 AWS,在“us-west-2”区域创建了一个具有指定 AMI 和大小t2.micro的 AWS 实例:


provider “aws” {
          profile = “default”
          region  = “us-west-2”
}
resource “aws_instance” “web01” {
          ami    = “ami-830c94e3”
          instance_type    = “t2.micro”
}


开发人员现在可以设置创建基础设施即代码所需的所有参数。当它被参数化和扩展时,很容易想象在 5 个区域中快速启动一千台服务器。


为什么组织要转向 IaC?

当您开始将基础设施视为代码时,有几个固有的优势:

  1. 将 DevOps 原则应用于基础设施:就像应用程序代码一样,IaC 支持通过代码管理基础设施。这使我们能够应用 DevOps 原则,如单一事实来源、代码审查、安全扫描、单元和集成测试等。

  2. 速度和可重复性:能够以非常快的速度大规模启动、管理和破坏基础设施和配置。由于基础结构是由相同的代码创建的,因此具有绝对的可重复性。另一方面,如果代码中有错误,它也会被复制。这就是 DevOps 原则(例如代码审查)发挥作用的地方。

  3. 安全性和可审计性: IaC 代码可由安全团队审查并由测试工具评估。由于代码处于源代码控制中,因此可以审核谁更改了什么以及何时更改。

  4. IaC 作为 CDLC 的一部分:IaC 被视为云开发生命周期 (CDLC) 的一部分,它由三个阶段组成:

    • 开发:IaC模板的创建;

    • 部署:通过执行 IaC 模板提供基础设施;

    • 运行时:更新 IaC 以在运行时更改。


这种新范式鼓励使用经过验证的 SDLC(软件开发生命周期)原则并将其扩展到 CDLC(云开发生命周期)。


开发人员如何在基础设施即代码中增强密码学的安全态势?

在2021 IAC安全洞察报告指出,45%的受访了解在部署后配置和IAC安全问题。


如何增强基础设施即代码的安全性(图2)

以下是开发人员在 IaC 模板中增强加密安全状态的关键考虑因素:


哪里有旧的加密密钥和数字证书? 传统上,开发人员将证书和机密存储在本地构建服务器或共享位置,以便与 CI 系统一起使用。但是,这是有风险的,并且会引发恶意活动。


如何管理密码学?现代快速开发和发布需要按需访问加密密钥。从开发人员的角度来看,和其他机制的传统用法可能不是最方便的。


与 CI/CD 集成怎么样? 开发人员在与 CI/CD 管道集成时会欣赏灵活性:

  • 本地签名:与 OS/Platform 签名者实用程序(如 JDK 的 jarsigner/keytool 或 Microsoft SDK 的 signtool.exe)和安全提供者(HSM 或供应商)集成;

  • 远程签名:REST api 将文件发送给供应商,供应商将签名并返回。


所有这些考虑都应该通过现代加密解决方案来解决,这些解决方案旨在跨传统和云原生世界运行。该解决方案应提供FIPS 认证的密钥管理系统,该系统可以作为 IaC 的一部分进行编排。它还应该能够按需访问加密密钥。


安全 IaC 是未来

随着 Kubernetes 和无服务器等云原生技术获得主流采用,IaC 越来越受到关注,并成为企业成功的关键。它还使开发人员能够更有效地管理他们的基础设施和配置。


先进的密码代码签名技术完成了 IaC 的安全循环。通过提供跨技术堆栈的代码签名解决方案,从传统的 Java、DotNet 到移动代码和容器/无服务器,他们实现了大规模的软件交付。


揽阁信息可提供的部分安全产品和解决方案信息

联系揽阁信息,您可以获取到更多满足全球合规性要求的信息安全产品资料,以及相关的整体解决方案的相关资料。如:


您还可以得到揽阁信息所提供的优质服务。

揽阁信息 · 值得您信赖的信息安全顾问!


相关阅读

购买咨询电话
021-54410609