本文为您介绍面对目前的网络安全形势及挑战,阿里云在使用账号、实例、操作系统、资源等方面提高安全性的做法以及具备的能力。

背景信息

安全涵盖的范围广泛,阿里云保证自身云基础设施和服务的安全,例如机房、虚拟化平台等,但您在使用云产品过程中遵循安全实践同样重要,例如阿里云账号安全、机密信息保管、权限控制等。

云产品安全形势

网络安全威胁态势

近年网络安全威胁越来越多,各种安全事件频出,根据splunk发布的2022年全球网络安全态势报告数据显示:
  • 49%的企业表示,他们在过去两年中遭受了数据泄露,比一年前调查中的39%有所增加。
  • 79%的受访者表示,他们遇到过勒索软件攻击,35%的受访者承认曾有一次或多次受到攻击导致其无法访问数据和系统。
  • 59%的安全团队表示,他们必须投入大量时间和资源进行补救,这一比例高于一年前的42%。
  • 因网络安全事件而遭受计划外停机的业务关键型工作负载的平均恢复时间为14小时,受访者估计这种停机的平均损失约为每小时20万美元。

传统IT结构向云化架构转变,也会带来新的安全挑战。可能一个误操作就会让自己的应用从内网访问到公网访问或者泄露了自己的密钥导致信息安全事件。安全和合规是数字化转型的基石,也是上云的第一步。

安全责任共担模型

不同于传统的IDC,云计算是一种共享技术模型,其安全责任由双方共同承担,这通常被称为安全责任共担模型。对于托管ECS的服务,您与ECS对安全性、合规性负有相同的责任。一般而言,ECS负责的安全性,而您负责云中的安全性。
  • ECS负责管理ECS控制平面,提供安全可靠服务所需的基础设施,在基础设施安全、数据安全、通信安全及合规性等方面提供全方位的安全保障。
  • 您负责ECS实例中的包括数据、网络和运行时的安全,以及日志记录和监控。您需要对实例、存储、网络负有全部安全责任,包括配置操作系统、管理应用程序、保护数据和网络配置等。

云上信息资产保护的前提

您需要明确安全战略的地位,提高足够的重视度,系统和应用安全不是一蹴而就,需要大量精力持续投入、持续建设。
  • 需要全局制定一个整体的安全战略,并规划完整的安全防御策略以使用合适的安全工具以及控件进行保护。
  • 安全性集成到DevOps中。
  • 自动化系统安全防御体系。
  • 深入了解云环境安全合规性标准。
除此之外,您需要明确以下内容:
  • 对所有信息资产做识别、定义和分类。
  • 定义需要被保护的资产数据。
  • 定义被保护的资产数据谁可以访问,明确访问的目的是什么。

如何保护云上信息资产

通常意义的云计算安全或云安全是指通过一系列策略、控制和技术,共同确保数据、基础设施和应用安全,保护云计算环境免受外部和内部网络安全威胁和漏洞的影响。越来越多的企业更加重视云安全合规,云上安全合规需要有自上而下的顶层设计,要以安全为出发点构建云上应用。

根据目前的安全趋势,阿里云推荐您使用如下表所示的安全最佳实践,来保护云上信息资产的安全。
安全项 最佳实践 说明
账号安全 阿里云账号安全
  • 开启MFA多因素账号认证
  • 使用RAM用户而不是阿里云账号,并合理设置权限策略
  • 云产品API调用使用实例角色而不是AK
  • AK防泄密
  • 账号、密码管理安全建议
应用资源管理 规模化信息资产管理
  • 使用标签规模化管理资源
  • 使用云助手自动化运维资源通道
  • 使用配置审计(Config)对资源进行合规审计
  • 使用应用配置管理ACM集中管理所有应用配置
信息数据安全 创建实例时启用安全合规特性
  • 高安全要求业务使用增强计算实例
  • 使用更安全的镜像
  • 云盘数据加密
  • 快照容灾备份
  • 加固模式下访问实例元数据
网络环境安全 合理设置网络资源权限隔离
  • 网络资源隔离的安全建议
  • 搭建安全的网络环境
应用防护安全 使用云安全产品构建安全防御体系
  • 网络流量攻击防护:基础DDoS防御(免费)与DDoS高防
  • 系统漏洞攻击防护:云安全中心(免费版)
  • 应用漏洞攻击防护:云盾Web防火墙
