AWSSupport-TroubleshootLambdaInternetAccess - AWS Systems Manager 自动化运行手册参考

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWSSupport-TroubleshootLambdaInternetAccess

描述

AWSSupport-TroubleshootLambdaInternetAccess运行手册可帮助您解决在亚马逊 Virtual Private Cloud(亚马逊VPC)中启动的 AWS Lambda 功能的互联网访问问题。对子网路由、安全组规则和网络访问控制列表 (ACL) 规则等资源进行审查,以确认允许出站 Internet 访问。

运行此自动化(控制台)

文档类型

自动化

所有者

Amazon

平台

Linux,macOS, Windows

参数

  • AutomationAssumeRole

    类型:字符串

    描述:(可选)允许 Systems ARN Manager Automation 代表您执行操作的 AWS Identity and Access Management (IAM) 角色的亚马逊资源名称 ()。如果未指定角色,Systems Manager Automation 将使用启动此运行手册的用户的权限。

  • FunctionName

    类型:字符串

    描述:(必需)要为其排除互联网访问问题的 Lambda 函数的名称。

  • destinationIp

    类型:字符串

    描述:(必需)要与之建立出站连接的目标 IP 地址。

  • destinationPort

    类型:字符串

    默认值:443

    描述:(可选)要在其上建立出站连接的目标端口。

必需的IAM权限

AutomationAssumeRole 参数需要执行以下操作才能成功使用运行手册。

  • lambda:GetFunction

  • ec2:DescribeRouteTables

  • ec2:DescribeNatGateways

  • ec2:DescribeSecurityGroups

  • ec2:DescribeNetworkAcls

文档步骤

  • aws:executeScript-验证启动 Lambda 函数的VPC位置中各种资源的配置。

  • aws:branch-根据指定的 Lambda 函数是否在 a VPC 中进行分支。

  • aws:executeScript-查看启动 Lambda 函数的子网的路由表路由,并验证是否存在通往网络地址转换 (NAT) 网关和 Internet 网关的路由。确认 Lambda 函数不在公有子网中。

  • aws:executeScript - 根据为 destinationIpdestinationPort 参数指定的值,验证与 Lambda 函数关联的安全组是否允许出站互联网访问。

  • aws:executeScript-验证与 Lambda 函数的子网关联的ACL规则,以及NAT网关根据为和参数指定的值允许出站 Internet 访问。destinationIp destinationPort

输出

checkVpc.vpc-启动您的 Lambda 函数的VPC位置的 ID。

checkVpc.subnet-IDs 启动您的 Lambda 函数的子网。

checkVpc。 securityGroups -与 Lambda 函数关联的安全组。

检查NACL。 NACL-带有资源名称的分析消息。 LambdaIp指您的 Lambda 函数的弹性网络接口的私有 IP 地址。该LambdaIpRules对象仅针对具有通往网关的路由的子NAT网生成。以下内容为输出示例。

{ "subnet-1234567890":{ "NACL":"acl-1234567890", "destinationIp_Egress":"Allowed", "destinationIp_Ingress":"notAllowed", "Analysis":"This NACL has an allow rule for Egress traffic but there is no Ingress rule. Please allow the destination IP / destionation port in Ingress rule", "LambdaIpRules":{ "{LambdaIp}":{ "Egress":"notAllowed", "Ingress":"notAllowed", "Analysis":"This is a NAT subnet NACL. It does not have ingress or egress rule allowed in it for Lambda's corresponding private ip {LambdaIp} Please allow this IP in your egress and ingress NACL rules" } } }, "subnet-0987654321":{ "NACL":"acl-0987654321", "destinationIp_Egress":"Allowed", "destinationIp_Ingress":"notAllowed", "Analysis":"This NACL has an allow rule for Egress traffic but there is no Ingress rule. Please allow the destination IP / destionation port in Ingress rule" } }

checkSecurityGroups.secgrps-分析与您的 Lambda 函数关联的安全组。以下内容为输出示例。

{ "sg-123456789":{ "Status":"Allowed", "Analysis":"This security group has allowed destintion IP and port in its outbuond rule." } }

checkSubnet.subnets-分析您中VPC与您的 Lambda 函数关联的子网。以下内容为输出示例。

{ "subnet-0c4ee6cdexample15":{ "Route":{ "DestinationCidrBlock":"8.8.8.0/26", "NatGatewayId":"nat-00f0example69fdec", "Origin":"CreateRoute", "State":"active" }, "Analysis":"This Route Table has an active NAT gateway path. Also, The NAT gateway is launched in public subnet", "RouteTable":"rtb-0b1fexample16961b" } }