文档

云资源安全

更新时间:
一键部署

本文介绍了常见的云资源的安全使用,建议结合自身业务特性,按照安全指南和最佳实践进行操作和管理。

阿里云致力于在云产品设计阶段即融入安全理念,确保云服务在初始部署时便具备稳健的安全设置,以此作为安全防护的基石。然而,考虑到用户应用场景的多样性与复杂性,我们也提供了丰富和灵活的自定义配置选项,以适应不同行业及特定业务需求的细微差异,在赋予用户高度的灵活性的同时也要求用户承担起相应的责任。因此我们建议在使用时遵循每个产品的安全指南与最佳实践,结合自身业务特性,审慎的配置与管理云上资源。

一、弹性计算 ECS 的安全性

(一)操作系统安全

操作系统的安全性是 ECS 安全性的基础,从用户登录和操作系统本身的安全性出发,我们建议按以下方式使用和配置:

  1. 登录安全。传统的服务器登录方式为开放公网IP和端口,然后使用账密登录,这种方式存在被扫描破解密码的风险,其登录记录也不能被溯源和审计,建议您使用以下方式:

    1. 通过会话管理连接实例,类似于堡垒机,在不需要密码的情况下能够安全的登录到 ECS 的实例上,并支持对所有登录操作进行追溯

    2. 使用 SSH密钥对,代替账号密码进行登录

    3. 由于 SSH 密钥仅支持Linux实例,如果无法使用 SSH 密钥,推荐使用 ECS uesr账号登录,而不是默认的 root 账号,同时使用 KMS 管理和定期更新登录凭证,避免密码泄露带来的风险

  2. 操作系统安全

    1. 使用安全插件Agent,镜像开启安全加固,对操作系统中存在的安全漏洞进行扫描并定期修复

    2. 使用云安全中心对系统漏洞进行修复,同时对操作系统中存在的木马和病毒进行扫描和修复

    3. 通过系统运维管理的补丁管理自动设置对应的补丁扫描,并且设置对应的修复策略

    4. 如果对安全等保有要求,也可以使用阿里云提供的原生操作系统 Alibaba Cloud Linux等保2.0镜像来提升整个操作系统的安全合规要求

(二)访问控制

在确保操作系统的安全后,您还需要进一步对 ECS 实例的访问做限制。

  1. 账号访问控制

    1. 使用阿里云RAM和资源组对ECS实例进行分组并授权,限制RAM用户只能查看和管理被授权ECS实例

    2. 为ECS实例绑定标签,然后通过RAM的自定义策略指定授权的标签,利用标签限制RAM用户只能查看和管理指定的ECS实例。

  2. 网络访问控制

    1. 安全组:用户基于自身场景的需要将云资源暴露到不同的网络环境,在配置的过程中,应当遵循最小够用原则,在满足业务需求的前提下,尽可能缩小暴露范围,确保资源仅对必要范围内的IP地址开放。

    2. 网络ACL(Access Control List):管理和配置网络层所有出入子网的流量

  3. 本地盘访问控制:通过操作系统层面的文件系统权限来管理本地盘的ECS实例,防止未授权的读写操作

)备份与恢复

最后,您应该对 ECS 实例中的敏感数据进行备份,在遭遇勒索病毒攻击时,可快速恢复业务,从而降低安全事件带来的损失,建议按照以下方式进行备份:

  1. 使用自动快照策略对关键业务数据的云盘进行定期数据备份,应对因误删除、勒索病毒造成的数据丢失或者应用系统故障,需要时可以快速找回云盘数据,以保证业务的连续性

  2. 通过自定义镜像对 ECS 的系统环境配置、实例数据等进行备份,方便在需要的时候快速恢复

二、云数据库 RDS 的安全性

(一)访问限制

数据库中往往存放了重要的业务数据,如果对外暴露可能会引起严重的数据泄漏事件,建议您在使用时严格限制访问范围:

  1. 通过白名单与安全组规则限制访问来源

    1. 创建RDS 实例后,将IP地址添加到白名单,该IP地址所属的设备才能访问该RDS实例

    2. 关联和复用 ECS 安全组策略,仅允许 ECS安全组下的ECS访问RDS

  2. 将 RDS 限制在VPC内网可访问

将 RDS 的网络类型从默认的经典网络切换为VPC,一般选择ECS实例所在的VPC,实现同一VPC下的ECS对 RDS的内网互通。如果自有服务器也需要访问 RDS,可以通过VPN或者专线,将自建IDC的服务器资源接入阿里云。

(二)数据加密

数据库中往往存放了一些敏感数据,比如个人身份信息、联系方式、订单信息等,在传输、存储和使用时建议加密,确保即使物理层遭到攻击或数据被不当访问,数据本身仍然受到保护,常用的一些加密方式包括:

  1. 使用SSL在数据传输时加密:使用SSL对所连接的数据库服务来源进行验证,从而有效避免中间人攻击,确保数据传输过程中的安全与私密。

  2. 数据存储加密:

    1. 透明数据加密 TDE :在数据写入磁盘之前对其进行加密,当数据被应用程序请求时,再进行解密,数据在使用过程中,如查询、更新等操作时,是以明文形式存在的,但在存储层面上,数据则以密文形式存在

    2. 云盘加密:针对RDS云盘版实例,阿里云免费提供云盘加密功能,基于块存储对整个数据盘进行加密,即使数据备份泄露也无法解密,最大限度保护数据安全,而且加密不会影响您的业务,应用程序也无需修改。

