有没有办法限制 EC2 实例的 IAM 策略?它只能运行一小部分文档 - 我尝试限制对 ssm:GetDocument 的访问,如下所示:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:GetDocument"
],
"Resource": [
"arn:aws:ssm:ap-southeast-2:*:document/MyCommand"
]
}
]}
但我可以在实例上运行任何命令,仍然包括 AWS-RunPowershellScript 文档。
此链接显示如何限制用户的 ssm:sendCommand:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/delegate-commands.html http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/delegate-commands.html
我还没有找到一种方法来限制基于文档的SendCommand。如果用户无权访问,您会收到如下错误:
用户:arn:aws:iam::123456789012:user/username 无权对资源执行:ssm:SendCommand:arn:aws:ec2:us-east-1:123456789012:instance/i-01234567890abcdef
这表明SendCommand中的资源可以根据实例id进行限制。如果其中一个条件是文档 ARN,那就太好了,但到目前为止我还没有找到任何方法来实现它(这不是策略生成器向导中的条件)。
更新:我在AWS论坛上发布了这个问题,希望能得到答复:https://forums.aws.amazon.com/thread.jspa?threadID=249039 https://forums.aws.amazon.com/thread.jspa?threadID=249039
更新 2:我得到了回复,解决方案是要完成此操作,您必须使用 Resource 来指定允许运行命令的实例以及允许用户运行的文档。例如,这就是我最终得到的结果:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:SendCommand"
],
"Resource": [
"arn:aws:ec2:*:123456789012:instance/*",
"arn:aws:ssm:*:123456789012:document/RestartServices"
]
}
]
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)