实例内GuestOS应用系统安全 实例GuestOS系统内应用安全
  • 实例登录安全配置
  • 数据传输加密
  • 日志异常监控与审计

阿里云账号安全

开启MFA多因素账号认证

建议为阿里云账号启用MFA多因素认证,即在用户名和密码(第一层安全要素)的基础上,增加了MFA安全码(第二层安全要素,MFA设备生成的动态验证码),以此提高账号安全性。

使用RAM用户而不是阿里云账号,并合理设置权限策略

确保用户访问ECS资源使用最小使用权限,避免共享账号或是过于宽泛的授权。使用访问控制RAM时,建议直接使用阿里云账号创建RAM用户(用户组)并授予特定权限策略,实现在账号维度上对云服务器ECS资源进行细粒度的访问控制。更多信息,请参见通过RAM用户控制资源访问
  • RAM用户

    如果您购买了多台云服务器ECS实例,您的组织里有多个用户(例如员工、系统或应用程序)需要使用这些实例,您可以创建多个子用户并通过授权的方式使部分用户能够有权限使用这些实例。避免了将同一个AccessKey分发给多人的安全风险。

  • 用户组
    • 您可以创建多个用户组,并授予不同权限策略,提高批量管理的效率。例如为了加强网络安全控制,您可以给某个用户组授权一个权限策略,该策略可以规定:如果用户的IP地址不是来自企业网络,则拒绝此类用户请求访问相关ECS资源。
    • 您可以创建多个用户组管理不同工作职责的人员。例如某开发人员的工作职责发生转变,成为一名系统管理人员,您可以将其从Developpers用户组移到SysAdmins用户组。
  • 用户组的策略
    • SysAdmins:该用户组需要创建和管理的权限。您可以给SysAdmins组授予一个权限策略,该策略授予用户组成员执行所有ECS操作的权限,包括ECS实例、镜像、快照和安全组等。
    • Developers:该用户组需要使用实例的权限。您可以给Developers组授予一个权限策略,该策略授予用户组成员调用DescribeInstancesStartInstanceStopInstanceRunInstancesDeleteInstance等权限。

云产品API调用使用实例角色而不是AK

一般情况下,ECS实例的应用程序是通过阿里云账号或者RAM用户的AccessKey访问阿里云各产品的API。为了满足调用需求,需要直接把AccessKey固化在实例中,例如写在配置文件中。但是这种方式权限过高,存在泄露信息和难以维护等问题。因此,阿里云推出了实例RAM角色解决这些问题,一方面可以保证AccessKey安全,另一方面也可以借助RAM实现权限的精细化控制和管理。

实例RAM角色(推荐使用加固模式访问元数据)允许您将一个角色关联到ECS实例,在实例内部基于STS(Security Token Service)临时凭证(临时凭证将周期性更新)访问其他云产品的API。更多信息,请参见实例RAM角色概述

AK防泄密

阿里云账号AccessKey是客户访问阿里云API的密钥,请务必妥善保管。请勿通过任何方式(如Github等)将AccessKey公开至外部渠道,以免被恶意利用而造成安全威胁。AccessKey泄露会威胁所有资源的安全,根据如下AK信息使用安全建议,可以有效降低AccessKey泄露的风险。

您在使用阿里云产品过程中需要遵循以下几点AK信息使用安全建议,降低凭证泄漏造成的影响:
  • 不要将AccessKey嵌入代码中。
  • 定期轮换AccessKey。
  • 定期吊销不需要的AccessKey。
  • 遵循最小权限原则,使用RAM用户。
  • 开启操作日志审计,并将其投递至OSS和SLS保存和审计。
  • 可以开启acs:SourceIp限定公网IP网段访问阿里云API。
  • 通过设置acs:SecureTransport取值为true,表示通过HTTPS方式访问阿里云。

账号、密码管理安全建议

类别 策略说明
阿里云账号
  • 管理员账号必须开启MFA认证。
  • 账号分级权限设置,最小权限授权原则。
  • 禁用root账号访问API或常用请求方法。
