【发布时间】:2017-06-02 10:48:34
【问题描述】:
为用户创建了 AWS IAM 策略,以授予仅停止和启动实例的权限,但如果我提供特定实例 ARN 资源,则它不起作用。默认 EC2 只读权限已授予用户描述 EC2 实例以及添加的自定义示例策略,如下所示:
示例政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"ec2:Describe*",
"ec2:StopInstances",
"ec2:RunInstances",
"ec2:StartInstances"
],
"Effect": "Allow",
"Resource": "*"
这行得通
"Resource": "arn:aws:ec2:<region>:<account id>:instance/<instance id>"
"Resource": "arn:aws:ec2:<region>:<account id>:instance/*"
"Resource": "arn:aws:ec2:<region>::instance/*"
"Resource": "arn:aws:ec2:::instance/*"
"Resource": "arn:aws:ec2:::*"
这些不起作用
}
]
}
于 1 月 23 日编辑(以显示我到底做了什么)
目标:向用户授予对单个 EC2 实例的启动和停止实例权限。
测试了不同的组合策略,但除了"Resource": "*"之外,它们都不起作用:
登录: admin_user(完全访问权限)
创建一个实例如下:
地区:俄勒冈州
可用区: us-west-2c
实例 ID: i-xxx3dxxx32xxxxxxe
所有者: xxx23xxx11
创建了一个用户: testec2_user
授予用户的权限:
- EC2 只读(可用策略)
-
自定义策略只允许停止和启动 i-xxx38xxx32xx45 实例如下:
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ec2:Describe*", "ec2:RunInstances" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "ec2:StopInstances", "ec2:StartInstances" ], "Effect": "Allow", "Resource": "arn:aws:ec2:us-west-2c:xxx23xxx11:instance/i-xxx3dxxx32xxxxxxe" } ] }
以testec2_user 登录并尝试启动停止的实例并收到以下错误:
You are not authorized to perform this operation. Encoded authorization failure message
我计划使用 AWS 的 sts decode authorization message 对收到的消息进行解码。
【问题讨论】:
标签: amazon-web-services amazon-ec2 amazon-iam policy