为何已配置DescribeInstances权限的Lambda仍抛出权限错误?
问题原因及解决方案
原因
问题出在IAM策略中ec2:DescribeInstances操作的资源配置上:
- EC2的
DescribeInstancesAPI不支持资源级权限控制,没法通过指定单个实例ARN来限制该操作的作用范围。 - 你当前的策略把
Resource设为了具体的实例ARN,这条权限规则实际不生效,导致Lambda调用DescribeInstances时触发权限错误。 - 而
ec2:StartInstances和ec2:StopInstances是支持资源级权限的,所以这两个操作能正常执行。
解决方案
修改IAM策略,为ec2:DescribeInstances单独配置资源为"*"的允许规则,同时保留启停操作的实例级资源限制(遵循最小权限原则):
{ "Sid": "", "Effect": "Allow", "Action": [ "ec2:StopInstances", "ec2:StartInstances" ], "Resource": "arn:aws:ec2:us-east-1:############:instance/i-#############" }, { "Sid": "", "Effect": "Allow", "Action": "ec2:DescribeInstances", "Resource": "*" }
内容的提问来源于stack exchange,提问作者S. Davenport
相关产品推荐
相关产品推荐

