(具体资源)AWS Lambda:提供的执行角色无权调用EC2上的DescribeNetworkInterfaces
Posted
技术标签:
【中文标题】(具体资源)AWS Lambda:提供的执行角色无权调用EC2上的DescribeNetworkInterfaces【英文标题】:(specific resource) AWS Lambda:The provided execution role does not have permissions to call DescribeNetworkInterfaces on EC2 【发布时间】:2021-07-20 04:44:50 【问题描述】:我知道我可以使用 AWS 托管角色或资源通配符来修复此策略,但我的问题是: ¿如何指定通过 ec2: 执行这些操作的资源是什么?
我想设置特定的 lambda 以在我的策略中执行这些操作,就像这样。 我已经尝试过,但在上面抛出了同样的错误,它只有在我将 * 用于资源时才有效。
Action = [
"ec2:AttachNetworkInterface",
"ec2:CreateNetworkInterface",
"ec2:DeleteNetworkInterface",
"ec2:DescribeInstances",
"ec2:DescribeNetworkInterfaces",
"ec2:DetachNetworkInterface",
"ec2:ModifyNetworkInterfaceAttribute",
"ec2:ResetNetworkInterfaceAttribute",
]
Effect = "Allow"
Resource = "arn:aws:lambda:<region>:<acc_id>:function:myfunction"
【问题讨论】:
【参考方案1】:首先,在定义 IAM 策略时,Resource
是应用这些操作的位置,而不是谁可以执行这些操作。所以这里的Resource
不是 lambda,而是一些 EC2 资源。执行这些操作的资源(您的 lambda)是您附加 IAM 角色的位置。
话虽如此,并非所有 EC2 操作都具有资源级权限,而 DescribeNetworkInterfaces
则没有。这意味着您将无法为此操作指定特定资源,而必须使用'*'
。
参考资料:
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-policy-structure.html#ec2-supported-iam-actions-resources
https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html
【讨论】:
出色地回答了我清楚的很多事情。谢谢以上是关于(具体资源)AWS Lambda:提供的执行角色无权调用EC2上的DescribeNetworkInterfaces的主要内容,如果未能解决你的问题,请参考以下文章
来自执行环境的 AWS Lambda 凭证没有执行角色的权限