VPC Lambda(node.js v16)のIPアドレスを固定する方法とIPアドレス確認方法

VPC Lambda(node.js v16)のIPアドレスを固定する方法とIPアドレス確認方法

VPC LambdaのIPアドレス固定化する方法です。IPアクセス制限をかけている外部サービスと連携する場合、VPC LambdaのIPアドレスを固定化する必要があります。

方法はすごく簡単です。

  • VPC構成はパブリックサブネット1つ以上、プライベートサブネット1つ以上とする
  • Lambdaをプライベートサブネット上に配置する
  • パブリックサブネットにNATゲートウェイを配置する(接続タイプ:パブリックとし、ENIをアタッチする)
  • プライベートサブネットのルートテーブルにルール追加(送信先:0.0.0.0/0、ターゲット:NATゲートウェイ)

以上となります。

Lambda(node.js v16)

上記設定をして、本当にipアドレスがENIのパブリックIPになっているかを確認します。具体的な設定方法は参考サイトがわかりやすいです。

NATゲートウェイのパブリックIPを確認します。

VPC Lambda(node.js v16)のIPアドレスを固定する方法とIPアドレス確認方法

172.32.64.185です。LambdaはVPCのプライベートサブネット上に配置されている前提としてaxiosで、https://checkip.amazonaws.com/にgetしてipアドレス確認します。

index.js

import axios from 'axios'

export async function handler() {
  const url = 'https://checkip.amazonaws.com/';
  const result = await axios(url);
  console.log(`Public IP is: ${result.data.trim()}`);
  const response = {
    statusCode: 200,
    body: 'Hello '
  }
  return response
};

実行結果は以下の通りです。

VPC Lambda(node.js v16)のIPアドレスを固定する方法とIPアドレス確認方法

ipアドレスがNATゲートウェイのパブリックIPである172.32.64.185となっていることが確認できます。

※正しくインターネットに出れる設定にされていない場合、タイムアウトエラーとなりますのでご注意ください

参考サイト

LambdaのIPアドレスを固定化する - Qiita
はじめに LambdaとAPIサーバを組み合わせたサービスを開発する際、Lambdaのアクセス制御をしたいケースがあるかと思います。 その際、IPアドレスでアクセス制御を行うことが多いと思うのですが、LambdaのIPアドレスは...

コメント

タイトルとURLをコピーしました