一般而言,如果用户想要访问阿里云ECS中的各类OSS资源,往往需要把阿里云账号的Access Key ID及Access Key Secret(简称AK)设置在ECS中,再通过这个AK来调用OSS的OPENAPI以达到从OSS中存取各类文件的目的——然而这种做法经常会带来资源泄露、权限限制、维护和更改程序繁琐等问题。
为了改变传统的把用户AK直接写死在ECS实例中的模式,以及为用户提供安全、权限可控、容易维护的访问阿里云各类云资源的方式,2017年10月31日,阿里云ECS推出了“ECS实例RAM角色”这一全新功能。
研发背景
通过AK调用OSS的OPENAPI来获取OSS中存取的各类文件,这种传统的做法容易带来以下这些问题:
lÂ
直接存储在ECS中的AK可能会因为各种原因出现泄漏的情况;
lÂ
AK的权限较大,无法更细致的限制当前ECS的具体权限,比如只允许当前的ECS以只读的方式访问某个Bucket;
lÂ
假设AK因为某些原因需要变更,那么您需要逐个实例手动进行修改。
ECS实例RAM角色的运用,能够为运行于ECS实例中的应用赋予可控的访问权限,通过MetaData获取的一个临时STS Token,即可访问“RAM角色”中授权过的各类云资源:
lÂ
ECS实例RAM角色所提供的临时安全token(STS Token)可以更方便地访问已授权的云资源;
lÂ
STS Token会每六小时内刷新一次,大大地降低了泄露所带来的风险;
lÂ
STS Token所拥有的权限完全可控,用户可以随时进行权限的更改和维护。
场景应用
安全、易维护、精细化的权限控制,“ECS实例RAM角色”功能可以方便快捷地在阿里云ECS中访问各类阿里云云资源,它适用于各种需要在ECS实例中访问阿里云云产品OPENAPI的场景,包括:
lÂ
需要在当前ECS实例中读写指定OSS资源的情况;
lÂ
需要在当前ECS中获取账户下ECS资源的各种信息的,如获取账号下其他ECS资源的外网IP信息;
lÂ
需要在当前ECS中自定义运维策略的,如定时开启/关闭指定的ECS实例;
lÂ
需要在当前ECS中获取RDS资源相关信息的;
lÂ
其他各类需要在ECS中完成的对各类阿里云资源的相关操作。
实操示例
目前阿里云是国内第一家推出“ECS实例RAM角色”功能的云厂商,点击此处即可免费试用。以“在ECS中只读访问所有OSS资源”为例,以下介绍ECS实例RAM角色具体的使用步骤:
1.Â
登录阿里云访问控制控制台,进入角色管理,点击“新建角色”;
2.Â
选择“服务角色”->“ECS云服务器”;
3.Â
输入角色名称,这里设置为“OSSReadOnly”,点击“创建”;
4.Â
点击“授权”->“编辑授权策略”,对角色进行授权;
5.Â
选择“AliyunOSSReadOnlyAccess”,并点击“确定”,至此“ECS实例RAM角色”就创建并授权好了;
6.Â
进入阿里云ECS购买页面,在“RAM角色”中选择刚刚创建的“OSSReadOnly”,设定其他购买选项后,购买的ECS实例即拥有了“OSSReadOnly”的角色;
7.Â
远程连接进入实例,使用metadata即可获得该角色所提供的STS Token信息;
8.Â
使用所获取的Token,在ECS中利用OSS的OPENAPI来进行OSS信息的读取。
更多“ECS实例RAM角色”功能的使用,点击此处即可了解:https://yq.aliyun.com/articles/261926。