第 1 章 云微服务简介 云微服务简介
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
云计算和微服务已成为软件架构领域的主旋律。微服务增加了这个时代的复杂性,在这个时代,安全攻击太常见了,它们提高了每个组织中安全从业人员的重要性。
这个故事(我第一次是在YouTube 上听到的)可能对你们中的许多人来说似曾相识。一家快节奏的公司正在构建一个基于微服务的应用程序,而你是安全团队的一员。你可能有利益相关者,如首席执行官或产品经理,他们希望你的产品能及时推出以获得市场份额。你所在公司的开发人员正竭尽全力在截止日期前完成工作,更快地交付代码。你是在流程的最后阶段加入的,你的任务是确保最终产品的安全性。这应该立即引起你的警觉。如果产品是由你(安全团队)独立开发的,那么你将是唯一阻碍产品为公司增值的人。根据我的经验,在许多功能失调的公司中,开发团队、产品经理和组织中的其他利益相关者都将安全专业人员视为反对者。
肤浅的安全措施的问题在于它们会干扰增值活动。糟糕的安全措施会给开发人员带来挫败感,这是众所周知的。这通常是由于设计不当和实施不力造成的,而这两种情况在业内都很普遍。因此,安全政策有时会与 "公司官僚主义 "联系在一起,根据我的经验,这导致了会议室里一些不愉快的对话。这迫使许多开发人员偷偷绕过安全措施,以加快开发速度。更重要的是,由于很多安全措施都是在云计算或微服务时代之前制定的,因此它们未能纳入新软件设计和技术为您带来的一些好处。
显然,一定有更好的办法。在本章中,我将向大家展示如何在微服务设计的架构阶段就将安全性纳入其中,然后使用 AWS 提供的一些工具来帮助创建既简单、安全又能快速开发的系统。首先,我将谈谈安全系统中与更好的安全结果相关的一些理想特性。然后,我将解释微服务如何帮助您创建具有这些理想特性的系统。最后,我将介绍 AWS 如何帮助您设计这些微服务并扩展它们以构建安全系统。
云信息安全基础知识
在介绍云安全的基本原理之前,我们先来定义一些基本的信息安全术语,因为许多术语被交替使用,有时会造成混淆:
- 脆弱性
- 漏洞是系统中的任何缺陷,会降低系统的安全性。漏洞可能是软件中任何可以被利用的东西。这也可能是由于您的系统使用了旧版本的操作系统或可能被利用的程序库。
- 威胁
- 存在漏洞并不意味着有人会利用它。事实上,隐藏的漏洞可能继续存在于每个应用程序中,有时甚至存在数年之久,如Heartbleed 漏洞。但是,一旦漏洞被利用,就会被视为潜在威胁。如果这个漏洞被利用,就可以说威胁已经实现。例如,丢失家里的钥匙就是一个漏洞。假设小偷找到了这把钥匙,这就是潜在威胁。如果小偷真的找到了这把钥匙,就是实现了这一威胁。已实现的威胁会对企业的财务、声誉或运营产生影响。
- 恶意行为者/威胁行为者/威胁代理
- 威胁行为者(或威胁代理)是指利用漏洞造成威胁的任何人。
- 责任
- 在安全方面,责任参数决定了由谁负责确保潜在威胁永远不会成为现实。这一责任可以由员工或自动化系统承担,也可以由第三方产品或服务提供商承担。例如,在银行(分行)中,防止实体盗窃的责任由保安公司承担。
- 风险
- 风险是一种衡量标准,用于评估威胁实现的概率,这种威胁会导致某种损失。这种损失可能是经济损失、名誉损失或运营损失。应用程序的总体风险是其可能面临的所有威胁的概率加权总和。任何安全设计的最终目标都是降低总体风险。
- 控制/对策
- 控制或应对措施是指任何可能导致降低总体风险(或风险指定的潜在威胁的负面影响)的活动。控制措施通常针对特定威胁,并有明确界定的范围。控制措施也可能是 ...