IAM是AWS架构中对哪些用户能够对哪些资源进行访问这一部分的控制。也就是当用户对AWS内资源进行访问时,IAM可以对用户的权限进行限制,通过IAM来控制哪些人可以使用AWS内的资源。在AWS中有区域和可用区的概念,而IAM不受区域的限制,在IAM内生成的用户,策略,角色等可以在任何区域内使用。
当注册AWS账号(根用户)之后,账号的持有者会自动地被赋予访问所有AWS服务的权限。根用户可以在AWS中生成很多IAM用户,默认情况下,新生成的IAM用户没有任何访问AWS服务的权限,想要IAM用户访问某个AWS服务,必须对其赋予相应的权限,出于安全性的考虑,对IAM用户赋予权限的时候应遵守最小权限的原则。比如说,某个公司的老板拥有根用户,然后他的某位员工只需要访问S3中保存的数据,那么应该给这个员工最小的权限,也就是S3内对象的只读权限即可,除此之外的EC2或者RDS相关权限一概不赋予。
当使用拥有访问权限的IAM用户时,可以对某些AWS服务进行访问,比如对EC2实例进行访问的时候,为了获得访问权限,可以将IAM用户的密钥存放在EC2实例上,但是非常不推荐这种做法。
对根账户或者IAM用户都可以激活MFA,MFA是多重验证的意思,一旦对根账户或者IAM用户激活MAF之后,当用户登录AWS后台的时候,不仅仅需要用户名和密码,另外还需要一个随机生成的六位数字验证码。这个验证码是每5秒变化一次的,所以能尽可能地保证账户的安全性。激活的方法也很简单,只需要使用智能手机下载Google或者Authy的身份验证器,然后利用这个身份验证的应用扫描一下二维码(在激活MFA步骤中)即可进行认证绑定。
当需要利用AWS管理控制台对AWS进行管理的时候,尽可能使用IAM用户,而非根用户,可以对这个IAM用户赋予管理者权限。在生成IAM用户的时候可以选择访问类型,类型中分编程访问和AWS管理控制台访问。编程访问即当利用AWS的开发包进行开发,并且需要访问其他AWS服务的时候,需要使用当前的IAM用户的访问密钥和私有访问密钥来进行认证。而管理控制台访问就是一般的登陆到AWS管理后台对AWS进行管理的访问。当对IAM用户生成访问密钥和私有访问密钥的时侯,AWS提供用户下载这两个密钥的信息,但为了安全性,私有访问密钥的信息只显示这一次,如果忘记某个IAM用户的密钥的时候,只能对它重新生成新的密钥,同样新生成的私有访问密钥只显示一次,而每个IAM用户只有创建两个访问密钥的权限。
IAM用户组,当有很多用户需要管理,并且这些用户的权限都大致相同时,为了方便管理,可以生成用户组来管理用户,赋予权限时可以将IAM策略直接赋予给用户组,这样同样的权限同时会赋予到用户组中的所有用户上。
对IAM用户还可以应用密码策略,也就是当对这些IAM用户生成密码的时候,我们自己可以指定密码应该满足什么样的条件,比如说密码至少要8位,其中至少有英文字母等。当利用IAM用户登录到AWS后台的时候需要利用AWS为IAM用户生成的登陆链接。
一个IAM用户可以拥有多个IAM策略,IAM策略在别的篇章里介绍。
网友评论