3
VPC内のラムダ関数からVPC外のキネシスストリームにアクセスしようとしています。現在、キネシスストリームに書き込むコードが実行されるとハングしてからタイムアウトになります。 VPCからラムダを取り除くと、ストリームに書き込むコードが正常に動作します。しかし、私はVPC内のリソースにアクセスし、ストリームに書き込む必要があります。誰でもこれを修正する方法を知っていますか?ここでVPC内のVPC外部のAWSリソースにアクセスする - サーバーレスフレームワーク
はここ
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}
VPCには私のポリシーここ
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ゲートウェイを設定する方法は本質的にありません。 –