gpt4 book ai didi

amazon-web-services - 限制 lambda 权限以访问 VPC

转载 作者:行者123 更新时间:2023-12-03 23:41:32 26 4
gpt4 key购买 nike

将 lambda 函数部署到 VPC 时,您需要向 lambda 的执行角色授予一堆与网络接口(interface)相关的权限。 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 可以修改的网络接口(interface),因此可能会使其与自己的 VPC 之外的网络发生困惑。我想限制 lambda 可以对它实际部署到的 VPC 或子网执行的操作。但是,到目前为止,我还没有为此制定可行的政策。
我尝试像这样检查策略中的 VPC:
"Condition": {"StringEquals": {"ec2:Vpc": "${my_vpc_arn}" }}
但仍然获得许可被拒绝。
CloudTrail 事件包含以下授权消息)解码为 aws sts decode-authorization-message ): https://pastebin.com/P9t3QWEY我看不到任何有用的键来检查。
那么是否可以将 VPC 部署的 lambda 限制为仅修改特定的网络接口(interface)?

最佳答案

您不能将策略限制为单个 NI,因为在创建它们之前您不知道它们的 ID。但是你应该可以 限制对特定 VPC 的访问 使用以下 lambda 执行策略:

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AccessToSpecificVPC",
"Effect": "Allow",
"Action": [
"ec2:CreateNetworkInterface",
"ec2:DeleteNetworkInterface",
"ec2:UnassignPrivateIpAddresses",
"ec2:AssignPrivateIpAddresses",
"ec2:DescribeNetworkInterfaces"
],
"Resource": "*",
"Condition": {
"ArnLikeIfExists": {
"ec2:Vpc": "arn:aws:ec2:<your-region>:<your-account-id>:vpc/<vpc-id>"
}
}
},
{
"Sid": "CWLogsPermissions",
"Effect": "Allow",
"Action": [
"logs:CreateLogStream",

"logs:CreateLogGroup",
"logs:PutLogEvents"
],
"Resource": "*"
}
]
}

关于amazon-web-services - 限制 lambda 权限以访问 VPC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65437036/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com