引言
2021年初,国内一起删库跑路事件的判决公布,某企业员工利用其担任公司数据库管理员并掌握公司财务系统root权限的便利,登录公司财务系统服务器删除了财务数据及相关应用程序,致使公司财务系统无法登录,最终被判处有期徒刑7年。
这起云上安全事故的发生虽是由于恶意人为所导致的,但也暴露了云上身份权限的风险。而身份和密钥的管理,是企业上云的重中之重;每年国内外都有因为身份和密钥的管理不善,或泄露,或误操作导致严重的生产事故或者数据泄露。本期小编将重点聊聊云上身份的那些值得关注的事儿。
第一步,云上安全从保障云账号安全使用开始
我们开始使用阿里云服务前,首先需要注册一个阿里云账号,它相当于操作系统的root或Administrator,所以有时称它为主账号或根账号。我们使用阿里云账号进行资源的购买和服务的开通,也同时对名下所有资源拥有完全控制权限。主账号对应着完全不受限的权限,让我们列举一下因主账号未规范使用所导致的安全隐患:
× 不要使用主账号进行日常操作:不但有误操作的风险,还有账号被盗而导致的数据泄露、数据被删除等更大的风险。
× 不要使用主账号的AccessKey(简称AK):在阿里云,用户可以使用AccessKey构造一个API请求(或者使用云服务SDK)来操作资源。AK一旦暴露公网,将失去整个主账号的控制权限,极大概率造成难以评估的损失,并无法做到及时止血。
第二步,启动RAM用户,授予不同权限并分配给不同人员使用
正因为主账号使用风险大,阿里云RAM为用户提供权限受控的子账号(RAM SubUser)和角色(RAM Role)访问云服务,避免让用户直接使用主账号访问。这期将重点谈谈,利用RAM把主账号的权限按需授予账号内的子账号,以及用户常见的问题。
RAM用户创建与授权
通过RAM为名下的不同操作员创建独立的RAM用户并授予相应权限。
要点一:员工不要共享账号,包括密码,MFA,AK。
要点二:遵循“最小权限”的授权原则,除此之外,还可以通过限制访问发生时的环境条件,来保障RAM用户的安全使用:
- 登录场景是否通过MFA校验
- 限制访问者的登录IP地址
- 限制访问者的登录时间段
- 限制访问方式(HTTPS/HTTP)
设置合适的密码策略
- 设置RAM用户密码强度
为了保护账号安全,您可以编辑密码规则,包括密码强度(长度+字符)、密码过期策略 、重复历史密码策略以及错误密码最大重试次数策略进行密码设置。
- 启用多因素认证
为访问者设置MFA验证,动态口令将消除密码泄露伤害。
访问密钥(AccessKey)的规范使用
访问密钥(AccessKey)是RAM用户的长期凭证。如果为RAM用户创建了访问密钥,RAM用户可以通过API或其他开发工具访问阿里云资源。AccessKey包括AccessKey ID和AccessKey Secret。其中AccessKey ID用于标识用户,AccessKey Secret是用来验证用户身份合法性的密钥。
1. AccessKeySecret只在首次创建时显示,不提供后续查询:
假设通过API可以查询到其他的AccessKeySecret,那所有的AccessKey都有泄露的风险,安全问题防不胜防,因此请在创建AccessKey时及时保存。
2. 一个子用户最多拥有两个AccessKey:
为了保障使用安全, 用户应只使用一个AK,另外一个AK则是用来进行永久AK的定期轮转使用,或者面对泄露情况,进行紧急轮转,已降低损失。
3. AK需要定期轮转:
如果您的访问密钥已经使用3个月以上,建议您及时轮换访问密钥,降低访问密钥被泄露的风险。首先创建用于轮换的第二个访问密钥。再禁用(而不是删除)原来的访问密钥。然后,验证使用访问密钥的所有应用程序或系统是否正常运行。最后删除原来的访问密钥。
定期审计账号的使用,回收不活跃的身份密钥
- 通过ActionTrail可以查看用户对资源实例进行操作的记录。
- 通过用户凭证报告(CredentialReport)全局把控员工的密钥情况:密码登录记录、AK使用记录、AK轮转记录。
身份/密钥先禁用再删除
身份/密钥需要遵循先禁用再删除的原则,避免删除正在只用的AK,影响业务进度,造成生产事故:
- 确认密钥不在使用
- 禁用密钥,随时可恢复
- 密钥禁用一段时间后,确认无任何不良影响,再删除密钥
最佳实践分享:保持企业云账号最基本的安全性、运维便捷性而进行的最小化配置。
初创企业IT治理样板间
初创企业样板间是保持企业云账号最基本的安全性、运维便捷性而进行的最小化配置,降低初创企业随着规模扩大逐渐提升的云上风险,让初创企业可以快速实现:
- 主账号安全
- 权限可控
- 网络隔离
同时可以通过控制台操作、Terraform代码、CLI代码这3种方式进行快速启用。