如今各家云厂商都通过给用户提供API调用的方式来实现一些自动化编排方面的需求。为了解决调用API过程中的通信加密和身份认证问题,大多数云厂商会使用同一套技术方案—基于非对称密钥算法的鉴权密钥对,这里的“密钥对”即API凭证,是云上用户调用云服务API、访问云上资源的唯一身份凭证。
在信息安全领域有一个广为认可的假定,即所有系统都是可攻破的,这里的“攻破”是广义的,可以是外部攻击,也可以是恶意内部威胁(insider threat),当然也可能是无心泄漏导致的潜在威胁。API凭证(在阿里云被称为AccessKey)作为用户访问内部资源最重要的身份凭证,被外部人员恶意获取或被内部员工无心泄露的案例时有发生,其导致的数据泄露非常严重,因此如何做好API凭证管理和监测就显得非常重要。
一、API凭证的安全现状
API凭证相当于登录密码,只是使用场景不同。前者用于程序方式调用云服务API,而后者用于登录控制台。
在阿里云,用户可以使用AccessKey构造一个API请求(或者使用云服务SDK)来操作资源。AccessKey包括AccessKeyId和AccessKeySecret。其中AccessKeyId用于标识用户,AccessKeySecret是用来验证用户的密钥。AccessKeySecret必须保密。在阿里云,它们看起来像这个样子:
(图1)阿里云AK样式(图1)阿里云AK样式
在大多数AK泄露的案例中