我被要求创建一个策略并将其附加到一个角色:该策略必须做到:
- 描述* AWS 中的一切
- 允许对 EC2 进行有限访问,例如创建实例、创建 AIM、创建快照、连接驱动器等,但我希望根据区域将这些策略附加到此角色。所有这些都是为了避免用户删除跨区域的所有 EC2,因此如果用户错误地删除实例等,他只有权限在该区域删除。有什么想法吗?
谢谢
我通过这样做做到了
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1499242644000",
"Effect": "Allow",
"Action": [
"ec2:*"
],
"Resource": [
"*"
]
},
{
"Sid": "Stmt1499243073000",
"Effect": "Deny",
"Action": [
"ec2:TerminateInstances"
],
"Condition": {
"StringEquals": {
"ec2:AvailabilityZone": "eu-west-2a"
}
},
"Resource": [
"arn:aws:ec2:*:*:instance/*"
]
}
]
}
答案1
AWS 在 IAM 构建器中提供的只读策略可能对你有用;我需要一些更明确的东西,所以我把满足我需求的只读策略。
不幸的是,您只能限制每个区域,而不能限制 AZ——并且并非所有资源都具有接受特定区域参数的 IAM 策略。
通常,将相关资源放入 VPC,然后将相关调用限制为仅在该 VPC 内运行,这样可以获得更好的成功。