1

VPC 内的 AWS lambda 服务是否可以在不应用 AWSLambdaVPCAccessExecutionRole 的情况下访问同一 VPC 内的 elasticsearch 服务?不知道有没有可能?如果有人知道,请告诉我程序。

4

1 回答 1

2

要访问您的 VPC 中的资源,您需要为您的 lambda 函数指定子网和/或安全性,如官方文档中所述。

子网决定了您的函数将在其中运行的 VPC 和可用区(或至少将在其中创建其弹性网络接口 - ENI)。关联的安全组决定了您的 VPC 中其他资源的端口是否可以访问。

至于您的 AWSLambdaVPCAccessExecutionPolicy,文档指出:

AWSLambdaVPCAccessExecutionRole – 授予 Amazon Elastic Compute Cloud (Amazon EC2) 操作以管理弹性网络接口 (ENI) 的权限。如果您正在编写 Lambda 函数来访问 Amazon Virtual Private Cloud (Amazon VPC) 服务中的 VPC 中的资源,则可以附加此权限策略。该策略还授予 CloudWatch Logs 操作写入日志的权限。

我目前无权访问我的帐户,但谷歌告诉我政策文件看起来像这样:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "ec2:CreateNetworkInterface",
        "ec2:DescribeNetworkInterfaces",
        "ec2:DeleteNetworkInterface"
      ],
      "Resource": "*"
    }
  ]
}

这意味着策略授予在您的 VPC 中创建上述弹性网络接口的权限,因此这是必要的,因为如果 VPC 内部没有网络接口,您将无法访问这些私有资源。

于 2018-12-26T12:48:23.583 回答