基于PaaS的SaaS应用开发:风险降低五步法SaaS
对于希望按需快速部署、监控和扩展网络应用的云计算架构师和开发人员来说,AWS的Elastic Beanstalk (测试版)是一个非常有用的工具。他们所要做的就是上传代码并让Elastic Beanstalk自动处理部署任务——从容量配置、负载平衡和自动缩放到应用运行情况监控。与此同时,他们可以保留对控制应用的AWS资源的完全控制。他们甚至可以在任意时间使用Elastic Beanstalk控制台来访问底层资源。
也就是说,在平台即服务(PaaS)上进行网络应用开发是存在着一定风险漏洞的。具体的威胁风险包括黑客、软件设计缺陷或者不良的测试方法。这些风险有可能会利用漏洞来影响应用或大幅度降低应用的性能。
通过降低PaaS上SaaS应用开发的风险,云计算架构师和开发人员将会更加深刻地了解他们应用所面对的显著威胁。然后,只需简单地实施具有成本效益的保障措施,这些深刻了解就将有助于实现较高的投资回报。通过减少漏洞被利用的频率,它们还有助于减少灾难恢复的成本。
以下是开始减少你的风险的五大步骤:
• 资产识别
• 漏洞与威胁识别
• 风险评估
• 应用相关保障措施修补漏洞
• 实施风险缓解策略
第一步 资产识别
首先识别与在PaaS上软件即服务(SaaS)应用开发相关的资产,然后为每一个资产分配一个数值。确定所有资产所属的类别。下面是一些例子:
1.用户:SaaS开发人员和SaaS用户都应归于这一类别。每个用户组的数值都应当基于开发和测试应用时所用去的平均工时数。
2.资源:这是指被PaaS开发人员使用以运行和存储SaaS应用的资源。例如,Elastic Beanstalk使用了亚马逊弹性云计算(EC2)、亚马逊简单存储服务、亚马逊简单通知服务、亚马逊CloudWatch、弹性负载平衡以及自动缩放等功能。其数值应基于这些资源的所用即所付的支出。Elastic Beanstalk是免费的。
3.安全性:这就意味着加密机制、防火墙以及行业安全标准,其中包括了SecaaS(安全即服务)。其数值是基于用于实施安全措施的工时。
4.文档:培训手册、管理准则、安全标准、物理标准、应急计划、灾难恢复计划以及服务等级协议(SLA)等也只是文档中的若干示例而已。其数值是基于用于发布文档所需的媒介类型的——如打印、在线或数字媒体(CD)等。
5.软件:操作系统;漏洞测试工具;办公工具(文档、电子表格、演示文稿);日志分析工具;以及编程语言(Java、 .NET、 PHP脚本程序语言、Node.js 编程语言、Python和Ruby) 都应被视为软件。其数值应基于软件的采购价格或用于在PaaS上进行SaaS应用开发所需的所用即所付支出。
第二步 漏洞与威胁识别
黑客并不是唯一会利用PaaS漏洞的威胁来源。以下是威胁来源的其他一些示例:
• 软件设计缺陷可能会让恶意SQL注入。
• 不正确的访问控制配置可能会导致应用正在处理的存储敏感数据被盗。
• 不正确的防火墙配置可能导致意外的PaaS停用。
• 由于云计算的资源池和弹性特性而出现的数据恢复脆弱性。这意味着分配给一位用户的资源有可能会被意外地重现分配给另一位不同的用户。这样,也就无法总是保证能够为前一位用户恢复数据。
第三步 风险评估
用户希望得到保证,即PaaS将持续地保持可用性,同时他们获得更多流量资源的需求能够得到满足。对于不可用性风险的评估是一种定量的方法。一些示例包括:
• PaaS在一年中由于基础设施即服务(IaaS)停用而变得不可用的估计频率
• 由于不正确防火墙配置而受到PaaS攻击的估计频率
• 不能满足SLA中承诺性能的估计频率
• 支持PaaS运行的IaaS的网络路由器和交换机发生不成功故障的估计频率。
第四步 应用相关保障措施修补漏洞
执行成本效益保障措施是降低在PaaS上进行SaaS应用开发风险的一种方法。下面是一些例子:
• 应用已被正确设计,且没有软件缺陷。PaaS开发人员和云计算架构师拥有了足够的技能和经验在PaaS上开发设计良好的应用。
• 用户已根据他们不同的角色和/或数据敏感度对访问控制配置进行了正确的设置。日志记录选项已被激活。
• 防火墙设置已被正确设置。入侵检测系统和负载平衡器均已到位。一个PaaS故障机制策略已得到增强。PaaS的输入输出流量数据已被加密。
第五步 实施风险缓解策略
资产识别、漏洞与威胁识别、风险评估以及应用相关保障措施修补漏洞的具体实施过程会随着具体组织的实际情况不同而有所差异。为了对整个过程实施标准化并降低相关成本,应实施风险缓解策略。
这个策略应包括AWS资源、编程语言以及在PaaS上用于开发、运行以及存储应用的服务器(在前文所述的情况中,就是指Elastic Beanstalk),而且因重大技术变革、用户需求变更以及组织需求变更需对该策略进行周期性审查和更新。
总之,拥有一个良好的团队遵循上述五个步骤就能够降低在PaaS上进行SaaS软件开发的风险。一个高水平的PaaS开发团队将有助于进行提前规划和确定具有成本效益风险缓解过程中应当包含的内容。