密钥、凭据
  • 过期的证书、凭据禁止使用。
  • 根账号需删除访问密钥。
  • 定期清理30天以上不再使用的密钥、凭据。
  • 监控密钥、凭据最新使用情况。
  • 定期自动扫描您的Git仓库和历史记录,排查密钥泄露的可能。
密码
  • 定期修改密码、设置密码时需符合密码强度校验。
  • 密码复杂度策略强制实施。
  • 设置与其他平台不一致的复杂账号密码,避免不慎泄露后影响多个平台中资源的安全。
  • 建议AK以及其他账号密码信息使用KMS安全托管,避免明文落盘存储。
  • 主机上不同账号间不应共享密码或密钥对。
机密信息使用KMS安全加固托管 机密数据明文落盘存储会导致泄漏风险,建议您提前开通密钥管理服务,无需自行研发和运维密码设施,即可在云服务中使用数据加密功能,例如在云服务器ECS中使用云盘加密、实例可信启动等功能。

规模化信息资产管理

规模化、自动化运维与审计云上资源,避免因错误的配置变更造成出现例外或单点资产保护遗漏情况。建议您统一实例、安全组的命名安全与部署约定,统一命名规范,定期检测、提醒或删除不符合命名规范的安全组和实例。使用标签规模化管理资源、使用云助手自动化运维资源通道、使用配置审计对资源进行合规审计、使用应用配置管理ACM集中管理所有应用配置。

使用标签规模化管理资源

  • 使用标签可以规模化识别、分类和定位云资源。在发生安全事件时,通过标签可以快速定位安全事件的作用范围和影响程度。
  • 在配置安全策略时,例如安全组,可以批量为指定标签的资源配置安全组,避免单个资源配置遗漏。

更多信息,请参见标签

使用云助手自动化运维资源通道

传统的运维通道需要借助SSH取得密钥进行管理,并开放相应的网络端口,密钥管理不当以及网络端口暴露都会对云上资源带来很大的安全隐患。云助手是专为云服务器ECS打造的原生自动化运维工具,通过免密码、免登录、无需使用跳板机的形式,在ECS实例上实现批量运维、执行命令(Shell、Powershell和Bat)和发送文件等操作。典型的使用场景包括:安装卸载软件、启动或停止服务、分发配置文件和执行一般的命令(或脚本)等。可以帮助客户安全、高效的运维云上资源。通过云助手,可以在云服务器ECS上实现批量运维、执行命令和发送文件等操作;通过云助手Session Manager,可以交互式运维ECS实例。以上运维操作都无需密码、无需登录,ECS实例不需要使用公网,也不需要通过跳板机,通过云助手以下安全机制保证运维通道的安全性:
  • 权限控制:云助手通过RAM策略,从实例、资源组、标签、源IP地址等多个维度控制用户对实例的访问权限。只有具有权限的用户才能通过云助手通道运维ECS实例。
  • 链路可靠:全链路采用HTTPS协议进行交互,传输过程中对数据进行加密。ECS实例入方向采用内部安全管控链路,无需用户开放端口,降低被入侵的风险;出方向通过内网进行通信,无需暴露公网即可使用。
  • 内容安全:通过云助手通道传输的命令内容,通过加密及签名校验的方式,确保传输过程中无法被篡改,保证命令内容的安全性。
  • 日志审计:通过云助手通道传输的命令、文件都可以通过API进行审计,用户可以查询执行的时间、身份、执行内容、执行结果等信息。同时支持将日志投递到存储(OSS)或日志(SLS)等系统中,提供日志归档、分析能力。
更多信息,请参见云助手

使用配置审计(Config)对资源进行合规审计

配置审计(Config)是面向云上资源的审计服务,为用户提供跨区域的资源清单和检索能力,记录资源的历史配置快照,形成配置时间线。当资源发生配置变更时,自动触发合规评估,并针对不合规配置发出告警。使用户能够实现对于海量云上资源合规性的自主监控,应对企业内部和外部合规的需要。更多信息,请参见配置审计

使用应用配置管理ACM集中管理所有应用配置

应用配置管理ACM(Application Configuration Management)是一款在分布式架构环境中对应用配置进行集中管理和推送的产品。凭借配置变更、配置推送、历史版本管理、灰度发布、配置变更审计等配置管理工具,ACM能帮助您集中管理所有应用环境中的配置,降低分布式系统中管理配置的成本,并降低因错误的配置变更造成可用性下降甚至发生故障的风险。更多信息,请参见应用配置管理ACM

