AWS EC2 启动/停止实例的 IAM 策略
Posted
技术标签:
【中文标题】AWS EC2 启动/停止实例的 IAM 策略【英文标题】:IAM Policy for AWS EC2 start/stop instance 【发布时间】:2015-11-11 16:43:20 【问题描述】:我希望用户能够登录到 aws 帐户并启动和停止一个特定的 ec2-instance。 到目前为止,我发现 ec2 describe 仅适用于资源中的全部星号“*”。 用户可以登录,查看所有实例,但由于出现权限被拒绝错误,他无法启动或停止实例:(
这是我的政策
"Version": "2012-10-17",
"Statement": [
"Sid": "TheseActionsDontSupportResourceLevelPermissions",
"Effect": "Allow",
"Action": [
"ec2:Describe*"
],
"Resource": "*"
,
"Sid": "TheseActionsSupportResourceLevelPermissions",
"Effect": "Allow",
"Action": [
"ec2:TerminateInstances",
"ec2:StopInstances",
"ec2:StartInstances"
],
"Resource": "arn:aws:ec2:eu-central-1a:MY_ACCOUNT_ID:instance/MY_INSTANCE_ID"
]
【问题讨论】:
我最初开始阅读这篇文章,仍然无法弄清楚它有什么问题blogs.aws.amazon.com/security/post/Tx2KPWZJJ4S26H6/… 然后有一个很好的工具,但似乎只要我限制资源启动/停止不再工作了...policysim.aws.amazon.com 【参考方案1】:答案是,你不能。
ec2:Stopinstances
、ec2:StartInstances
和 ec2:TerminateInstances
确实支持资源级权限,但不支持实例 ID 的条件键。它们支持条件键:
这在文档here 中突出显示。 (在页面搜索API调用)
唯一可能有用的条件键是ec2:ResourceTag/tag-key
。您可以在特定实例上添加资源标签,并允许用户权限在具有该标签的实例上调用这 3 个 API 调用。
但是,除非您拒绝了与标签相关的 API 调用,否则没有什么可以阻止用户将标签添加到另一个实例,并在该实例上执行 API 调用。您需要确定拒绝标记是否适合您的情况。
希望这会有所帮助。
【讨论】:
如果回答了您的问题,请不要忘记将答案标记为正确 :) 我试图支持它,但我没有足够的声誉 你不需要投票,你只需要点击勾号将其标记为正确:)以上是关于AWS EC2 启动/停止实例的 IAM 策略的主要内容,如果未能解决你的问题,请参考以下文章
AWS IAM 策略拒绝对自动扩展组或 ECS 集群内的任何 EC2 实例的权限
创建 AWS IAM 策略,将正在运行的实例限制为特定安全组
编写 IAM 策略,其中任何具有 EC2 完全访问权限的用户都不能删除 AWS 账户中任何其他用户的实例
AWS Elasticsearch Service IAM 基于角色的访问策略