安全管理最佳实践系列:账号安全管理

在企业上云的所有安全威胁之中,最严重的威胁莫过于账号密码或AK (Access Key)泄露。一旦泄露密码或AK,最坏情况可能导致你的企业破产,就像CodeSpaces因密码泄露而被勒索者删除云上所有数据及备份一样。

也许你会侥幸认为“这不会发生在我身上吧?”,未必!根据CSA 2016对业界主流云服务商的客户安全威胁分析报告,发现特权账户密码/AK等敏感数据泄露已经成为云安全Top-12威胁之首。

1

很有可能,你的账号密码和AK早已落入他人之手。 那还有什么补救措施吗?有的,它就是RAM!RAM是阿里云为客户上云所免费提供的身份管理与访问控制服务。通过RAM提供的能力,客户可以在云上实施安全最佳实践,可以从根本上降低或避免因为账号密码或API密钥泄露所导致的IT或信息安全风险。

话不多说,即刻动手使用RAM开启您的安全最佳实践!

禁止云账号密码共享

账号密码泄露的罪魁祸首之一就是多人共享云账号密码,很多人都知道的“秘密”就不是秘密了。共享账号密码的问题很多,除了更容易泄露之外,你也会无法限制每个人的权限,而且无法审计或追踪每个人都干了些什么。

解决云账号共享问题的办法就是为每个员工创建独立的RAM用户账号(相当于企业的域用户账号),让员工使用RAM用户账号进行日常工作。

进入RAM控制台开始管理你的用户。

如果您的企业已经有部署域账号系统,那么您可以将域用户同步到RAM用户目录(不要同步密码信息),并开启SSO单点登录,这样就能使用企业域账号来实现本地身份和云上身份的统一登录管理。具体方法请参考SSO实践文档

给所有登录用户开启MFA

MFA (Multi-Factor Authentication) 是一种简单有效的最佳安全实践方法,它能够在用户名和密码之外再额外增加一层安全保护。启用 MFA 后,用户登录阿里云网站时,系统将要求输入用户名和密码(第一安全要素),然后要求输入来自MFA应用的一次性验证码(第二安全要素)。这些多重要素结合将为您的账户提供更高的安全保护,密码泄露不再是问题。

  • 为云账号开启MFA:
    打开“账号管理” -> “安全设置”,进入“虚拟MFA”进行设置。

2

  • 为RAM用户开启MFA:
    打开“RAM控制台” -> “用户管理”,选择用户,进入用户详情页进行操作。

3

集中管理RAM用户的登录安全策略

你可以在RAM中设置所有用户的密码强度及登录限制。比如,要求所有RAM用户的密码长度不低于10个字符,而且必须同时包含小写字母、大写字母、数字及特殊字符;密码每90天轮转;禁止最近3次密码重复使用;1小时内最多5次试错。RAM几乎可以满足所有大企业IT的严苛用户安全治理要求。

4

此外,你还可以通过安全设置功能,设定RAM用户登录掩码以限制用户的登录源IP。进一步,你还可以控制登录Session过期时间,可以控制RAM用户是否可以自助管理密码、AK和MFA。

5

永远不要给云账号创建AK

为云账号创建的AK俗称“大AK”,因为云账号是超级管理员,具有该账户的所有资源操作权限,没有任何手段能限制这个超级管理员权限!如果大AK一旦丢失,风险极不可控。因此阿里云强烈建议客户禁用云账号“大AK”,替换方法是使用STS-Token(针对运行在云环境上的应用程序)或者是使用RAM用户“小AK”(针对运行在传统IT环境中的应用程序)。

6

使用STS-Token(动态API访问令牌)来取代AK(静态API密钥)

云应用开发者经常遇到的挑战就是如何在开发中管理云服务的访问密钥(AK)。这一直以来都是极其重要的课题。理想情况是让开发者永远不要碰密钥,让密钥永远不要出现在开发环境中,不要明文放在配置文件里,更不要check-in到代码库。

如果您的应用程序是部署在阿里云ECS上,那么针对此问题我们提供了一个根本的解决方法 —— 通过给ECS实例配置RAM角色来实现STS-Token取代静态AK配置,彻底避免AK泄露及安全运维的难题。解决方案的详细介绍请参考 使用动态的STS-Token取代静态的AK

如果您的应用程序是部署在阿里云之外,那么你将无法享受这种高级安全解决方案。我们推荐你使用下面介绍的“RAM用户AK+限制条件”的方案。

使用RAM用户AK+条件限制

RAM用户的权限是可以被控制的,那么就意味着RAM用户AK泄露的风险是可控的。首先,您需要针对RAM用户实施最小授权原则,按需授权,一旦出现风险还可以随时撤销RAM用户权限。

仅解决RAM用户的最小授权问题还不够,AK一旦泄露,还是可能存在高风险(这个风险就要看“小AK”的权限到底有多“小”)。解决这个问题的方法之一就是限制应用程序的访问源IP地址。

假设你的企业IP出口地址范围是42.120.72.0/22,根据你企业的安全管理策略,要求所有的数据访问请求必须来自于你的企业网络,要能确保万一AK泄露到外网那也不能访问你的云上数据。

首先,你可以创建一条自定义授权策略(DenyAccessPolicyWithIpConditions),拒绝所指IP范围之外的所有请求。

7

然后,给RAM用户组(假设为oss-readers用户组)授权,如下图样例所示,包括允许访问OSS的授权策略和DenyAccessPolicyWithIpConditions策略。

8

结语

本文介绍了阿里云提供的一些基本安全管理最佳实践能力,掌握并持续遵循这些最佳实践,您的云安全管理水平就可以到达60分了。上云切记,没有绝对安全,只有最佳实践!