序言
一直以来,公有云安全是横亘在广大用户面前的一道鸿沟。云安全(Cloud Security)是指用于控制云计算的安全性、合规性和其他使用风险的过程、机制和服务。公有云提供商们都强调安全是其最高优先级工作,动辄就发布上百页的云上安全最佳实践白皮书,举办几百几千人安全大会,发布几十甚至上百个安全服务。但与此同时,用户们对云上安全的担心一直挥之不去。在福布斯(Forbes)2019年的一份报告中,66%的 IT 从业人员认为安全是他们使用公有云服务最大的担心。Gartner 预测到2020年,至少50%的企业用户会在不知情或误操作地将一 些IAAS 存储服务、网络、应用或API直接暴露到互联网上,而到2023年,至少99%的云上安全问题都是用户的错误引起的。
正文
那到底是什么造成了这条鸿沟呢?笔者认为原因主要有三:一是用户不知道自己该为云中安全承担什么责任,二是用户不知道云中安全服务的用途和用法,三是用户不知道要为自己的应用选择哪些安全服务。只有对症下药,从明确自己的责任开始,在了解云中的安全服务后,再选择合适的安全服务,才能跨越鸿沟,开启云中安全之旅。
第一步:明晰职责 – 搞清楚你要为云中安全承担的责任
要实施成功的云安全,第一要务是分清云提供商和作为用户的你的责任。公有云中的安全性和本地数据中心中的安全性有所不同。在传统数据中心安全模型中,你要为全部的安全性负责,包括机房、物理网络、物理服务器、虚拟机、应用等等。当负载被迁移到了公有云上后,一部分安全责任由公有云提供商承担了,但企业安全团队依然需要承担部分安全责任。此时,安全模型变成了安全责任共担模型,也就是说你和公有云提供商一起来为你在他们云中的应用的安全负责。
Amazon Web Service 是全球最大公有云提供商。其安全责任共担模型(Shared Responsibility Model)明确指出,亚马逊云科技负责提供安全的基础设施和服务,而客户负责保护操作系统、平台和数据。
图1:亚马逊云科技安全责任共担模型(基础设施服务)
在亚马逊云科技安全共担模型中,亚马逊云科技负责保障云“的”安全性,这是亚马逊云科技的第一责任。以可用区(Availability Zone,AZ)为例,这是亚马逊云基础设施的一部分,亚马逊云科技负责为数百万活跃客户提供安全的可用区。亚马逊云的每个可用区由两个或以上的互相隔离的数据中心构成,数据中心之间有足够的隔离距离,每个数据中心有独立的电力供应,数据中心采用冗余高速网络互连等等。
图2:亚马逊云科技可用区设计
亚马逊云科技有一整套安全制度来保障每个数据中心的安全平稳运行。比如每个数据中心内部都采用视频监控,结合亚马逊云科技的 Kinesis Video Stream、S3 以及人工智能等服务,来对视频做实时传输、存储和分析,实时发现可能存在的问题。
图3:亚马逊云科技对其机房实时视频监控
而你,作为亚马逊云的一用户,则需为云“中”的安全性负责,这包括以下五个部分:
身份和访问控制:负责云中的身份和访问管理,包括身份认证和授权机制、单点登录(SSO)、多因子认证(MFA)、访问密钥、证书、密码等。
基础设施保护:负责对网络、虚拟机实例和容器实例等基础设施进行安全保护。在网络方面,比如使用 VPC 来创建一个私有的、安全的和可扩展的网络环境,创建网络分层,在每一层上进行安全控制,自动地进行网络检测和防护,开启网络访问日志等;在主机方面,比如使用主机安全工具来扫描虚拟机和应用的安全状态,使用代码扫描工具来发现代码中的安全漏洞,对操作系统进行自动补丁升级和加固,使用安全通道访问虚拟机,使用安全的配置工具对虚拟机进行配置等。
数据保护:负责你数据的安全,包括数据分类、加密、访问控制等,因为数据是云用户的资产,云供应商对其没有访问权限。
安全检测:负责采用各种安全服务和工具,不管是云供应商提供的还是第三方的抑或是自己开发的,检测潜在的安全风险和安全问题。
事件响应:负责在出现安全问题后做出响应,消除安全风险,恢复数据和业务。
第二步:了解工具 – 搞清楚云服务商提供了哪些安全服务
亚马逊云科技首席信息安全官史蒂芬·施密特曾经说过:“客户常常跟我们说,帮他们保持安全最好的方式,就是交给他们更智能的工具,让他们可以更容易地搞定安全。”为了帮助用户实现上述五大安全责任,到目前为止,亚马逊云科技提供超过200种身份认证、安全及合规服务。下表中列出了亚马逊云科技主要安全服务。
表1:亚马逊云科技主要安全服务
亚马逊云科技所有这些安全服务,构成了一个多层次的完整保护机制,为你在亚马逊云中的应用保驾护航。
图4:亚马逊云科技分层安全保护机制
除了安全服务外,亚马逊云科技还在 Amazon Architecture Center(亚马逊云科技架构中心)网站上提供了最佳参考架构方案、工具、培训和实验,涵盖敏捷性、安全性、可靠性、高性能和成本等多个方面。而且,在 Amazon Marketplace 中,还有几百家安全合作伙伴,在应用安全、数据保护、合规、主机安全、身份和访问控制、日志和威胁检测等提供众多工具和方案。
了解每种安全服务的用途、使用场景、工作流程乃至计费方式等非常重要。下面就深入介绍下 Security Hub和GuardDuty 这两种安全服务。
(一)Amazon GuardDuty 服务
在亚马逊云科技环境中,对网络活动和账户行为进行持续监控非常重要。启用 CloudTrail后,亚马逊云科技账户内几乎所有 API 调用活动都会记录下来,但从海量日志中发现可疑活动会非常困难。VPC 流日志服务负责记录的 VPC 内的网络活动也是如此。为了解决这些困难,亚马逊云科技发布了 Amazon GuardDuty 服务,它通过分析多个日志数据源(包括VPC流日志、Amazon CloudTrail 事件日志和 DNS 查询日志),持续监测亚马逊云科技账号、VPC 网络和负载的运行情况,使用威胁情报源和机器学习来标识亚马逊云科技环境中可疑的和未经授权的恶意活动,而且还可利用 Amazon CloudWatch 事件和 Amazon Lambda 来执行自动化的通知和修复操作。
图5:Amazon GuardDuty 产品架构
Amazon GuardDuty 会使用由亚马逊云科技安全团队负责维护和不断改进的算法来进行日志检测。主要检测类别包括非法探测、实例盗用和账号盗用等,而且还在持续增加中。
图6:不断增加中的 GuardDuty 能发现的安全风险类型数
然后,它将分析结果按照三个级别 (低、中和高) 之一呈现出来,并附有详细的证据和修复建议。
图7:Amazon GuardDuty 截图
这些结果可作为事件输入到 Amazon CloudWatch 之中,再使用 Amazon Lambda 函数来自动通知甚至修复特定类型的问题。在下图所示的例子中,GuardDuty收集日志里的数据进行分析并将结果存放在 S3 中,同时通过 CloudWatch Events 采集特定的安全事件或风险等级事件。对于中等风险,通过 Amazon SNS 服务邮件通知管理员,对于高风险则通过 Amazon Connect 结合 Amazon Lambda 电话通知管理员。
图8:基于 Amazon GuardDuty 威胁级别的自动化通知
(二)Amazon Security Hub
实现云上安全的一大挑战是可视性(Visibility)。你可能会用到多种安全工具,每种工具都会提供安全保护并产生大量数据,这使得你得每天在这些工具之间来回切换,处理数百甚至数千个安全警报。
为了解决此问题,亚马逊云科技发布了 Security Hub 服务,它可让你在一个可视化平台上就能查看亚马逊云科技账户中的所有安全警报与合规性状态。它对来自多个亚马逊云科技服务(如 Amazon GuardDuty、Amazon Inspector 和 Amazon Macie),以及亚马逊云科技合作伙伴(比如 Splunk, Qualys, Crowdstrike, Alert Logic 等)的解决方案的安全警报或检测结果进行聚合、组织和设置优先级,然后在具有可操作图形和表格的集成控制面板上对所有检测结果进行直观汇总。
图9:Amazon Security Hub 产品架构
GuardDuty 从 VPC 流日志、Amazon CloudTrail 事件日志和 DNS 日志中发现亚马逊云科技账户、VPC 网络和负载中的安全问题,Macie 则利用人工智能算法从被监控的S3存储桶中发现安全问题,Inspector 从 EC2 实例中发现操作系统和应用的安全问题。所有安全问题都汇总到 Security Hub 后,它处理数据并进行关联性分析,以确定最终检测结果的优先级,然后在集成的控制面板上将所有安全检测结果汇总起来,展示出当前的安全性与合规性状态。
图10:Amazon Security Hub 产品界面截图
类似 GuardDuty,Security Hub 也支持通过 CloudWatch Events 与 Lambda 以及 Step Functions 集成。首先你在 Security Hub 配置数据来源以及响应方式,然后安全检测结果条目会被以事件(Event)形式发送到 CloudWatch 中,CloudWatch 中的规则(Rule)被触发,然后事件信息会被推送到各种通知和事件管理或处理系统中。
图11:Amazon Security Hub 自动响应示例
第三步:合理选择 – 搞清楚要选择哪些安全服务为你所用
要搞清楚需为你在亚马逊云科技上的应用选择哪些安全服务,还是得从你所选择的云功能服务入手。下图显示了针对一个典型三层 Web 应用部署架构所选择的主要安全服务。
图12:一典型 Web 应用部署架构中用到的安全服务
默认启用 Amazon IAM、CloudTrail、Config、VPC Flow Logs、VPC DNS Logs 等服务或功能。IAM 负责创建子账户以及分配对账户和资源的访问权限;CloudTrail 会记录你亚马逊云科技账号内几乎所有 API 调用;Config 会记录你账户内所有的配置变化;VPC Flow Logs 则会记录 VPC 内的所有网络流日志;VPC DNS Logs 会记录 VPC 内所有 DNS 查询日志。所有这些日志都是进行后续安全检测的主要数据来源。
Amazon EC2 是一基础设施类服务,提供虚拟机服务。你需将 EC2 实例创建在 VPC 中以实现网络隔离,利用安全组控制网络访问,使用 IAM 控制用户、应用或服务对它的访问权限,使用 SSH 或 Amazon Systems Manager Session Manager 安全地远程访问它,使用 Amazon Systems Manager Run Command 对 EC2 实例进行配置,使用 Amazon Inspector 对EC2实例和应用进行安全检查,手工或使用 Amazon Systems Manager Patch Manager 自动地进行补丁升级和更新,使用EBS云盘加密功能来保护其静态数据安全等,使用 Amazon EC2 Auto Scaling 来提升其高可用性等。
Amazon S3是一托管类服务,提供对象存储服务。亚马逊云科技负责保证其11个9的数据可靠性和4个9的服务可用性,以及操作系统及软件补丁升级、防火墙配置及灾难恢复等。你可使用 SSL/TLS 访问它,采用客户端数据加密,启用服务器端数据加密,按需配置访问权限,启用 MFA Delete 功能以防止存储桶误删,开启访问日志和监控,启用对象版本,对特定对象加锁以防止对象误删,使用 CCR(跨区域访问)来满足某些合规要求;还可启用 Amazon Macie 服务,它会使用人工智能算法对 S3 存储桶中的数据进行分析,发现潜在的安全风险,保护敏感数据。
Amazon RDS 是一托管类服务,提供关系数据库服务。它向用户提供多个安全功能,包括支持在 VPC 中创建实例、DB 安全组、权限控制、SSL 连接、实例和快照加密、自动备份和快照、多可用区部署、操作系统和数据库软件自动补丁升级、日志、监控及事件通知等,可根据需要使用这些功能。
Amazon ElastiCache 是一托管服务,提供内存型缓存服务。它也提供了一系列安全功能,包括支持在VPC中创建实例、支持通过 Cache 安全组控制网络访问权限、IAM 策略、SSL 连接、数据加密、多可用区部署、操作系统和软件自动补丁升级、故障探测和恢复、支持多实例、备份和恢复、自动快照、日志、监控及事件通知等。
Amazon Elastic Load Balancing是一基础设施类型服务,负责接收客户端请求并将其分发给后端 EC2 实例。它需被创建在VPC中,建议将其分布在多个可用区中以保障可靠性,使用安全(HTTPS/TLS)监听器以保障客户端和其之间的通信安全,配置安全组以只接收特定客户端的请求,使用 Amazon Certificate Manager 来管理其服务器证书,选择合适的负载均衡器安全策略和监听器安全策略等。
在网络边界,Amazon Shield 基础版或高级版可以为 ELB、CloudFront 发布、Route 53 托管区域等提供基础性和高级 DDoS 防护;启用 Amazon WAF,用于监控和控制对 Web 应用的非法访问;需要的话还可以启用 Amazon Firewall Manager 服务,用于跨账户统一管理Amazon WAF 访问规则、Amazon Shield Advanced 防护规则和 VPC 安全组等安全规则。
启用 GuardDuty,将数据源配置为 Macie、VPC Flow Logs 和 DNS Logs,它会负责对 VPC 内的网络活动和账户行为进行持续监控;再启用 Security Hub 来作为你的亚马逊云上统一安全与合规中心,将其数据源配置为 GuardDuty、Macie 和 Inspector,它会让你在一个控制面板上就能查看你亚马逊云科技账户中的所有安全警报与合规性状态。
还可以启用 Trusted Advisor 服务,它可根据亚马逊云科技部署架构最佳实践,分析你的应用部署架构,从成本、性能、安全、容错、容量等方面给出评估结果和改进建议,指导你进一步完善这个部署架构。
小结
需要指出的是,完整的云上安全管理流程包括识别(Identity)、保护(Protect)、检测(Detect)、响应(Respond)、恢复(Recover)等五大环节。因此,文中介绍的这三步 - 明晰责任、了解工具、合理选择,只是云上安全旅程的前几步而已,但走好这几步,你就能顺利开启你的云上安全之旅了。
图13:亚马逊云科技完整安全管理流程
现在就出发,开启你的云上安全之旅吧!
本篇作者
刘世民
云计算技术专家,曾就职于华为、IBM、海航等公司,专注于云计算。曾在海航集团易航科技担任云服务事业群总经理一职,负责 IDC、云平台、系统运维、信息安全以及用户服务等业务。维护有“世民谈云计算”技术博客和微信公众号。《OpenShift云原生架构原理与实践》作者之一、《Ceph Cookbook中文版》《精通OpenStack》、《机器学习即服务:将Python机器学习创意快速转变为云端Web应用程序》译者之一。
阅读原文:https://dev.amazoncloud.cn/column/article/63be21077ddc95285eaccd3c