创建实例时启用安全合规特性

高安全要求业务使用增强计算实例

如果您的业务面向高安全可信要求的场景,可以使用安全增强型实例,保障实例可信启动和实例中隐私数据的安全。
  • 支持Intel®SGX加密计算、支持加密内存,保障关键代码和数据的机密性与完整性不受恶意软件的破坏。
  • 依托TPM/TCM芯片,从底层服务器硬件到GuestOS的启动链均进行度量和验证,实现可信启动。
例如,选择c6t规格。关于安全增强型实例的更多信息,请参见安全增强型实例instance-type

使用更安全的镜像

  • 使用公共镜像并开启镜像安全加固
    • 使用官方提供的公共镜像。
    • 公共实例镜像启用安全加固能力,提供网站漏洞检查、云产品安全配置检查、主机登录异常告警等安全功能。
    image-security-enhanced
  • 使用加密的自定义镜像

    使用国际标准认证的AES-256算法对镜像进行加密,避免镜像丢失后数据泄露风险。用户可选择创建加密的系统盘、数据盘,如果云盘是加密云盘,使用该云盘创建的快照也是加密镜像,或对已有的未加密镜像拷贝时选择加密,生成的新镜像为加密镜像。如果自定义加密镜像需要共享其他阿里云账号时,建议用户为共享加密镜像创建独立的BYOK密钥,避免KMS密钥泄露导致安全风险。更多信息,请参见复制镜像

云盘数据加密(需开启KMS)

选择云盘数据加密,能够最大限度保护您的数据安全,您的业务和应用程序无需做额外的改动。同时该云盘生成的快照及这些快照创建的云盘将自动延续加密属性。数据加密适用于数据安全或法规合规等场景,帮助您加密保护存储在阿里云ECS上的数据。无需自建和维护密钥管理基础设施,您就能保护数据的隐私性和自主性,为业务数据提供安全边界。被加密的云盘可以是系统盘和数据盘。更多信息,请参见加密概述disk-encryption

快照容灾备份

  • 使用快照备份

    数据备份是容灾的基础,可以降低因系统故障、操作失误以及安全问题而导致数据丢失的风险。ECS自带的快照功能可满足大部分用户数据备份的需求。您可根据自身业务需求选择创建快照的方式。具体操作,请参见创建一个云盘快照

    建议您每日创建一次自动快照,每次快照至少保留7天。养成良好的备份习惯,在故障发生时可以迅速恢复重要数据,减少损失。auto-snapshot
  • 使用加密的快照

    ECS加密采用行业标准的AES-256加密算法,使用密钥加密快照,避免快照丢失后数据泄露风险。您可以选择创建加密的云盘,如果云盘是加密云盘,使用该云盘创建的快照也是加密快照。

加固模式下访问实例元数据

实例元数据包含了ECS实例在阿里云系统中的信息,您可以在运行中的实例内方便地查看实例元数据,并基于实例元数据配置或管理实例。更多信息,请参见ECS实例元数据概述

建议您在加固模式下使用实例元数据,加固模式下实例和实例元数据服务器间建立一个会话,并在查看实例元数据时通过Token验证身份,超过有效期后关闭会话并清除Token。Token具有以下特点:
  • 仅适用于一台实例。如果将Token文件复制到其他实例使用,会被拒绝访问。
  • 必须定义Token有效期,范围为1秒~21600秒(6小时)。在有效期内可以重复使用,方便您平衡安全性和用户体验。
  • 不接受代理访问,如果创建Token的请求中包含X-Forwarded-For标头,则拒绝签发Token。
  • 向实例签发的Token数量没有限制。
实例元数据

合理设置网络资源权限隔离

云计算利用专有网络VPC(Virtual Private Cloud)来抽象物理网络并创建网络资源池,实现数据链路层的隔离,为每个用户提供一张独立隔离的安全网络环境。不同VPC之间内部网络完全隔离,只能通过对外映射的IP互连。在VPC内部,用户可以自定义IP地址范围、网段、路由表和网关等。此外,用户可以通过VPN网关、高速通道物理专线、智能接入网关等服务将本地数据中心和云上VPC打通,也可以通过云企业网实现全球网络互通,从而形成一个按需定制的网络环境,实现应用的平滑迁移上云和对数据中心的扩展。

