3
我试图从VPC内部的lambda函数访问VPC外部的Kinesis流。目前,当写入kinesis流的代码被执行时,它会挂起然后超时。当我从VPC中取出lambda时,写入流的代码正常工作。但我需要访问VPC内的资源,然后写入流。有人知道怎么修这个东西吗?从VPC内部访问VPC之外的AWS资源 - 无服务器框架
这里是我的功能就是在VPC
functions:
handleChanges:
handler: functions/handlers.handleChanges
timeout: 10
package:
include:
- functions/utils/**
events:
- http:
method: POST
path: "/"
integration: lambda
vpc:
securityGroupIds:
- ${file(./private.yml):variables.securityGroup}
subnetIds:
- ${file(./private.yml):variables.subnetID}
这里是我的政策
iamRoleStatements:
- Effect: "Allow"
Action:
- "kinesis:PutRecord"
- "kinesis:GetRecords"
- "kinesis:GetShardIterator"
- "kinesis:DescribeStream"
- "kinesis:ListStreams"
Resource:
Fn::GetAtt:
- KinesisStream
- Arn
- Effect: "Allow"
Action:
- "cognito-idp:AdminGetUser"
Resource: "*"
- Effect: "Allow"
Action:
- "logs:CreateLogGroup"
- "logs:CreateLogStream"
- "logs:PutLogEvents"
- "ec2:CreateNetworkInterface"
- "ec2:DescribeNetworkInterfaces"
- "ec2:DeleteNetworkInterface"
Resource: "*"
最后这里是我的室壁运动流资源
KinesisStream:
Type: AWS::Kinesis::Stream
Properties:
Name: ${self:provider.environment.STREAM_NAME}
ShardCount: 1
是的,谢谢你的回答。我刚刚完成创建一个NAT网关,它现在似乎工作。我偶然发现了解释这个过程的要点:https://gist.github.com/reggi/dc5f2620b7b4f515e68e46255ac042a7 –
你知道这样做是否有任何潜在的安全隐患吗? –
@realseanp VPC NAT网关只允许内部启动的连接,不允许外部启动的连接,因此您的内部资源不会使用此设置公开。基本上没有办法用本质上不安全的配置来建立NAT网关。 –