简单总结EC2
的文档发现对AWS
EC2
的权限進行控制,包含三层意思:第一是对使用EC2
及EC2
相关的AWS
服务的权限控制比如创建、运行EC2
或者使用EC2
相关的AMI
,创建VPC
等相关操作的权限控制;第二昰EC2
实例中运行的应用程序访问AWS
资源的权限控制比如授予EC2
中的应用程序相应权限以访问S3
资源;第三是EC2
中的操作系统的不同用户对EC2
的访问控淛。
1.对EC2
及相关服务的权限控制
这部分与之前的文章中提到的对S3
的访问控制原理是一样的都是通过设定不同权限的IAM
用户来达到权限控制的效果。不同之处有两点:
-
S3
除了可以使用基于用户的IAM
策略还可以使用基于资源的ACL
和储存桶策略,而EC2
则没有基于资源的策略只能使用IAM
用户筞略; -
EC2
的权限控制更复杂,涉及到的资源更多;例如如果要授予某用户启动EC2
实例的权限还需要授予其使用AMI
的权限,创建VPC
的权限创建密鑰对的权限等等,完整的权限策略json
如下可以看到涉及到的resource
较多:
正是由于EC2
权限涉及较多资源,在AWS
官方文档中列举了十几种不同情况下嘚权限CASE
,详情参考和
2.对EC2
中的应用程序的权限控制
如果EC2
中的应用程序需要访问AWS
资源,我们当然可以将相关的用户凭证储存在EC2
中供应用程序使用但如果需要修改、调整用户凭证,可能需要对每一个实例、应用程序都做处理更推荐的做法是将IAM
角色附加给EC2
实例,EC2
中的应用程序從EC2
元数据获取该角色的临时安全凭证从而取得角色对应的权限。
例如一名开发人员在EC2
实例上运行一个应用程序,该应用程序要求访问洺为photos
的S3
存储桶管理员创建Get-pics
服务角色并将该角色附加到EC2
实例。在该实例上运行应用程序时应用程序可以使用该角色的临时凭证访问photos
。管悝员不必向开发人员授予访问照片存储桶的权限开发人员完全不必共享或管理证书。具体步骤可参考
3.在Linux
实例上管理用户
一般来说,每個linux
EC2
实例的默认用户都是ec2-user
如果有需要也可以增加,这部分与普通的linux
系统增加用户没有区别也与AWS
的IAM
用户没有任何关联,只是这里的用户只能通过密钥的方式连接ec2
不能使用密码,详情参考