此外,网络是所有云服务的基础要素,网络攻击种类多、危害大,是最难防护的风险之一。云计算平台会提供一套成熟的网络安全架构,以应对来自互联网的各种威胁。在阿里云上,可以通过安全组、网络ACL、路由策略或网络专线来控制虚拟网络的访问权限。除了对内网网络访问的控制之外,还需要配置云防火墙、应用程序防火墙、DDoS防护等安全措施,针对各种外部网络安全威胁,进行安全防护。

网络资源隔离的安全建议

网络资源隔离的安全建议如下:
  • 建立网络管理员,统一管理安全组、网络ACL以及流量日志。
  • 使用ACL限制不需要公开的任何内容。
  • 网络资源隔离,预设置较大子网,避免子网重叠使用。
  • 围绕访问点而不是资源配置安全组。

搭建安全的网络环境

  • 合理设置安全组,网络隔离减少攻击面

    安全组是重要的网络安全隔离手段,用于设置单台或多台云服务器的网络访问控制。通过设置安全组规则,可以在网络层过滤服务器的主动/被动访问行为,限定服务器对外/对内的端口访问,授权访问地址,从而减少攻击面,保护服务器的安全。

    例如Linux系统默认远程管理端口22,不建议直接向外网开放,可以通过配置ECS公网访问控制,只授权本地固定IP对服务器进行访问。如果您对访问控制有更高要求,可以使用第三方VPN产品对登录行为进行数据加密。以下是安全组实践的安全建议:
    安全建议 说明 参考文档
    最小原则 安全组应该是白名单性质的,所以需尽量开放和暴露最少的端口,同时尽可能少地分配公网 IP。如果需要访问线上机器进行任务日志或错误排查的时候尽量通过VPN或堡垒机方式登录。如果配置不当可能导致业务的端口或者IP暴露在互联网,造成安全威胁。
    • 利用安全组限制,禁止私网访问,公网安全组和私网安全组都只保留业务需要使用的端口。
    • ECS上安装的高危服务端口,需要限制只允许本机访问或者利用安全组限制访问来源IP。
    • HTTP服务的管理后台,需要利用安全组限制访问来源IP。HTTP服务域名则需要开启云盾Web应用防火墙WAF(Web Application Firewall)功能。
    安全组应用案例
    避免设置0.0.0.0/0授权对象 允许全部入网访问是经常犯的错误。使用0.0.0.0/0意味着所有的端口都对外暴露了访问权限,这是非常不安全的。正确的做法是,拒绝所有的端口对外开放,设置安全组白名单访问。例如,如果您需要暴露Web服务,默认情况下只开放80、8080和443之类的常用TCP端口,其他端口都应关闭。 添加安全组规则
    关闭不需要的入网规则 如果您当前使用的入规则已经包含了0.0.0.0/0,您需要重新审视自己的应用需要对外暴露的端口和服务。如果确定不需要让某些端口直接对外提供服务,您可以添加一条拒绝的规则。例如,您的服务器上安装了MySQL数据库服务,默认情况下不应该将3306端口暴露到公网,此时,您可以添加一条拒绝规则,并将其优先级设置为100,即优先级最低。 添加安全组规则
    以安全组为授权对象添加规则 不同的安全组按照最小原则开放相应的出入规则。对于不同的应用分层应该使用不同的安全组,不同的安全组应有相应的出入规则。
    • 例如,如果是分布式应用,您会区分不同的安全组,但是不同的安全组可能网络不通,此时您不应该直接授权IP或者CIDR网段,而是直接授权另外一个安全组ID,所有的资源都可以直接访问。
    • 例如,您的应用对Web、Database分别创建了不同的安全组sg-web和sg-database。在sg-database中,您可以添加规则,授权所有的sg-web安全组的资源访问您的3306端口。
    添加安全组规则
    经典网络的内网安全组规则不要使用CIDR或者IP授权 对于经典网络类型的ECS实例,阿里云默认不开启任何内网的入规则。内网的授权一定要谨慎。 安全组规则概述
    定义合理的安全组名称和标签 合理的安全组名称和描述有助于您快速识别当前复杂的规则组合,您可以通过修改名称和描述来帮助自己识别安全组。

    您也可以通过为安全组设置标签分组管理自己的安全组。您可以在控制台直接设置标签,也可以通过API设置标签。

    将需要互相通信的ECS实例加入同一个安全组 一个ECS实例最多可以加入5个安全组,而同一安全组内的ECS实例之间是网络互通的。如果您在规划时已经有多个安全组,且直接设置多个安全规则过于复杂的话,您可以新建一个安全组,然后将需要内网通讯的ECS实例加入这个新的安全组。

    不建议您将所有的ECS实例都加入同一个安全组,对于一个中大型应用来说,每个服务器编组的角色不同,合理地规划每个服务器的入方向请求和出方向请求是非常有必要的。

    ECS实例加入安全组
    安全组内实例间隔离 安全组是一种虚拟防火墙,具备状态检测和包过滤功能。安全组由同一个地域内具有相同安全保护需求并相互信任的实例组成。为了满足同安全组内实例之间网络隔离的需求,阿里云丰富了安全组网络连通策略,支持安全组内实现网络隔离。 普通安全组内网络隔离
    使用安全组五元组规则 安全组用于设置单台或多台ECS实例的网络访问控制,它是重要的网络安全隔离手段,用于在云端划分安全域。安全组五元组规则能精确控制源IP、源端口、目的IP、目的端口以及传输层协议。 安全组五元组规则
    公网服务的云服务器和内网服务器尽量属于不同的安全组 是否对外提供公网服务,包括主动暴露某些端口对外访问(例如80、443等),被动地提供端口转发规则(例如云服务器具有公网IP、EIP、NAT端口转发规则等),都会导致自己的应用可能被公网访问。
    • 两种场景的云服务器所属的安全组规则要采用最严格的规则,默认情况下应当关闭所有的端口和协议,仅仅暴露对外提供需要服务的端口,例如80、443。由于仅对属于对外公网访问的服务器编组,调整安全组规则时也比较容易控制。
    • 对于对外提供服务器编组的职责应该比较明晰和简单,避免在同样的服务器上对外提供其他服务。例如MySQL、Redis等,建议将这些服务安装在没有公网访问权限的云服务器上,然后通过安全组的组组授权来访问。
    添加安全组规则
  • 合理配置安全域隔离企业内部不同安全等级服务

    您可以基于VPC专有网络,构建自定义专属网络,隔离企业内部不同安全级别的服务器,避免互通网络环境下受其他服务器影响。建议您创建一个专有网络,选择自有IP地址范围、划分网段、配置路由表和网关等。然后将重要的数据存储在一个跟互联网网络完全隔离的内网环境,日常可以用弹性IP(EIP)或者跳板机的方式对数据进行管理。具体操作,请参见创建和管理专有网络

  • 使用跳板机或堡垒机防御内部和外部入侵破坏

    跳板机由于其自身的权限巨大,需要通过工具做好审计记录,建议直接使用堡垒机,保障网络和数据不受来自外部和内部用户的入侵和破坏,而运用各种技术手段监控和记录运维人员对网络内的服务器、网络设备、安全设备、数据库等设备的操作行为,以便集中报警、及时处理及审计定责。

    在专有网络中,建议将跳板机分配在专有的虚拟交换机之中,对其提供相应的EIP或者NAT端口转发表。首先创建专有的安全组 SG_BRIDGE,例如开放相应的端口,例如Linux TCP(22) 或者Windows RDP(3389)。为了限制安全组的入网规则,可以限制能登录的授权对象为企业的公网出口范围,减少被登录和扫描的概率。然后将作为跳板机的云服务器加入到该安全组中。为了让该机器能访问相应的云服务器,可以配置相应的组授权。例如在SG_CURRENT添加一条规则允许SG_BRIDGE访问某些端口和协议。使用跳板机SSH时,建议您优先使用密钥对而不是密码登录。关于密钥对的更多信息,请参见SSH密钥对

  • 公网IP合理分配,降低公网攻击风险
    不论是经典网络还是专有网络 (VPC) 中,合理的分配公网IP可以让系统更加方便地进行公网管理,同时减少系统受攻击的风险。在专有网络的场景下,创建虚拟交换机时,建议您尽量将需要公网访问的服务区的IP地址区间放在固定的几个交换机(子网CIDR)中,方便审计和区分,避免不小心暴露公网访问。
    • 在分布式应用中,大多数应用都有不同的分层和分组,对于不提供公网访问的云服务器尽量不提供公网IP,如果是有多台服务器提供公网访问,建议您配置公网流量分发的负载均衡服务来提供公网服务,提升系统的可用性。更多信息,请参见负载均衡SLB
    • 当您的云服务器需要访问公网的时候,优先建议您使用NAT网关,用于为VPC内无公网IP的ECS实例提供访问互联网的代理服务,您只需要配置相应的SNAT规则即可为具体的CIDR网段或者子网提供公网访问能力,避免因为只需要访问公网的能力而在分配了公网IP(EIP)之后也向公网暴露了服务。更多信息,请参见VPN网关

