ClientVPN環境をさくっと作成するためのCloudFormationを作成してみました。
また、ルートテーブルを追加したいケースに対応できるように、別途追加のテンプレートも載せています。
今回は前回の記事のように相互認証を採用したVPN接続となります。
事前準備さえ済んでいればCloudFormationを実行するだけで環境が揃うので、是非とも活用してみてください。
◆Github (テンプレートはこちら)
https://github.com/noname-work/aws-cloudformation/tree/master/client-vpn
VPNエンドポイント作成時のパラメータ
ServerCertificateARN | 相互認証の作成時に生成したサーバ証明書のARN |
ClientCertificateARN | 相互認証の作成時に生成したクライアント証明書のARN |
ClientCIDR | VPNで利用するCIDR。これはVPCと被らない範囲で指定する必要がある。 |
VPCID | 紐付けるVPCのIDをプルダウンから選択する。 |
SubnetID1 | 紐付けるサブネットのIDをプルダウンから選択する。 |
SubnetID2 | 紐付けるサブネットのIDをプルダウンから選択する。サブネットの数に応じて課金が発生するので、不要な場合はテンプレートを編集してこの項目と関連する部分をコメントアウトする。 |
VPNプロファイルの編集
VPNプロファイルをクライアントソフトウェアに読み込ませることでVPN接続が実現できますが、今回は相互認証のためプロファイル内に認証情報を埋め込む必要があります。
専用のソフトウェアからVPN接続ができることを確認してください。
◆AWS Client VPN ダウンロード
https://aws.amazon.com/jp/vpn/client-vpn-download/
ルートテーブルの追加
AccessRange1 | ルートテーブルに追加するルーティング先を指定する。パブリックなIPに対しても可能だが、0.0.0.0/0はデフォルトで無効にしている。 |
SubnetID1 | AccessRange1と紐付けるサブネットのIDを指定する。 |
AccessRange2 | ルートテーブルに追加するルーティング先を指定する。不要であればテンプレートを編集してこの項目と関連する部分をコメントアウトする。 |
SubnetID2 | AccessRange1と紐付けるサブネットのIDを指定する。不要であればテンプレートを編集してこの項目と関連する部分をコメントアウトする。 |
CloudFormation実行後、設定通りルートテーブルが更新されていることを確認してください。
今回の仕様
今回のClientVPNでは相互認証による接続設定となっています。
スプリットトンネルを有効にしているため、0.0.0.0/0のような設定は無効になっています。
制御されたIPレンジへアクセスする場合のみVPNを経由し、それ以外の接続にはクライアント側のPCから直接アクセスされます。
今回はインバウンドの設定されていないセキュリティグループを紐づけています。
これは他のセキュリティグループのインバウンドにVPNからのアクセスを追加しやすくするためです。
(ClientVPNのセキュリティグループIDを許可すれば良いので楽)
CloudWatchLogsへ接続時のログも出力されるため、どこから接続があったのか知ることができます。
なお、ログの保存期間は1年間です。
コメントを残す