为WordPress部署安全防护
本文以在弹性云服务器(ECS)上部署WordPress为例,介绍如何利用华为云的云服务与安全措施,构建一个具备多层防御、符合安全基线的WordPress环境。
安全设计原则
- 消除长期凭证:任何资源中不应保存长期有效的凭证信息,例如IAM用户的永久AK/SK、数据库用户名密码等。
- 定期轮转凭证:定期自动轮转数据库密码等凭证信息,以便在意外事件或攻击导致的凭证信息泄露时可以实现漏洞止血。
- 及时修复漏洞:在确定时间周期内修复已知的OS安全漏洞,以符合安全补丁管理基线要求。
- 定期备份数据:定期备份关键数据(如云硬盘、数据库),以确保即使发生了非预期的数据丢失也可以恢复数据。
总体方案
WordPress部署主要通过以下服务实现安全防护。
|
服务 |
作用 |
|---|---|
|
ECS(弹性云服务器) |
部署WordPress,作为访问的入口 |
|
IAM(统一身份认证) |
负责精细化的访问控制和临时授权 |
|
RDS(关系型数据库) |
提供高可用的MySQL数据库,作为WordPress的数据存储层 |
|
DEW(密码安全中心)中的KMS(密钥管理) |
用于云盘加密,托管密钥 |
|
DEW(密码安全中心)中的CSMS(凭据管理) |
负责数据库密码的托管与自动轮转 |
部署架构
在部署WordPress过程中需要创建ECS实例和RDS MySQL数据库,本实践针对这两者做的安全配置如下:
ECS实例
- 通过安全组精细控制ECS实例的出入流量:
WordPress使用80端口,因此安全组放通需要配置添加,任意源0.0.0.0/0访问80端口的规则。
安全组是一种虚拟防火墙,能够控制ECS实例的出入站流量。安全组的入方向规则控制ECS实例的入站流量,出方向规则控制ECS实例的出站流量,详情可参考安全组概述。
- 使用云服务器备份对云服务器周期性备份:
CBR服务提供云服务器备份功能,为部署了WordPress的弹性云服务器配置云服务器备份,设置备份时间、保留规则等,详情可参考快速创建云服务器备份。
- 通过IAM委托获取访问凭据:
实例IAM委托允许您将一个委托关联到ECS实例,在ECS实例内部基于临时凭证访问其他云产品的API,临时凭证将周期性更新。既可以保证云账号AK/SK的安全性(即无需将固定AK/SK明文放入ECS实例内部),也可以借助统一身份认证IAM实现精细化控制和权限管理。
以WordPress项目为例,为ECS服务创建委托,授予“KMS Administrator”、“CSMS FullAccess”权限,详情可参考创建用户组并授权。
- 域名安全管理:
主要包括服务商安全锁和注册局安全锁,可以防止域名被恶意转移、篡改或删除,详情可参考域名安全简介。
RDS 数据库
- 定期轮转RDS凭据:
数据库账号口令、服务器账号口令、SSH Key、访问密钥等凭据的泄露,是当今数据安全面临的主要威胁之一。为了降低数据泄露的安全风险,执行有效的凭据保护和定期轮转非常关键。针对华为云关系型数据库RDS,密码安全中心DEW中支持配置动态RDS凭据,全自动的定期轮换,降低业务数据面临的安全威胁,详情可参考凭据管理概述。
CSMS推荐通过双账号模式轮转RDS凭据。您可以创建两个具有相同权限的数据库账号,凭据轮转时,CSMS会交替更新两个账号的密码,并交换活跃版本,确保应用程序在轮转期间始终有可用的凭据。
- 使用KMS加密数据:
RDS支持云硬盘加密功能,该功能基于KMS对数据进行加密,即使数据备份泄露也无法解密,能够保护您的数据安全,详情可参考设置磁盘加密。