使用云安全产品构建安全防御体系

网络流量攻击防护:基础DDoS防御(免费)与DDoS高防

DDoS(Distributed Denial of Service,即分布式拒绝服务)攻击指借助于客户、服务器技术,联合多个计算机作为攻击平台,对一个或多个目标发动攻击,成倍地提高拒绝服务攻击的威力,影响业务和应用对用户提供服务。阿里云云盾可以防护SYN Flood、UDP Flood、ACK Flood、ICMP Flood、DNS Flood、CC攻击等3到7层DDoS的攻击。DDoS基础防护免费提供高达5 GB的默认DDoS防护能力。

ECS实例默认开启DDoS基础防护服务。使用DDoS基础防护服务,无需采购昂贵清洗设备,受到DDoS攻击时不会影响访问速度,带宽充足不会被其他用户连带影响,保证业务可用和稳定。ECS实例创建后,您可以设置清洗阈值,具体操作,请参见设置流量清洗阈值

在此基础上,阿里云推出了安全信誉防护联盟计划,将基于安全信誉分进一步提升DDoS防护能力,您可获得高达100 GB以上的免费DDoS防护资源。您可以在云盾DDoS基础防护控制台中查看您账号当前的安全信誉分、安全信誉详情和评分依据,如果您对DDoS防御有更高要求的可购买DDoS高防。更多信息,请参见安全信誉防护联盟