(三)数据库备份

您应该定期对数据库进行备份,防止因为硬件故障、人为错误、病毒攻击或数据损坏等原因导致的数据不可用,RDS 默认提供备份功能,同时针对个性化需求也可采用 DBS 备份方式。

  • RDS默认备份:RDS本身提供的备份功能,系统自动进行全量(数据)和增量(日志)备份。

  • DBS备份:高级备份功能,支持跨账号备份、单库或单表备份、异地备份、将备份存储于OSS等。

、对象存储 OSS 的安全性

(一)访问控制

为保证存储在OSS中数据的安全性,OSS资源(包括Bucket和Object)默认为私有权限,只有资源拥有者或者被授权的用户允许访问,不建议您设置为公共读或公共读写。如果要授权第三方用户访问或使用自己的OSS资源,可以通过多种权限控制策略向他人授予资源的特定权限,包括:基于 RAM 子账号的资源访问权限(RAM Policy)、基于单个 Bucket 的访问权限(Bucket Policy)、以及基于单个Object 的访问权限(Object Policy),其中 Bucket 和 Object 可以设置读写权限ACL。

以下是一些常用的配置建议:

  • 根据用户的实际需求场景配置访问权限,如同一 RAM 用户限制只拥有对某一、某几个Bucket的读权限;

  • 敏感 Bucket 限制访问的 RAM 用户、访问来源 IP 等;

  • 对 Bucket 和 Object 设置读写权限ACL,仅当审批通过之后才能拥有对应权限

(二)数据加密

OSS 支持服务端数据加密和客户端数据加密:

  • 服务端加密时,数据在OSS内部被加密,密钥由OSS或KMS管理,主要用于一些高安全性需求的场景,无需频繁访问加密密钥,简化密钥管理

  • 客户端加密时,客户端(如应用程序或用户)负责对数据进行加密,然后再将加密后的数据上传至OSS,解密过程也同样在客户端进行,适用于跨云或多云环境,或者数据高度敏感、合规要求、需要由特定实体解密的情况。

(三)数据备份

OSS提供两种不同的数据保护机制:版本控制和云备份。

  • 版本控制对数据的覆盖和删除操作以历史版本的形式保存下来,在错误覆盖或删除对象(Object)后,能够将存储在Bucket中的Object恢复至任意时刻的历史版本;

  • 云备份常用于灾备、故障等场景,可以对存储空间(Bucket)内的文件(Object)进行定期备份,当出现大规模数据丢失时使用云备份找回数据

两者可以结合使用,为数据提供多层次的保护。

、容器服务的安全性

(一)身份认证和访问控制

  1. 使用RBAC管理用户访问权限,通过角色、集群角色的访问范围限制,精确控制对资源的访问

  2. 集群访问控制:集群访问支持 kubeconfig 和服务账户两种方式

    1. kubeconfig:默认证书的有效期是3年,建议根据实际需要设置有效期,并在疑似泄漏的时候及时吊销凭证

    2. 服务账户:通过上文的 RBAC 机制控制服务账户的访问范围,配置时应遵循权限最小化原则

  3. Pod 访问控制:

    1. 网络策略(Network Policies):通过配置文件可配置 Pod间的网络通信规则,比如允许哪些Pod之间的通信以及通信的端口和协议,有助于提高安全性,减少攻击面。

    2. 部署服务账户令牌卷投影:可动态生成和管理短期、基于 Pod 的令牌,减少因令牌泄露或过期导致的潜在问题

    3. 通过RRSA配置ServiceAccount的RAM权限实现Pod权限隔离

  4. 使用ACK-TEE机密计算,把重要的数据和代码放在一个特殊的可信执行加密环境(TEE),

(二)运行时安全防护

  1. 通过Seccomp等手段限制容器应用对内核进行系统调用,建议参考以下方式设置 Seccomp 策略

    1. 设置 defaultAction为 "deny"。这表示所有未在策略中明确允许的系统调用都会被拒绝,这是Seccomp策略中最基本也是最安全的设置

    2. 根据最小可用原则,只允许应用程序真正需要的系统调用

    3. 对于允许的系统调用,可以进一步限制参数。例如,可以限制 open调用只允许打开特定类型的文件或具有特定标志。

  2. 使用配置巡检动态检查应用负载中的安全隐患

通过使用ACK提供的安全配置巡检功能,可以实时检测集群工作负载中不安全的配置项,并通过直观的报表展现给安全运维人员。巡检完成时,可以通过阅读巡检报告结果,加固工作负载的配置安全。

  1. 使用阿里云云安全中心实现威胁检测与阻断

云安全中心基于云原生的部署能力,实现对容器服务的威胁数据自动化采集、识别、分析、响应、处置和统一的安全管控,结合K8s日志和云平台操作日志实时进行行为审计和风险识别,实现容器服务和编排平台存在的容器逃逸、AccessKey泄露、未授权访问风险。