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


首先点开IAM,Create New Role


AWS - IAM 的管理(下)_第1张图片


取名叫做 EC2-S3

AWS - IAM 的管理(下)_第2张图片


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

AWS - IAM 的管理(下)_第3张图片


模板选择 S3 Full Access

AWS - IAM 的管理(下)_第4张图片


自动生成的JSON语句

AWS - IAM 的管理(下)_第5张图片

AWS - IAM 的管理(下)_第6张图片


创建好了

AWS - IAM 的管理(下)_第7张图片


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


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


AWS - IAM 的管理(下)_第8张图片


创建一个linux ami 实例

wKioL1OyM4CgpQHTAAA2F3s_k-E335.png


免费的Micro 类型

AWS - IAM 的管理(下)_第9张图片


IAM Role选择自定义的ec2-s3


AWS - IAM 的管理(下)_第10张图片


AWS - IAM 的管理(下)_第11张图片



AWS - IAM 的管理(下)_第12张图片

AWS - IAM 的管理(下)_第13张图片

AWS - IAM 的管理(下)_第14张图片


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


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


AWS - IAM 的管理(下)_第15张图片


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


wKioL1OyM4_Sfry2AAAHBJkSNwU546.png


然后安装PiP

wKiom1OyM7_wkWHzAAAOr5Tjpz8588.png

验证成功安装

AWS - IAM 的管理(下)_第16张图片

升级PIP到最新版本

AWS - IAM 的管理(下)_第17张图片


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

wKioL1OyM5SiVB_AAAAgSeXcr-k058.png


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

wKiom1OyM8OydsKmAAAI8rQ5VJY500.png


控制台确认一下,没错!

AWS - IAM 的管理(下)_第18张图片



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

wKiom1OyM8TSb-YkAAANSNcoC_M084.png



对比试验成功!


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