配置IAM策略变量和TAG来控制EC2开关机权限教程
为了让EC2使用者自主控制EC2实例的开关机实例,需要设置相应策略给每个用户。
使用策略变量可以尽最大程度复用策略内容。
策略变量
在编写策略时,可以包含变量。
系统在验证策略时,会把变量用实际值替换掉来验证。
例如
- ${aws:username}
会被当前用户的实际用户名所替代
- ${aws:CurrentTime}
是当前时间
- ${aws:SourceIp}
是访问者的IP地址。
EC2的TAG
我们可以给EC2打上各种TAG来标记它的属性或状态。
这里,我们需要给EC2打上一个名为Operator的TAG,值为可以操作它的IAM的username。
假设给某一台EC2给一个值为TEST1的TAG。表明TEST1用户可以对这台机器进行操作。
IAM组
我们创建一个IAM组,自定义策略为
- {
- “Version”: “2012-10-17″,
- “Statement”: [
- {
- “Effect”: “Allow”,
- “Action”: [“ec2:DescribeInstances”],
- “Resource”: [
- “*”
- ]
- },
- {
- “Effect”: “Allow”,
- “Action”: [“ec2:RebootInstances”,”ec2:StartInstances”,”ec2:StopInstances”],
- “Condition”: {
- “StringEquals”: { “ec2:ResourceTag/Operator”: “${aws:username}” }
- },
- “Resource”: [“*”]
- }
- ]
- }
大致功能为:
- 组员可以查看EC2实例(DescribeInstances)
- 可以重启,关闭,启动与他的useranem有相同Operator tag值的实例
- 不能新建EC2实例(没有显示赋予权限,即无此权限)
最后把TEST1用户加入这个组中,TEST1用户就能启动,关闭自己所能管理的服务器了。