诸子云 | 活动:10.23成都“数字化创新”专题研讨会
伴随云计算水平的持续提升,数据存储、应用开发和工作负载方式,都在发生变化,但层出不穷的安全、开发管理等问题也备受企业重视。面对安全威胁,企业应该如何快速构建全方位的防护体系?面对开发模式的革新,企业如何打造更为敏捷的开发管理流程?
基于此,10月23日,诸子云“数字化创新”专题研讨会在成都希尔顿酒店举行。活动以“兼顾高效与安全,构建数字化应用管理体系”为主题,从技术、实践等多个维度剖析如何有效应对“威胁检测与自动响应”“敏捷开发”等业务挑战,并结合DevOps云上实践案例进行深入分析,共同探寻数字化时代,企业应用云端安全、高效发展之道。
本次研讨会由诸子云西南分会联合亚马逊云科技共同举办,西南分会会长向阳担任主持,简单的开场白之后,适时将话筒交给了在场嘉宾。
活动有幸邀请同程旅行、锦程消费金融、唯品富邦、四川银行、哈曼智联科技、成都云盯科技有限公司、成都数字天空科技有限公司、乐狗、四川华新现代职业学院、路行通、西门子、阿哇龙、福建网龙、成都佳华物链云科技有限公司、成都余香科技股份有限公司、旺小宝、云丁科技等企业的安全专家参与。
云丁科技安全总监向阳、亚马逊云科技解决方案架构师许昌月、亚马逊云科技合作伙伴解决方案架构师陈昊、神州泰岳云事业部技术总监莫喆四位专家进行了分享。
数字化应用的安全挑战与应对
向阳 云丁科技安全总监
数字化应用当前面临的安全难点主要在于形势复杂、安全及合规要求多;安全意识薄弱,企业未建立有效组织流程及体系,与业务联系弱;内外部安全事件增加,木马攻击、网络攻击、数据窃取及泄露愈发频繁。
企业需要思考的是如何解决数字化应用中所产生的风险,在我看来,首先需要关注这几个环节:
• 具有相对完整的管理组织及体系流程。我们需要从顶层设计中体现安全的价值,并通过设计相应的组织架构和体系流程,让安全评价工作得以开展;
• 构建安全开发流程。这是保证我们把相应制度、策略落到实际工作的前提;
• 建立安全防护架构。通过安全防护架构,可以帮助我们在相应的产品中进行技术防护;
• 持续开展风险评估。在实现安全架构、流程和防护以后,如何有效提升安全能力,优化安全运营,就需要我们持续开展风险评估。
那么在应对数字化应用的安全挑战之前,我们还需要落实好几个先决条件:
• 政策法规。根据业务开展的区域要求、行业要求,确认自己所需要满足的标准和法规,明确主管部门;
• 资源配置。根据业务形态和监管需求,在1%-8%的区间内配置安全人员,协调企业规模、研发及安全团队的资源;
• 主要风险。在进行安全威胁建模的时候,我们要根据企业所属行业、具体业务场景来盘点主要风险;
• 组织结构。不同的组织结构决定了我们应该如何推行安全策略,进行组织架构设计。
我认为安全的价值需要更多地置于业务当中,因为基于风险与威胁的价值主张效果是非常有限的。因此我们在建立之架构和体系之前,想清楚安全能够给业务带来什么价值,依托于业务之上,和业务共同成就。
组织架构的设计分为决策层、管理层和执行层。决策层需要设立决策委员会,由企业高管、安全负责人和法务共同参与制定安全的顶层设计、策略和规章制度;管理层也是业务决策层,需要匹配各个业务线的工作;而技术人员、安全评估和业务整改则在执行层进行。通过组织架构的设计,可以有效地帮助我们在企业内开展相应的安全工作。
整个流程主要依托业务开发的流程,将相应的安全工作置入在业务开发流程中,主要包括需求设计、程序开发、测试发布、产品运营。
那么在安全建设具有一定流程之后,如何进一步提升安全建设的效果,就需要做好安全运营:
• 建立安全评估体系。能够帮助我们量化安全的价值,持续优化安全工作;
• 工作的阶段性变化。可以参考业内成熟度模型的应用,在安全工作的不同阶段制定不同的目标;
• 安全业务支撑。我们需要在企业中统一安全的术语及理解,支撑业务,将安全能力更好地赋予到产品和业务当中;
• 第三方合作。建立生态,借助第三方的价值,参加相应的安全标准组织做安全输出,参与最佳实践的分享讨论,提升能力。
总结来说,我们首先需要盘点企业及业务的安全风险,建立安全的价值;其次建立自上而下的安全组织架构及安全管理体系;再者使用安全开发流程保证产品安全开发;最后通过持续运营持续业务提升安全能力。
威胁检测和自动响应
许昌月 亚马逊云科技解决方案架构师
企业为什么需要威胁检测,能够给我们带来哪些价值,我认为主要集中在这几个方面:
• 预防性控制并非万灵药;
• 发现即反应;
• 最小特权很难实现,也更难维护;
• 坏人总是在寻找新的方法来规避控制;
• 监管机构和审计机构需要证据;
• 简化调试和维护性能;
• 提高开发人员的生产力并鼓励创新。
Amazon GuardDuty目前提供云上托管的威胁检测服务,通过智能威胁检测和持续监控可以保护您用户云帐户和工作负载。
它是通过获取云上数据源包,将网络、DNS、API等日志汇聚起来进行分析。对于已知风险,亚马逊云科技可以通过自身和第三方合作商具有的威胁情报来进行发现;对于未知异常,可以通过人工智能和日志来识别,并将威胁分为高中低三个等级,用自动化地方式触发告警。
对威胁进行调查和分析,亚马逊云科技提供了Amazon Detective工具。
它可以自动从用户的云资源收集日志数据,并使用机器学习、统计分析和图理论来构建一组链接数据,让安全调查变得更快、更有效。借助该服务,安全团队能够轻松地调查并快速找到发现的安全问题或可疑活动根本原因。
Amazon Detective可以分析来自多个数据源的数万亿事件,如 VPC流日志、Amazon CloudTrail、Amazon GuardDuty等,并自动创建一个统一的、交互式的资源、用户以及他们之间的交互视图。有了这个统一的视图,用户可以在一个地方可视化所有的细节和上下文,以确定发现结果的潜在原因,深入到相关的历史活动中,并快速确定根本原因。
这个过程中自动化操作非常重要,但目前相关的安全产品往往只具备警报和通知,并没有很好地实现自动化操作,主要原因在于业务场景多,很难做到通用的解决方案。Amazon Security Hub通过在云上提供API的方式,可以让用户根据自己的实际情况来实施安全自动化响应。
Amazon Security Hub可以全面查看账户中的高优先级安全警报与合规性状态。汇聚来自多个服务(如 Amazon GuardDuty、Amazon Inspector 和 Amazon Macie), 以及来自亚马逊云科技合作伙伴解决方案的安全警报或检测结果,设置优先级。图表展示。还可以使用自动合规性检查(基于您的组织遵守的最佳实践和行业标准),持续监控用户的环境。
通过150+全自动、近实时的安全检查,Amazon Security Hub可以提供最佳实践建议改进,实现自动安全合规性检查。并且对于用户自己的业务场景,可以支持相应的API方式调用来执行自定义的操作。
总的来说,从威胁检测到分析调查,再到自动化响应,我们需要在安全层面做集中部署,从大局观来看企业安全当前的环境;通过预演的方式实现自动化响应并真正起到效果,持续迭代;最后,拥抱自动化,并尽可能多地利用云上已有的工具来执行安全工作。
DevOps云上的最佳实践与案例分析
陈昊 亚马逊云科技合作伙伴解决方案架构师
当前的最佳实践和案例已经证明,采用现代软件实践的团队更加敏捷,绩效更高,全自动化的流程也能够带来敏捷性提升。现代化软件实践过程的核心我们需要遵循“CALMS”5个维度,分别是文化、自动化、精益、度量和协作共享。
为了实现软件发布过程的自动化,亚马逊云科技基于CALMS维度,开发了Pipeline工具,可以全自动化管理从代码发布到生产环境部署,帮助开发流程更快、更安全、更加的自动化&标准化,以及可视化。
通过这个平台,亚马逊电商实现了每年5000万次部署,将以周为单位的变更发布缩短至小时级,甚至某些模块实现了分钟级的变更迭代。但是,这个过程虽然开发人员达到了非常满意的程度,但用户并不一定非常高兴。
亚马逊的企业文化是用户至上,所以为什么要花费这么大的力气来做一个用户并不一定喜欢功能?
主要原因在于复杂的企业现状。因为亚马逊急需要维持现有的业务发展,同时要兼具创新,这个过程就意味着大量精力投入的分散。面对这个问题,亚马逊提出了转型。
基于“用户至上”的理念和最宏大的目标,亚马逊采用了倒推的方法,也就是逆向工作法,通过工具来做快速迭代,让开发人员专注业务,让每个人都知道业务目标究竟是什么,最后从软件设计角度,利用现代开发软件、功能和产品来实现应用解耦。
通过不断的经验积累、总结和迭代,亚马逊将自己的方法和实践形成了设计模式,并把模式和工具变成亚马逊云科技上面向开发者的工具。因为亚马逊云科技敏捷开发的目标是让用户更有价值,所以通过云平台建设和云服务发布迭代,一来可以让所有开发者使用亚马逊经验积累的工具,二来使用者也会在开发过程中产生新的想法,促使亚马逊流程功能的升级迭代,相辅相成。
那么,敏捷开发到底应该怎么做?从哪里入手?亚马逊总结了自己的工作流程。
首先,通过云平台构建所有开发人员都可以使用的环境,并且利用云的优势来实现弹性化和安全管控,保障代码安全。开发人员不需要高配置开发机,就能够直接在云上使用最熟悉的环境进行工作,对资源调配管理也可以实现很好的节约。
其次,亚马逊把代码审核变成规范,并通过工具进行管理。要求所有提交过程都必须有人审核,通过不同规则的设计,把代码审核变成一项强制性措施。但人为审核难免疏漏,所以亚马逊引入了机器学习的概念,帮助审核人员进行性能分析、静态代码检测等工作。
最后,CI/CD作为敏捷开发的重要环节,亚马逊通过Pipeline做部署和发布,通过CodeCommit做统一管理,通过CodeBuild做自动化编译,通过引入第三方测试工具完成自动化测试,通过CodeDeploy完成代码部署,最终完成整个CI/CD的过程,真正实现每年5000万次的部署。
为什么要将基础架构和软件开发连接起来,是因为如果将基础架构以代码的形式管理起来,和软件功能挂钩,那么每一次迭代发布也就相当于基础架构的同步变更。这样一来,通过版本管理的方式就可以实现软件环境的迭代,对于规模化部署也能够起到很好的帮助。
对于DevOps,亚马逊云科技研发团队总结了这样几点经验:
• 解耦(两个披萨团队和微服务)、自动化一切、自服务平台、基础设施即代码
• 持续交付从业务出发,打破团队壁垒,构建高效敏捷交付和数据反馈闭环
• 工程实践、现代应用架构非常重要
• 面向容器平台 CI/CD 的GitOps
• 将 Amazon 内部的工具演化成开发者云服务
• 安全是 Top Zero 的工作
• 智能化是未来的发展趋势
最终形成三个最重要的观点:做好团队建设和管理,比如两个披萨的理念;构架最佳实践、流程和管理规范;引入一系列工具和服务变成真正可以落地的实践。
我爱我家的DevOps实践
莫喆 神州泰岳云事业部技术总监
DevOps当前最主流的方式是基于容器化云原生,但很多企业所面临最难的问题并不是容器,而是业务系统自身微服务化的改造。因此我从一个传统业务架构为例,来给大家分享一下如何进行DevOps的改造。
神州泰岳认为DevOps的整个落地其实是三件事:基础设施代码化、持续集成和交付(CI/CD)、协同工作。我们经常看到很多客户为了做DevOps引入了无数的工具,但却陷入到了DevOps的工具集里,造成了巨大的挑战。
我爱我家所提出的业务诉求主要有两点:
能够快速的搭建完整的环境。包括准备各类测试环境、异地灾备恢复 、新业务系统上线(不同城市);
能够适应业务系统变化的需要 。包括新的微服务模块、新版本发布更新。
实际上我爱我家在此之前已经进行了相应的部署,所以我们基本沿用了客户原有的Jenkins,在结合SNS+Lambda+CloudFormation的方式,帮助客户做了一个非常简单的界面。客户只需要定义环境,设计环境变量,就能够快速地搭建完整的生产环境。
这个过程基本不需要人为干预,已经基本实现完成了自动化,并且几乎没有成本,不用担心ASG的弹性带来的环境变化。更新的时候只需要更新环境配置文件,上传到S3,整个环境就会在对应的实例上生成。
亚马逊云科技有一个非常好的服务叫做Amazon Systems Manager,相当于一个简单的堡垒机加上CMDB,并且完全免费。使用Amazon Systems Manager可以在统一的用户界面中查看和控制亚马逊云科技上的基础设施,在亚马逊云科技资源上自动执行操作任务。
加入我们要对生产环境中所有的应用服务器进行服务器账号加固或者进行密码轮替,通过Amazon Systems Manager,我们只需要制定一个文件脚本,就可以再每一个实例上下发脚本并执行,并且整个过程都可以记录下来。同时Amazon Systems Manager也有审计管理的功能,不需要付任何费用,就可以连接实例。
因为整个活动是自动化的,所以我们需要用到很多与服务器和数据相关的配置信息。亚马逊云科技上每一个实例都有一份完整的元数据,有非常详细的信息,用户只需要写一个Shell脚本就可以完全实现自动化。
Amazon CloudWatch是监控体系当中最重要的工具,它的核心是可以触发弹性伸缩,这样一来就可以通过策略自动增加/减少节点;如果需要在同一个配置文件里发送告警,那么所有的初始化脚本都是可以直接载入的,系统一旦建立,监控、服务都可以直接就绪。
日志体系可以帮用户收集所有的日志,另外可以收集所有在亚马逊云科技在API层面的调用,通过Agent采集,直接在初始化脚本中实现。
除了镜像以外,亚马逊云科技还提供了UserData的功能,在实例启动的时候写一个脚本,脚本完成实例的初始化,我们就可以在实例镜像里面通过cloud-init以服务方式执行,或者通过日志输查看,对安全也有保障。
总的来说,如果想要在亚马逊云科技上做一个比较好的DevOps的过程,一定要更好地使用它提供的服务和工具。
• 基础设施就绪。
AmazonCloudFormation/Amazon Lambda/S3/SNS可以帮助大家快速搭建完整生产环境、测试环境;
• 服务安装部署/更新。
通过镜像、UserData以及脚本的结合,我们可以完成服务的安装和部署;
• 弹性扩展。
这部分方面我们可以用 Amazon Autoscaling/Amazon CloudWatch快速实现;
• 监控、日志和告警。
我非常推荐Amazon CloudWatch/SNS/Amazon Lambda,因为基本上不需要部署额外的服务;
• 日常运维。Amazon Systems Manager。
这样一来我们就能把CI/CD整个过程串起来,并且最关键一点,这些都是以服务方式提供的,不需要用户自己搭任何服务器,极大地降低了运维人员的成本,尤其是学习成本,从而帮助大家迅速在云环境里构建轻量级的DevOps工具集。
现场花絮
专家演讲资料已上传知识星球,扫码获取完整内容