aws lambda update-function-configuration 接收 AccessDeniedException

Chu*_*ung 6 lambda vpc amazon-web-services

我想为我的 lambda 函数授予 vpc 访问权限。我使用以下 aws cli 命令。

aws lambda update-function-configuration \
--function-name SampleFunction \
--vpc-config SubnetIds=subnet-xxxx,SecurityGroupIds=sg-xxxx
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

调用 UpdateFunctionConfiguration 操作时发生错误 (AccessDeniedException):您的访问已被 EC2 拒绝,请确保您的请求凭证具有对 sg-xxxx 的DescribeSecurityGroups 的权限。EC2 错误代码:未经授权的操作。EC2 错误消息:您无权执行此操作。

我已向我的 lambda 角色和执行 aws 命令的用户授予以下权限。

    - "ec2:CreateNetworkInterface"
    - "ec2:DescribeNetworkInterfaces"
    - "ec2:DeleteNetworkInterface"
    - "ec2:DescribeSecurityGroups"
Run Code Online (Sandbox Code Playgroud)

我进一步尝试授予 lambda 角色和用户的完全访问权限。但仍然收到同样的错误

谁能建议我还可以尝试什么?

小智 7

诀窍是添加正在部署 lambda 函数的管道/辅助角色/用户)有权访问网络相关策略。lambda 函数本身应该足以满足托管策略 - AWSLambdaVPCAccessExecutionRole

arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole

  • 行动:
    • ec2:描述安全组
    • ec2:描述子网
    • ec2:DescribeVpcs 效果:允许资源:'*'


Ash*_*han 3

您的用户 IAM 策略需要更多权限。

例如 ec2:CreateSecurityGroup 等。查看文档以添加所需的权限。