系统漏洞攻击防护:云安全中心(免费版)

云安全中心是一个实时识别、分析、预警安全威胁的统一安全管理系统,通过防勒索、防病毒、防篡改、合规检查等安全能力,实现威胁检测、响应、溯源的自动化安全运营闭环,保护云上资产和本地主机并满足监管合规要求。

云安全中心自动为您开通免费版功能。免费版仅提供主机异常登录检测、漏洞检测、云产品安全配置项检测,如需更多高级威胁检测、漏洞修复、病毒查杀等功能,请前往云安全中心控制台购买付费版。更多信息,请参见云安全中心免费版简介

应用漏洞攻击防护:云盾Web防火墙

云盾Web应用防火墙(Web Application Firewall,简称WAF)基于云安全大数据能力实现,通过防御SQL注入、XSS跨站脚本、常见Web服务器插件漏洞、木马上传、非授权核心资源访问等OWASP常见攻击,过滤海量恶意CC攻击,避免您的网站资产数据泄露,保障网站的安全与可用性。更多信息, 请参见什么是Web应用防火墙

接入Web应用防火墙的好处如下:
  • 无需安装任何软、硬件,无需更改网站配置、代码,它可以轻松应对各类Web应用攻击,确保网站的Web安全与可用性。除了具有强大的Web防御能力,还可以为指定网站做专属防护。适用于在金融、电商、o2o、互联网+、游戏、政府、保险等各类网站的Web应用安全防护上。
  • 如果缺少WAF,只有前面介绍的防护措施,会存在短板,例如在面对数据泄密、恶意CC、木马上传篡改网页等攻击的时候,不能全面地防护,可能会导致Web入侵。
接入Web应用防火墙的具体操作,请参见快速入门

实例GuestOS系统内应用安全

实例登录安全配置

实例登录账号权限默认非root权限,需用户在本地通过su或sudo提权至root,默认状态不支持root直接使用pem密钥文件登录。建议使用安全的访问控制协议访问ECS主机,并根据镜像类型选择不同的登录凭证。Linux系统建议配置只支持rsa密钥对的方式登录,不支持在控制台创建口令。Windows系统建议使用8位以上包含特殊字符的复杂密码作为登录凭证。

