我应该在我的 api 网关资源策略中使用什么 cidr 范围来允许 lambda 调用我的端点?

What cidr range should I use in my api gateway resource policy to allow lambda to call my endpoint?

我在 api 网关中设置了遵循资源策略以限制对源 IP 的访问(x 只是一个占位符)。当我从邮递员手动点击 api 端点时,该策略正确地将访问限制为我在下面的资源策略中指定的 cidr 范围。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": "arn:aws:execute-api:us-east-1:x:x/*/*/*”
        },
        {
            "Effect": "Deny",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": "arn:aws:execute-api:us-east-1:x:x/*/*/*”,
            "Condition": {
                "NotIpAddress": {
                    "aws:SourceIp": [
                        “x.x.x.x/32"
                    ]
                },
                "StringNotEquals": {
                    "aws:sourceVpc": "vpc-x”
                }
            }
        }
    ]
}

但是,我有一个 lambda 函数,它也调用相同的 https api 网关端点。这个函数基本上只是每隔一小时将测试数据传递到我的 api 中。但是,lambda 函数无法到达端点并出现 403 禁止错误。我尝试将 sourceVpc 添加到资源策略中,但这似乎不起作用。我也尝试添加 vpc cidr 范围,但这同样不起作用。

你知道我应该将什么 cidr 添加到资源策略中以允许我的 lambda 也调用我的 api 端点吗?

我将与我的 lambda 函数关联的子网的 NAT 网关 IP 添加到资源策略 "aws:SourceIp"。这允许我的 lambda 函数成功调用 API 网关。