简单总结EC2
的文档发现,对AWS EC2
的权限进行控制,包含三层意思:第一是对使用EC2
及EC2
相关的AWS
服务的权限控制,好比建立、运行EC2
或者使用EC2
相关的AMI
,建立VPC
等相关操做的权限控制;第二是EC2
实例中运行的应用程序访问AWS
资源的权限控制,好比授予EC2
中的应用程序相应权限以访问S3
资源;第三是EC2
中的操做系统的不一样用户对EC2
的访问控制。html
EC2
及相关服务的权限控制这部分与以前的文章AWS实战 - 利用IAM对S3作访问控制中提到的对S3
的访问控制原理是同样的,都是经过设定不一样权限的IAM
用户来达到权限控制的效果。不一样之处有两点:linux
S3
除了可使用基于用户的IAM
策略,还可使用基于资源的ACL
和储存桶策略,而EC2
则没有基于资源的策略,只能使用IAM
用户策略;EC2
的权限控制更复杂,涉及到的资源更多;例如若是要授予某用户启动EC2
实例的权限,还须要授予其使用AMI
的权限,建立VPC
的权限,建立密钥对的权限等等,完整的权限策略json
以下,能够看到涉及到的resource
较多:{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:region::image/*", "arn:aws:ec2:region:account:instance/*", "arn:aws:ec2:region:account:volume/*", "arn:aws:ec2:region:account:key-pair/*", "arn:aws:ec2:region:account:security-group/*", "arn:aws:ec2:region:account:subnet/*", "arn:aws:ec2:region:account:network-interface/*" ] } ] }
正是因为EC2
权限涉及较多资源,在AWS
官方文档中,列举了十几种不一样状况下的权限CASE
,详情参考使用AWS CLI或AWS SDK的策略示例和用于Amazon EC2控制台的策略示例。json
EC2
中的应用程序的权限控制若是EC2
中的应用程序须要访问AWS
资源,咱们固然能够将相关的用户凭证储存在EC2
中供应用程序使用,但若是须要修改、调整用户凭证,可能须要对每个实例、应用程序都作处理。更推荐的作法是将IAM
角色附加给EC2
实例,EC2
中的应用程序从EC2
元数据获取该角色的临时安全凭证,从而取得角色对应的权限。segmentfault
例如,一名开发人员在EC2
实例上运行一个应用程序,该应用程序要求访问名为photos
的S3
存储桶。管理员建立Get-pics
服务角色并将该角色附加到EC2
实例。在该实例上运行应用程序时,应用程序可使用该角色的临时凭证访问photos
。管理员没必要向开发人员授予访问照片存储桶的权限,开发人员彻底没必要共享或管理证书。具体步骤可参考使用IAM角色向在Amazon EC2实例上运行的应用程序授予权限。安全
Linux
实例上管理用户通常来讲,每一个linux EC2
实例的默认用户都是ec2-user
,若是有须要也能够增长,这部分与普通的linux
系统增长用户没有区别,也与AWS
的IAM
用户没有任何关联,只是这里的用户只能经过密钥的方式链接ec2
,不能使用密码,详情参考在Linux实例上管理用户帐户。ide