【发布时间】:2021-04-02 19:54:51
【问题描述】:
将 lambda 函数部署到 VPC 时,您需要向 lambda 的执行角色授予一系列与网络接口相关的权限。 AWS manuals 建议为此使用 AWSLambdaVPCAccessExecutionRole 托管策略,如下所示:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
"ec2:CreateNetworkInterface",
"ec2:DescribeNetworkInterfaces",
"ec2:DeleteNetworkInterface",
"ec2:AssignPrivateIpAddresses",
"ec2:UnassignPrivateIpAddresses"
],
"Resource": "*"
}
]
}
如您所见,此策略不限制 lambda 可以修改的网络接口,因此可能会使其与自己的 VPC 之外的网络发生混乱。我想限制 lambda 可以对它实际部署到的 VPC 或子网执行的操作。但是,到目前为止,我还没有为此制定可行的政策。
我尝试像这样检查策略中的 VPC:
"Condition": {"StringEquals": {"ec2:Vpc": "${my_vpc_arn}" }}
但仍然被拒绝。
CloudTrail 事件包含以下授权消息)使用aws sts decode-authorization-message 解码):https://pastebin.com/P9t3QWEY 我看不到任何有用的密钥来检查。
那么是否可以将 VPC 部署的 lambda 限制为仅修改特定的网络接口?
【问题讨论】:
标签: amazon-web-services lambda amazon-iam policy vpc