第 6 章 网络安全 网络安全
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
无论是在传统环境还是 Cloud 环境中,网络控制都是整体安全的重要组成部分,因为它们排除了整个主机或网络作为入口点的可能性。如果你根本无法与某个组件对话,就很难入侵它。有时,网络控制就像军事基地周围的栅栏,让人难以在不被发现的情况下接近基地。在其他时候,它们就像守门员,在所有其他防御措施都失效后将球拦截下来。
在当今时代,大多数公司都无法摆脱与互联网的联系。网络是现代应用的基础,因此也几乎不可能严格控制每一次通信。这意味着网络控制在很多情况下都是辅助控制,是为了帮助减轻其他问题的影响。如果其他一切都配置得绝对完美,也就是说,如果你的所有系统都打上了完美的漏洞补丁,所有不必要的服务都被关闭,所有服务都对任何用户或其他服务进行了完美的验证和授权,那么你就可以放心地不使用任何网络控制。然而,我们并不生活在一个完美的世界里,所以利用纵深防御原则,在我们已经讨论过的控制措施之外再增加一层网络控制措施,确实非常重要。
与传统 IT 的区别
尽管有 "外围已死 "的呼声,但多年来,管理员在很大程度上依赖于网络外围的安全。网络安全有时是系统管理员依赖的唯一安全保障。对于任何环境,无论是传统环境还是云环境,这都不是一个好的模式。 幸运的是,对 "零信任 "的新关注让更多人认识到,防火墙并不总能拯救你。
在内部环境中,周界通常很容易定义。在最简单的情况下,在非军事区(DMZ;也称周边网络)周围画一条虚线(信任区),在内部网络周围画另一条虚线,并仔细限制进入 DMZ 的内容和从 DMZ 进入内部网络的内容(更多内容请参见"DMZ")。
在 Cloud 环境中,决定什么在您的边界内,以及边界的实施,往往与在内部环境中截然不同。信任边界并不那么明显。如果您使用的是数据库即服务,那么它是在您的边界之内还是之外?如果出于灾难恢复和延迟的原因,您在世界各地都有部署,那么这些部署是在同一边界内还是在不同的边界外? 此外,当您迁移到大多数 Cloud 环境时,创建这些周界不再需要高昂的成本,因此您有能力为每个应用程序建立独立的网段,并快速轻松地使用网络应用防火墙等其他服务。
云环境中的网络控制最令人困惑的是,您可以使用种类繁多的交付模式来构建应用程序。每种交付模式的合理性都不同。您需要考虑以下模式的合理网络安全模式:
- IaaS 环境(如裸机和虚拟机)
-
这些环境与传统环境最为接近,但它们通常可以受益于按应用程序细分,而这在大多数内部部署环境中是不可行的。
- 基于容器的协调环境(如 Docker 和 Kubernetes)
-
如果将应用程序分解成微服务,就可以在单个应用程序内部实现更细粒度的网络控制。
- 应用 PaaS 环境(如 Cloud Foundry、Elastic Beanstalk 和 Heroku)
-
这些系统提供的网络控制数量各不相同。有些可能允许按组件隔离,有些可能根本不提供可配置的防火墙功能,有些可能允许从 IaaS 向下使用防火墙功能。
- 平台 PaaS 环境(如数据库)
-
这些系统通常默认向互联网开放,但也可能提供网络入口控制选项。
- 无服务器或功能即服务环境(例如 AWS Lambda、OpenWhisk、Azure Functions 和 Google Cloud Functions)
-
这些系统在共享环境中运行,可能不提供网络控制,或者只在前端提供网络控制。
- SaaS 环境
-
虽然有些 SaaS 产品提供简单的网络控制(如只能通过 ...