はじめに
LambdaとAPIサーバを組み合わせたサービスを開発する際、Lambdaのアクセス制御をしたいケースがあるかと思います。
その際、IPアドレスでアクセス制御を行うことが多いと思うのですが、LambdaのIPアドレスは基本的には固定化されていません。
さらに、Lambdaが使うIPアドレス範囲も結構広く、ちょくちょく変わるため、IPアドレスを固定化しないと制御が難しい。
⇒
上記について、LambdaのIPアドレスを固定化させる方法を紹介します。
前提
VPC,Lambdaが作成されていること。
LambdaがVPCに紐づいていること。
手順
- インターネットゲートウェイの作成
- パブリックサブネットの作成
- インターネットゲートウェイの割り当て
- プライベートサブネットの作成
- NATゲートウェイの作成
- プライベートサブネットとNATゲートウェイを紐づける
順に紹介していきます。
インターネットゲートウェイの作成
インターネットゲートウェイは、VPC とインターネットとの間の通信を可能にする VPC コンポーネントであり、冗長性と高い可用性を備えており、水平スケーリングが可能です。
https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/VPC_Internet_Gateway.html
作成済みのVPCを選択し、左ペインの「インターネットゲートウェイ」>「インターネットゲートウェイの作成」を押下します。
任意のタグをつけて、作成しましょう。
パブリックサブネットの作成
作成済みのVPCを選択し、左ペインの「サブネット」>「サブネットの作成」を押下します。
パブリックサブネットだとわかりやすいように、サブネット名に「public-xxxxx」のような名前を付けておきましょう。
IpV4 CIDRブロックは、紐づいているVPCの範囲内に収まるように設定しましょう。
上記入力して、「サブネットを作成」を押下。
インターネットゲートウェイの割り当て
先ほど作成したサブネットは、今の段階ではパブリックとは言えません。
インターネットゲートウェイを割り当てて、パブリックサブネットとしてあげましょう。
作成済みのVPCを選択し、左ペインの「サブネット」>作成したサブネットを選択します。
その後、紐づいているルートテーブルを選択します。
(ルート「0.0.0.0/0」の設定はまだないかと思います。こちらを今から追加していきます。)
「ルートテーブル:xxxxxxxxxx(リンク)」となっているので、リンク部分を押下します。
ここで下記を入力し、「変更を保存」を押下します。
送信先:0.0.0.0/0
ターゲット:インターネットゲートウェイ⇒1.で作成したインターネットゲートウェイを選択
これで、パブリックサブネットが作成できました。
プライベートサブネットの作成
次に、プライベートサブネットを作成していきます。
手順はパブリックサブネットを作った時と同様です。
作成済みのVPCを選択し、左ペインの「サブネット」>「サブネットの作成」を押下します。
プライベートサブネットだとわかりやすいように、サブネット名に「private-xxxxx」のような名前を付けておきましょう。
IpV4 CIDRブロックは、紐づいているVPCの範囲内に収まるように設定しましょう。
上記入力して、「サブネットを作成」を押下。
NATゲートウェイの作成
次に、NATゲートウェイを作成していきます。
NAT ゲートウェイは、ネットワークアドレス変換 (NAT) サービスです。NAT ゲートウェイを使用すると、プライベートサブネット内のインスタンスは VPC 外のサービスに接続できますが、外部サービスはそれらのインスタンスとの接続を開始できません。
https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating
作成済みのVPCを選択し、左ペインの「NATゲートウェイ」>「NATゲートウェイを作成」を押下します。
下記のように入力して、「NATゲートウェイを作成」を押下します。
名前:任意
サブネット:public-xxxx
接続タイプ:パブリック
Elastic IP:「Elastic IPの割り当て」を押下し、作成
プライベートサブネットとNATゲートウェイを紐づける
プライベートサブネットとNATゲートウェイが紐づいていないため、そこの設定をしていきます。
作成済みのVPCを選択し、左ペインの「サブネット」>プライベートサブネットを選択します。
【インターネットゲートウェイの割り当て】の手順と同様に、ルートテーブルの「ルートを編集」を押下します。
下記のように入力し、「変更を保存」を押下
送信先:0.0.0.0/0
ターゲット:NATゲートウェイ⇒作成したNATゲートウェイ