AWS VPNとは
VPNクライアントを持つ端末から、任意の(Client VPNエンドポイントを関連付けた)VPCへのアクセスを許可するためのもの。
「プライベートIPで構築されたリソースに、インターネットを経由せずアクセスしたい」場合に活躍する。
VPNクライアントのダウンロード
AWSのHPからAWS Client VPNをDLする。
設定が終わると、このツールでVPNに接続できるようになる。
VPNエンドポイントを作成する
VPNエンドポイントを作成するためには、証明書の登録が必要。
プライベート認証機関(CA)を作成
AWS Private Certificate Authority>プライベート認証機関>プライベートCAを作成
設定はデフォルトで良い。
サブジェクト識別名のオプションだけ設定が必要なので、組織に適当な名前を付けておく(例:ProjectName_LLC)
CAが作成されたら選択>アクション>CA証明書をインストール
すると、証明書が作成され、以下から確認できるようになる。
ACM(AWS Certificate Manager)>証明書
VPNエンドポイントの作成
冒頭でDLしたVPNクライアントがアクセスするエンドポイント(IP範囲)を作成する。
AWS>クライアントVPNエンドポイント>クライアントVPNエンドポイントを作成
- 名前タグ:任意(例:VPN とかでよい)
- 説明:任意
- クライアントIPv4 CIDR:10.100.0.0/22 ※
- 認証情報:先ほど作成した証明書を指定する
- VPC ID:VPN接続したときにアクセスできるVPCを指定する
- トランスポートプロトコル:TCP
- その他:任意で良いはず
CIDRのルーティング
VPNクライアントのIPを10.100.0.0/22と指定したとして、このIPがVPCに到達してからの送信先IPは、VPC用(172.x.x.x)にルーティングしたい。
その場合は、ネットワーク設定のルートテーブルによって実装する。
ルートテーブルとはAWSクラウドにおけるルーター的なもの。
VPNから送信する送信先のIPのうち、使用するネットワーク経路(サブネット)をコントロールしたいときに使用する。
ルーティングの実装
クライアントVPNエンドポイント>VPNを選択>『ターゲットネットワークの関連付け』タブ>ネットワークを選択
ネットワークIDカラムから、対象のサブネットを開く。このネットワークに送信元10.100.0.0/22のリクエストが飛んでくる。
このネットワークにリクエストが飛んできた時点で、リクエストのIPはここで設定されているIPv4 CIDR(ネットワーク自身のIP)に変換される。※172.20.5.0/24と仮定する
このネットワーク設定の「ルートテーブル」タブの設定で、次の送信先を決定する。
ルート:
- 送信先(コントロールしたい送信先のIP):172.20.5.0/16
- ターゲット(どのサブネットからの送信とするか):local ※localとはこのネットワーク自身
これにより、送信先が次のリクエストの送信先IPとして使用される。
VPNのセキュリティ設定
VPNクライアントは、秘密鍵による認証によって端末で使用できるようになる。
しかし、それだけでは秘密鍵が流出しただけで簡単に突破されてしまう。
そのため、ADサービス(例:Microsoft Entra ID)+MFA認証のような構成によって、使用するユーザーを別途リスト管理し、照合する機能を追加するのが一般的。
AWSのIAMからIDプロバイダを設定し、このIDプロバイダにADサービスを指定する。
AWS VPNクライアント側では、以下の2つに先ほどのIAM設定を指定する。
- SAML プロバイダ ARN:VPN接続時の認証
- セルフサービス SAML プロバイダ ARN:セルフサービスポータル(クライアントソフト/設定ファイルのダウンロード)の認証
Appendix
クライアントIPv4 CIDRの指定
VPNのIPには制約があり、プライベートIP範囲である、10始まり、172始まり、192.168始まりのいずれかで指定する。
また、VPNネットワークIPアドレスと競合しないように指定する必要がある。
AWS VPCのデフォルトは172始まりで、企業のオンプレミスネットワークでは192.168始まりを使用することが多いため、10始まりを採用する。
また、10.10.0.0か、10.100.0.0かについてはどうか。
先ほどAWS VPCのデフォルトは172始まりと説明したが、VPC構築は10始まりのVPCを独自で作成することが一般的。
これは、AWS VPCのデフォルトVPCは、EC2を起動するだけ、というようなインスタントラーメンてきな簡単さがあるが、フルカスタムする場合は独自で10始まりのVPCを構築する。
このとき、VPCのIP範囲を拡張していくと、10.0.0.0で使用していたIP範囲が、10.10.0.0に拡張する可能性がある。
それを見越して、VPNのIP範囲はVPCと競合する可能性ができるだけ低くなるように10.100.0.0で指定する。

コメント