Linux实例:
  • 默认非root账号登录实例
    如果您使用系统用户root登录Linux操作系统的ECS实例,则可以获取系统最大权限。该方式虽然便于您进行系统运维操作,但如果ECS实例被入侵,则会存在影响严重的数据安全风险。建议您使用公共云镜像Anolis OS 8.4或Ubuntu 20.04,该版本镜像支持设置普通用户ecs-user作为登录名。非root登录
  • 使用临时下发的SSH密钥对登录实例

    ECS推荐使用config_ecs_instance_connect插件连接Linux实例,可以将SSH公钥发送到指定实例内部供指定用户使用,密钥保留60s。在60s内,您可以通过SSH公钥登录的方式进入实例,无需输入密码。更多信息,请参见使用config_ecs_instance_connect插件连接Linux实例

    SSH密钥对通过加密算法生成一对密钥,默认采用RSA 2048位的加密方式。相较于用户名和密码认证方式,SSH密钥对有以下优势:
    • SSH密钥对登录认证更为安全可靠。
    • 密钥对安全强度远高于常规用户口令,可以杜绝暴力破解威胁。
    • 不可能通过公钥推导出私钥。
    • 便捷性:
      • 如果您将公钥配置在Linux实例中,在本地或者另外一台实例中,您可以使用私钥通过SSH命令或相关工具登录目标实例,而不需要输入密码。
      • 便于远程登录大量Linux实例,方便管理。如果您需要批量维护多台Linux实例,推荐使用这种方式登录。要使用SSH密钥对登录Linux实例,您必须先创建一个密钥对,并在创建实例时指定密钥对或者创建实例后绑定密钥对,然后使用私钥连接实例。

    建议配置sshd_config默认禁止密码登录只支持rsa密钥对的方式登录。ssh配置文件中修改关于密码登录的配置选项。

Windows实例:
  • 设置复杂的密码与定期更换。弱口令一直是数据泄露的一个大症结,因为弱口令是最容易出现的也是最容易被利用的漏洞之一。服务器的口令建议至少8位以上,从字符种类上增加口令复杂度,如包含大小写字母、数字和特殊字符等,并且要不定时更新口令,养成良好的安全运维习惯。
  • ECS设置为强密码:长度为8~30个字符,且必须同时包含大写字母、小写字母、数字、特殊字符中的任意三种,特殊字符为 ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ ,其中Windows实例不能以正斜线(/)为首字符。

数据传输加密

配置安全组或防火墙,仅允许已经对数据加密的网络服务的端口之间进行通信。可使用传输层安全性(TLS1.2及以上版本) 等加密协议加密在客户端和实例之间传输的敏感数据。

日志异常监控与审计

根据FireEye M-Trends 2018报告,企业安全防护管理能力薄弱,尤其是亚太地区。全球范围内企业组织的攻击从发生到发现所需时长平均101天,而亚太地域平均需要498天。企业需要可靠、无篡改的日志记录与审计支持来持续缩短这个时间。

建议您使用云监控、操作审计、日志审计、VPC流日志、应用日志等构建一套异常资源、权限访问监控告警体系,对及时发现问题与止损、优化安全防御体系有着至关重要的意义。
  • 使用云监控设置账单报警,防止DDoS攻击。更多信息,请参见云监控
  • 使用操作审计ActionTrail监控未授权的访问、识别潜在安全配置错误、威胁或意外行为,也用于支持质量流程、法律或合规义务,还可以用于威胁识别和响应工作,请使用MFA限制ActionTrail访问权限。更多信息,请参见操作审计
  • 启用配置VPC流日志记录VPC网络中弹性网卡ENI传入和传出的流量信息,帮助您快速、有效地分析VPC流日志。
  • 使用日志审计服务,日志服务提供一站式数据采集、清洗、分析、可视化和告警功能,支持DevOps、运营、安全、审计等日志服务相关场景。更多信息,请参见日志审计服务
  • 跟踪应用事件日志、API调用日志。
  • 所有日志定期同步SLS、OSS保存,并设置好访问权限。
  • 添加实例ID、地域、可用区、环境(测试、生产)附加信息到日志中存储,便于排查问题。