AWS 云上安全最佳实践
2020 已接近尾声,在当下快速发展的互联网潮流中,云计算释放无限能力,助力企业数字化转型,为企业业务创新带来新的契机,但是企业上云之后,传统安全边界变得更加模糊,核心业务在云端,使得数据可视化和安全风险洞察力都大打折扣,这给企业业务转型的可持续发展埋下了隐患。如何才能安全无忧地畅享云计算带来的红利,为应用构建更安全可靠的防护屏障呢?本文就 AWS 云上安全话题进行探讨,从安全模型到最佳实践,从安全架构规划到系统内部加固,对企业上云的安全部署提供系统化的全景建议,让您更直观地了解云上安全问题,从而防患未然,构筑云上安全堡垒。
一 云安全概述
1.1 云计算中的机遇与挑战
当云计算重构 IT 产业的同时,也赋予了企业崭新的增长机遇。通过充分利用云计算的能力,企业可以释放更多精力专注于自己的业务。云计算极大地降低了企业的数字化转型成本,释放更多效能进行业务创新,云计算为企业业务创新带来无限可能。但是当人们在享受使用云计算带来的便利的同时,云上安全问题也不容忽视,CC*、DDoS[DDoS]、、病毒、蠕虫...,用户的业务应用就像在黑暗森林中的行者,四周潜伏着看不见的野兽恶魔,稍有不慎便被恶意*趁虚而入,给企业带来极大的损失。
1.2 三问云上安全性
云计算带来了机遇与挑战,那么对于挑战,我们该如何看待?
云平台安全
当企业接入云端,如何判断云平台的安全能力?合规性是一个重要考量因素,此外建议企业还可以了解云平台是否有关于身份与访问、网络安全、数据保护、应用安全、可视性与智能相关的安全策略,全面客观地评判云平台安全实力。
隔离防护
云平台为多租户模式,租户方应该采取哪些措施或服务来达到安全的目的?该借助哪些服务来达到等级保护的要求?
安全流程规范
尽管企业已经对云端安全做了详尽周密的部署,但是仍不免遭遇安全*。一旦发生安全风险,云平台是否有一系列规范的安全响应流程来帮助企业抵御*,降低安全风险?
带着上面的问题,下文将从安全分类、安全模型、云上安全最佳实践等方面,对云上安全进行详细分析。
二 云上安全分类
对于云计算安全带来的挑战,云上安全问题大体可分为以下四类:
物理和基础架构安全:包括云计算环境下数据中心内服务器、交换机等软硬件设备自身安全、数据中心架构设计层面的安全;
应用安全:在云计算环境下的业务相关应用系统的安全管理,包括应用的设计、开发、发布、配置和使用等方面的安全;
访问控制管理:云计算环境中对资源和数据的访问权限管理,包括用户管理、访问权限管理、身份认证等方面;
数据安全:指客户在云计算环境中的业务数据自身的安全,包括收集与识别、分类与分级、访问权限与加密等方面。
将云上安全问题清晰归类后,企业就可以针对自身安全问题有的放矢地进行优化完善。在此将详细阐述 AWS 在云端的前沿技术与产品解决方案,看 AWS 如何为企业转型赋能,帮助企业从容上云,为应用构建安全城堡。
三 安全模型
AWS 责任共担模型强调安全性和合规性是 AWS 和客户的共同责任,AWS 提供基础设施并保证其安全,用户则负责维护自己运行其上的应用安全。在这里不少企业用户会存在认知误区,认为只要云平台基础设施安全就足够了,但事实上企业需要对云端应用有更深入的安全掌控。
从企业角度而言,用户需要确保应用的安全性,及利用云计算基础设施的安全配置,进行云上安全加固,例如及时更新操作系统的安全补丁、云产品的安全策略配置。AWS 的安全模型将安全下放到客户侧,更具有灵活性和可控性,有助于用户在 AWS 和内部环境中掌控安全,获得最大限度的保护。
在 AWS 的责任共担模型中,人们可以更直观地看到 AWS 和企业客户的责任划分,其中 AWS 负责全球基础设施的安全及合规,客户完全拥有和控制自己的数据,并可以根据自己的业务选择合适的云产品,配置更高安全策略从而提升业务安全。通过这个模型,在 AWS 的强大云平台上,企业拥有更灵活的安全产品搭配,对应用有更强的安全掌控能力,双方共同构筑了云上安全堡垒。
3.1 云安全责任
在了解了云上安全模型后,我将对 AWS 安全责任和客户安全责任做更详细的阐述,并通过案例讲解,帮助大家更深入地了解责任共担模型。
3.1.1 基础设施安全
在基础设施安全方面,AWS 负责保护提供的所有服务的全球基础设施的安全。
在高可用方面:AWS 在全球多区域内都部署基础资源,在同一个区域内的不同可用区也部署了基础资源。这样分布式的资源部署,配合故障切换,能够最大程度降低单可用区或单区域故障所带来的危害性,为基础设施的高可用性提供了良好的保障。
在访问控制方面:AWS 全球数据中心专业的安保人员利用视频监控、***检测系统和其他电子方式严格控制各数据中心入口的物理访问,确保数据中心人员访问的合规性。
在物理安全方面:AWS 全球数据中心均配备自动化火灾探测和扑救设备,以及全年无中断冗余设计的电源系统,这些防护设备及高可用设计方案,能够大大提升数据中心健壮性。
在事件响应方面:在遇到突发影响业务的事件时,AWS 事件管理团队会使用行业标准诊断程序来推进事件的解决。专业的管理团队还会提供全天候响应服务,高效快速处理突发事件,确保基础设施安全无虞。
3.1.2 基本服务安全
安全性不仅嵌入到 AWS 基础设施的每一层,还嵌入到基础设施之上的每个服务中。AWS 的每个服务都提供了广泛的安全功能,可以帮助用户保护敏感数据和应用程序。例如,Amazon RDS for Oracle 是一种托管式数据库服务,在该服务中,AWS 管理容器的所有层,甚至包括 Oracle 数据库平台。针对云上服务,AWS 提供数据备份服务和恢复工具,用户负责配置和使用与业务连续性和灾难恢复 (BC/DR) 策略有关的工具。用户通过使用 AWS 提供的静态数据加密服务,或者 AWS 提供的对用户有效负载的 HTTPS 封装服务,以保障传入和传出该服务的数据安全。对于基本服务 AWS 也提供了多种有效措施来确保服务的安全性。
3.2 客户安全责任
安全是相对的,且是多维度的,底层基础设施交由 AWS 负责,那么在云上的资源配置和业务安全则需要由客户自己来掌控。
3.2.1 基础服务
基础服务的安全问题,涉及计算、存储、网络等层面,需要与具体的场景结合才能有针对性地保障其不同侧重点的安全性。例如,当业务迁移上云时,如何保障云上计算资源全生命周期的安全性,如何规划云上网络才能确保数据传输安全,依靠哪些措施保障数据存储安全。针对计算、网络、存储三大基础服务,AWS 提供了不同的解决方案。
计算资源之 EC2
* 服务器开通
服务器在开通阶段,需要进行一系列安全配置,以提升系统安全等级。企业可以自主选择多种操作,例如选择稳定的操作系统版本、开通服务器安全防护功能、开通监控日志服务、安全组最小化精确授权、配置快照备份策略、设置 IAM 访问权限、配置服务器告警策略等。
* 服务器配置
通过一些列系统内优化加固操作,提高系统安全性,例如在系统内部使用系统默认防火墙对业务进行安全防护,调整文件打开数和进程数,优化系统内核参数,删除系统内无效用户,禁用超级管理员登录,使用普通用户切换到超级管理员操作,对业务系统日志进行切割分级等。
* 运维
对于后期服务器运维,需要企业客户定期更新软件系统,及时修复新暴露的软件漏洞,定期巡检服务器各项监控指标,企业还可以针对业务使用情况优化系统配置,并对 EC2 服务器进行安全测试,使用安全产品进行 EC2 安全加固。
网络安全之 VPC
对于 Amazon Virtual Private Cloud 安全,用户需要根据自身业务特点,结合业务网络连通性和后期可扩展性进行综合考虑。[和后面 4.1.2 VPC 规划的分层设计内容重复]对 Web 应用/APP 应用/DB 应用进行分层设计,通过制定严格的网络安全策略实现业务管控,保证安全;用户还可以配置带宽监控,这样一旦网络发现异常流量就会告警,确保企业网络安全可用。
存储安全之 Amazon S3
在对象存储安全方面,Amazon S3 基于请求时间(日期条件)限制访问,无论该请求是使用 SSL(布尔值条件)还是使用申请方的 IP 地址(IP 地址条件)发送的,都可基于申请方的客户端应用程序(字符串条件)限制访问。通过 SSL 加密型终端节点,安全地将数据上传/下载到 Amazon S3,保证数据传输到 Amazon S3 的安全性。
3.2.2 托管服务
对于 AWS 托管服务,例如 Amazon RDS 具有丰富功能,可以提高关键生产数据库的可靠性,包括数据库安全组、权限、SSL 连接、自动备份、数据库快照和多可用区部署。企业还可以选择将数据库实例部署在 Amazon VPC 中以享受额外的网络隔离。
从访问控制层面来看,企业首次在 Amazon RDS 内创建数据库实例时,将会创建一个主用户账户,它仅在 Amazon RDS 环境中用来控制对用户数据库实例的访问。同时创建数据库子网组,这些组是用户可能需要为 VPC 中的 RDS 数据库实例指定的子网集合,每个数据库子网组应至少包含给定区域中每个可用区的一个子网,从网络层面保证服务安全性;
终端访问加密方面,可以使用 SSL 对应用程序和数据库实例之间的连接进行加密,避免数据被窃取和篡改;
对于自动备份和数据库快照,用户可根据业务合理配置托管服务器的备份恢复策略,当数据遭受破坏时能轻松地实现数据恢复;
对于告警,AWS 提供 RDS 服务,可以帮助企业全面掌握云端应用状况,如实例是否已关闭、备份启动、发生故障转移、安全组发生更改、存储空间不足等,企业可以在第一时间发现潜在安全问题,并执行相应修复操作,提升托管服务安全性。
四 安全架构最佳实践
4.1 访问入口
4.1.1 边界架构安全
AWS WAF
AWS WAF 是一种 Web 应用程序防火墙,顾名思义防火墙能够根据一些设定好的 ACL 规则或内置安全策略,对网络上的安全风险进行拦截,包括 SQL 注入、跨站脚本、特点恶意 IP 访问等安全威胁。利用 AWS WAF 能够为业务提供安全的访问入口。
AWS CloudFront
Amazon CloudFront 能加快将静态和动态 Web 内容(如 .html、.css、.js 和图像文件)分发到用户的速度,当出现海量网络攻 击情况时,可利用全球的节点轻松扛住海量攻 击。不仅如此,如下图所示,Amazon CloudFront 还可将 HTTP 请求重定向到 HTTPS,为应用提供强有力的安全防护入口。
Amazon Route53
Amazon Route 53 作为 DNS 服务器,实施的故障转移算法不仅用于将流量路由到正常运行的终端节点,在遇到大型 DDoS***时还可以起到很好的分流作用,强大的基础设施为用户提供云上安全可靠的网络防护。
安全接入点
在全球网络的众多接入点,AWS 已经配置了专业的接口通信网络设备,可以对网络接入点进行管理和安全检测,从而保障了业务数据在接入点的网络安全性。
传输保护
普通用户可使用安全套接字层 (SSL)通过 HTTP 或 HTTPS 连接到 AWS 接入点,但对于安全需求更高的用户,,AWS 提供 Amazon Virtual Private Cloud (VPC)服务,它相当于在 AWS 云内部为高安全需求用户打造一张私有子网,通过 IPsec Virtual Private Network (***) 设备在 Amazon VPC 与用户的数据中心之间建立加密隧道,从而保证业务数据在网络传输中的安全可靠。
容错设计:
AWS 保障了在多个地理区域内以及在每个地理区域的多个可用区中实例和存储数据的灵活性,通过将应用程序分布在多个可用区从而保持弹性,高可用的容错设计最大程度避免了灾难的发生,为用户应用安全提供保障。
4.1.2 VPC 规划
对于 Amazon Virtual Private Cloud 安全,用户需要根据自身业务特点,针对业务网络连通性和后期可扩展性等方面进行前瞻性规划考虑。
高可用设计
AWS 可以帮助企业将业务部署在不同的 VPC 中,VPC 之间实现网络互通,企业可以利用路由安全组和网络 ACL 来控制安全,不同 VPC 部署在不同地域,确保业务网络冗余性。
分层设计
考虑到业务安全性,企业可以在每个 Amazon VPC 内创建一个或多个子网,在 Amazon VPC 中启动的每个实例均连接至一个子网。传统的第 2 层安全性***(包括 MAC 欺骗和 ARP 欺骗)被阻断。
可扩展性
业务网络随着业务应用的持续发展,需要提前考虑未来可扩展性,做好网段规划。根据 IDC 网络拓扑设计云上网段,避免在后续打隧道时发生网络冲突,考虑到业务发展模式,建议企业尽可能采用大的网段划分,为未来业务预留网段,确保网络规划具有良好的可扩展性。
维护性
企业业务上线后对 VPC 需要进行带宽策略配置,监控告警配置等操作。这样可以在第一时间发现异常流量,并进行处理。日常运维中,企业还需要根据业务动态调整 VPC 策略,定期巡检以提升 VPC 安全。
4.1.3 子网规划
VPC 的安全一部分是由子网的安全措施来保证的,为了实施额外的网络控制,可以通过指定子网的 IP 地址范围来隔离不同的应用实例,子网规划也需要考虑子网中云资源的数量限制,子网的正确规划能大大减少来自网络内的***,及时发现网络安全问题,防患于未然。
4.1.4 安全组
在应用的访问中,AWS 提供了一整套完整防火墙方案,此方案就是在各个云资源边界都有安全组,且强制性入站配置默认为是拒绝所有请求,客户需要明确允许入站流量业务所需端口,最小化精细授权访问,从而提升网络安全性。
4.2 系统架构
在系统架构安全方面,企业可通过灵活使用负载均衡、业务无状态设计、分层架构部署等手段构建安全架构。此外企业还可以将业务数据存储在分布式存储中,信息数据存储在云产品 MQ/DB 中,这样可以最大程度防患于未然,将攻 击轻松化解。
4.3 分级管理
4.3.1 访问分级
IAM
无论是对云资源的访问还是系统的访问,访问凭证的安全至关重要。借助 AWS IAM,用户可以集中对用户、安全凭证(如密码、访问密钥)进行统一管理,以及对 AWS 服务和资源的访问设置控制权限策略。灵活使用 IAM 授权可以对应用或云资源访问实现分级控制,保障云资源和访问入口安全性。
MFA
为进一步提高访问的高安全性和可靠性,企业可为账户中的所有用户进行 Multi-Factor Authentication (MFA),启用 MFA 后,用户不仅要提供使用账户所需的密码或访问密钥,还必须提供来自经过特殊配置的设备代码,通过双向认证确保访问分级的安全性。
4.3.2 数据分级
数据 KMS 加密
对于数据加密问题,可借助 AWS Key Management Service (AWS KMS) 托管服务轻松实现。用户可以创建和控制客户主密钥 (CMK),这是用于加密数据的加密密钥,通过使用 AWS KMS,能够更好地控制对加密数据的访问权限。目前用户可以直接在应用程序中使用秘钥管理和加密功能,也可以通过与 AWS KMS 集成的 AWS 服务使用密钥管理和加密功能。利用 KMS 加密服务,能够快捷简单保障数据的安全性。
备份恢复
对于不同的云资源,AWS 提供对应的数据备份功能,例如 EC2 的快照备份如果实例出现故障,或者被***恶意访问造成数据被篡改,或被非法加密用于勒索,可以利用快照第一时间对数据进行恢复;通过配置云产品的备份策略,可以在业务数据发生异常时最快速度进行数据恢复。
传输加密
对于访问请求传输进行加密控制,AWS 提供的服务对 IPSec 和 SSL/TLS 均提供支持,以保证传输中数据的安全。对于客户业务请求可以强制 HTTPS 访问,企业用户可以使用 SSL 对 API 调用进行加密,以保持业务数据的机密性。
4.4 运维管理
系统加固
对于系统加固,在开通 EC2 服务器后,除了 AWS 上备份监控策略外,系统内部的安全加固必不可少,用户需定期进行补丁更新,后期运维进行定期安全巡检,通过监控日志告警来第一时间排查系统安全问题,通过系统加固能在系统内杜绝安全隐患。
监控管理
对于云上资源的使用情况,企业可以使用 AWS CloudWatch 进行监控,全方位了解资源利用率、运营性能和总体需求模式,并且用户还可以设置 CloudWatch 警报,使其在超出特定阈值时通知用户或采取其他自动化操作(例如,在 Auto Scaling 启用时添加或 移除 EC2 实例),并可以通过分析监控信息排除隐藏的安全问题。
日志管理
对于云上资源日志, AWS CloudTrail 提供面向账户内的 AWS 资源所有请求的日志,这包括监控账号内 AWS 资源日志、安全事件记录、API 调用信息,企业可通过日志进行安全溯源。
配置管理
云上资源统一管理就需要使用配置管理,AWS Config 帮助用户监督自己的应用程序资源。企业用户可以随时了解资源使用情况以及资源的配置方式,在资源被创建、修改或删除时,企业能够第一时间得到通知,轻松实现对云资源的安全管控。
五 反思
安全是相对的,没有 100%的安全,想要在云上畅行无阻,需要云厂商和用户的共同努力。在基础设施安全方面,云厂商凭借多年的深入研究和风险分析,结合自身在安全领域多年的经验及技术积累,打造了专门针对云上安全的产品,形成全方位的云安全能力,为用户提供一站式的云安全综合解决方案。用户则需要从自身业务的安全架构设计,云资源的安全配置,系统内的安全加固,以及后期的运维管理等方面确保安全性。云上安全,人人有责,无论采用的是哪种云部署,用户都要确保自己的应用在这个云环境中安全无虞。下一代云安全,是多方协作的。云安全的智能化,需要云厂商和用户的不断努力,共筑云上安全业务堡垒,创造无限可能。
版权声明: 本文为 InfoQ 作者【雪雷】的原创文章。
原文链接:【http://xie.infoq.cn/article/fdfdcfdf9af3539d371686410】。文章转载请联系作者。
评论