上篇豆子回顾了怎么创建一个基本的用户组和用户并绑定MFA设备,这一篇我们来看看如何自定义Roles(角色),该角色绑定的EC2的实例将自动有权限访问S3 bucket。豆子还做了一个对比试验来验证该自定义角色是否工作。


首先点开IAM,Create New Role


AWS - IAM 的管理(下)_ roles


取名叫做 EC2-S3

AWS - IAM 的管理(下)_ roles_02


选择 Amazon EC2,注意说明“允许EC2实例代表来访问其他服务”

AWS - IAM 的管理(下)_ roles_03


模板选择 S3 Full Access

AWS - IAM 的管理(下)_aws_04


自动生成的JSON语句

AWS - IAM 的管理(下)_aws_05

AWS - IAM 的管理(下)_aws_06


创建好了

AWS - IAM 的管理(下)_ iam_07


接下里我们来做个试验。 我已经有了一个Web Server的EC2实例了,我在上面跑了一个wordpress的博客。默认创建的时候我并没有分配任何角色给他,也就是说他没有权限访问aws上的其他服务。


接下来我要创建一个新的实例,并分配自定义的角色给他。


AWS - IAM 的管理(下)_ roles_08


创建一个linux ami 实例

AWS - IAM 的管理(下)_aws_09


免费的Micro 类型

AWS - IAM 的管理(下)_aws_10


IAM Role选择自定义的ec2-s3


AWS - IAM 的管理(下)_ roles_11


AWS - IAM 的管理(下)_aws_12



AWS - IAM 的管理(下)_ roles_13

AWS - IAM 的管理(下)_ iam_14

AWS - IAM 的管理(下)_ iam_15


创建过程很简单,就不赘述了。


创建完成之后,用他的公网IP从putty登陆,记得SSH的验证方式选择对应的证书


AWS - IAM 的管理(下)_ roles_16


登陆之后,先看看python的版本 (默认已经安装了)


AWS - IAM 的管理(下)_ iam_17


然后安装PiP

AWS - IAM 的管理(下)_ iam_18

验证成功安装

AWS - IAM 的管理(下)_ iam_19

升级PIP到最新版本

AWS - IAM 的管理(下)_ roles_20


然后通过PIP安装最新的awscli 命令行工具

AWS - IAM 的管理(下)_aws_21


安装之后看看能否访问S3, 访问成功,列出了我的S3 bucket

AWS - IAM 的管理(下)_ iam_22


控制台确认一下,没错!

AWS - IAM 的管理(下)_ roles_23



同样的方式,登陆到我的web server,安装命令行工具,执行命令,报错!无权限访问。

AWS - IAM 的管理(下)_ roles_24



对比试验成功!


补充一下:EC2不支持在已经运行的实例上更改或者删除角色,只能在创建之初配置。如果需要更改,只能在其现有的角色上更改权限。