いまさらEC2でOpenVPNサーバーなんて立てたくないんじゃ!という思いから調べたら作れました。こいつ、できるぞ....!!
AWS Clinet VPNとは
AWS謹製のフルマネージドのVPNサービスです。OpenVPNです。
VPC 内に入る Client VPN エンドポイントを作る
作例が多々あるので割愛。こんな感じで。普通に作るとこうなります。
- [AWS]踏み台をワンチャンなくせる!?VPC接続にClient VPNを使ってみよう | DevelopersIO
- AWS Clinet VPNを分かりやすく解説してみる – サーバーワークスエンジニアブログ
VPC 内からインターネットに出る Client VPN エンドポイントを作る
Client VPNからインターネットに出るには
- Client VPNに、インターネットに出れるようにしたサブネットを関連付ける
- Client VPNに付けるセキュリティグループを、インバウンド/アウトバウンドの両方0.0.0.0/0に開放したものにする
- Client VPNにの認証ルールを作る
- Client VPNのルートテーブルに、宛先CIDR 0.0.0.0/0、関連付けたサブネット経由、のルートを作る
1,2は、VPCをいじってれば書くほどの話ではないと思います。
3,4が意味不なので補足します。
Client VPNにの認証ルールを作る
これは自動では作られないので、VPC向けと、インターネット向けを作ってあげます。
Client VPNのルートテーブルに、宛先CIDR 0.0.0.0/0、関連付けたサブネット経由、のルートを作る
Client VPNにサブネットを関連付けると、Client VPNのルートテーブルには、VPCのCIDRへのルートが作られます。ここに加えて、宛先CIDRを0.0.0.0/0、経由サブネットをそれぞれとした、ルートを追加します。
他、ハマりどころ
「クライアント設定のダウンロード」したファイルには、クライアント証明書のパスが書いてない
SoftetherVPNの感じだと、なんか諸々含まれたファイルを期待しちゃうでしょう。Tunnelblickのログを眺めても、まーわからなかった。
クライアント証明書はひとつしか設定できない
差し替えは可能です。とはいえ、ひとつのみということは、退職者や紛失があると、利用者全員に差し替えてもらう必要があります。チームで利用してるなら、クライアント証明書ではなく、ActiveDirectoryで認証するのが、現実的な使い方だと思いました。
Client VPNは、利用者ごとにつくるものではない
Client VPNの制限から、利用者ひとりにつきClient VPNを一個つくって、クライアント証明書で認証させていたら、一瞬で5個を使い果たしてしまいます。VPCにひとつ作り、ADで接続可能なサブネットを区切っていくのが、現実的な使い方だと思いました。