亚马逊云服务(AWS)身份和访问管理(IAM)角色(Role)概述

AWS身份和访问管理(IAM)是一项很好的服务,能在AWS云上提供用户访问管理和安全控制。在做自动化管理和第三方服务整合方面,角色是IAM服务的重要组成部分。角色类似于用户,因为它们基于所关联的策略来决定资源访问权限。

在简单的系统中,如果应用程序需要访问AWS资源,你可以用分配给IAM用户access key和access secret,从而实现。但是对于大型系统而言,这种方法不安全且难以管理。 IAM角色在这方面则要好得多,所以就让我们一窥其用法,搞明白为什么它在这方面更胜一筹吧。

角色主要用于三个方面:

1. EC2虚拟机角色

角色最常见的用途是使虚拟机在大型系统中自动工作,特别是在DevOps领域。角色授权C2实例在不使用任何用户或口令/密钥的情况下访问其它AWS资源。

例如,运行在EC2实例上的应用程序需要进行备份操作或出于其他原因而需要访问S3的情况就很可以用角色来实现,且安全策略也已一并做好。不需要为S3创建特殊用户,不需要在虚拟机上放密钥等。没有人能窃取这些凭证,因为它们是与虚机本身做了永久绑定。

另一个例子是在EC2实例上运行部署工具。角色可以妥妥地且安全地实现之,为EC2上没有可以利用的密钥。另外,就算用密钥,当你需要更换钥匙时,你会发现在每个实例上更新密钥是一项艰巨的任务。而角色恰恰通过其与生俱来的功能为应用程序提供了持续地安全防护。

其他强大的基于实例的角色案例还包括HA或故障切换,在这种情况下,虚拟机能够将其自身添加到ELB上或将其自身从ELB上清除,也可以对自己的磁盘做快照抑或备份等等。

但请记住,只有当你启动实例的时候才能关联角色,实例运行之后就不行了。这是严重的限制,所以最好的做法是在启动时赋予所有新实例一些角色(通常是通过分层或功能),但这些角色并没有实际的权限。之后,你就可以为该角色添加或规定IAM 访问政策。

2. 第三方服务角色

AWS建议由角色来向外部第三方服务授予访问权。例如,对于外部安全审计服务而言,应当提供角色来授予临时访问权限。第三方服务机构可以使用Assume Role功能,并通过应用程序接口(API)来取得临时访问凭证,来做角色既定权限内的事。通过与外部身份提供商整合,角色可用于建立身份联合。

3. 跨帐户访问角色

角色还被用来让AWS用户能够从一个AWS账户访问另一个AWS账户的资源。作为一家MSP,我们用此方式来安全地集中管理我们所有员工的账户。云络自己账号中用户,可以在控制台上,直接临时性地切换到客户的控制台,而使用的是客户帐号中对应的角色权限。这有点复杂,将来的博客将对此有更加详细地介绍。

注意,AWS中国尚不支持通过角色在帐号间切换。

每个人都应该更多地了解IAM角色,并把它作为一个强大的,具有前瞻性的安全特性,在你的AWS部署里用起来吧!


Tags: DevOps/自动化, 亚马逊云服务(AWS), 安全, 身份和访问管理(IAM)
Categories: AWS

发表评论

电子邮件地址不会被公开。 必填项已用*标注

* Copy This Password *

* Type Or Paste Password Here *