AWS VPNの使いかた

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で指定する。

コメント

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