AWS クライアントVPNでVPCに接続をしてみる

以前にFortigateとAWSをVPN接続する記事を掲載しましたが、今回はクライアントとAWSのエンドポイント対サイトのVPN接続方法を紹介します。

構成図は簡易的ですが、以下のような感じです。

クライアントはMacOS Catalinaで接続を行います。

クライアントソフトはオープンソースのVPNソフトウェアなどを予め準備する必要がありましたが、AWS公式のVPNクライアントがリリースされましたので利用もかなりしやすくなったと思います。

多分ですが、クライアント側の問題もAWSがサポートしてくれる・・・??
OpenVPNとか使って問題あってもどこがサポートするのか、などの問題は解消されるかもしれませんね!

昨今コロナウイルスの影響でテレワークを急務で準備していらっしゃる企業様も多いと思いますので、AWSのクライアントVPN経由でサーバアクセスもありかもしれません。
DXや通常のVPNもクライアントVPN経由で接続できるので、オンプレへのアクセスも可能だと思います。

FortigateとAWSのサイト対サイト接続方法は以下の記事でご覧いただけます。

AWS Client VPN の料金

東京リージョンでの利用価格です。

Price
AWS Client VPN endpoint association 0.15USD per hour
AWS Client VPN connection 0.05USD per hour

1時間あたりVPN設定を行っていると、16.5円ほどかかります。
クライアントを接続していると1台あたり別途5.5円ほどかかりますので、1台利用でも1時間22円ほどかかります。

接続の課金はわかりやすいですが、通常のVPNと同じように接続ポイントを作成するだけでも料金が発生しますのでご注意ください。
しかも、1ヶ月12,000円ほどかかりますので、通常のVPN接続より3倍近い価格に!

メンテナンス用に1台だけ繋ぐ、とかだと少し割高感があるかもしれません。

クライアントVPN接続の設定方法

それでは実際に設定方法を記載していきます。
接続は、MacOS Catalinaと接続を行いますので、Windows機の場合は適意読み替えを行ってください。

一部、証明書の作成などはWindows機ではできませんので、MacまたLinuxマシンをご準備ください。

接続設定の概要

設定方法の主な流れは以下のとおりです。

  1. 証明書の作成
  2. ACMへの証明書インポート
  3. クライアントエンドポイントの作成
  4. VPNクライアントのインストール
  5. 接続

スムーズに設定できれば1時間もかからずVPN接続が可能です。

設定は、AWS公式などを参考にしました。

クライアントVPNの使用開始

AWS Client VPN Download

証明書の作成

AWSとクライアントの接続には、証明書を用いた相互認証を行います。
相互認証では、クライアント VPN は証明書を使用して、クライアントとサーバーの間で認証を実行します。

サーバーおよびクライアント証明書とキーの生成を以下の手順で作成します。

Macのターミナルで以下のコマンドを実行していきます。
Windowsでは証明書の作成ができませんので、EC2(AmazonLinux)で実行してください。

OpenVPN Easy-RSA レポジトリのクローンを作成します。

git clone https://github.com/OpenVPN/easy-rsa.git

ローカルリポジトリの easy-rsa/easyrsa3 フォルダに移動します。

cd easy-rsa/easyrsa3

新しい PKI 環境を初期化します。

./easyrsa init-pki

新しい認証機関 (CA) を構築します。

./easyrsa build-ca nopass

通名(Common Name)を入力する画面が表示されますので、任意の通名を入力してエンターを押してください。

サーバー証明書とキーを生成します。

./easyrsa build-server-full server nopass

クライアント証明書とキーを生成します。

./easyrsa build-client-full client1.domain.tld nopass

作成したサーバー証明書とキー、およびクライアント証明書とキーを任意のフォルダへコピーします。

cp pki/ca.crt /任意のフォルダパス/
cp pki/issued/server.crt /任意のフォルダパス/
cp pki/private/server.key /任意のフォルダパス/
cp pki/issued/client1.domain.tld.crt /任意のフォルダパス/
cp pki/private/client1.domain.tld.key /任意のフォルダパス/

以上で接続に必要な証明書、キーの作成が完了しました。

作成したフォルダへアクセスすると以下の5ファイルが作成されています。

ACMへのアップロード

続いて、作成した証明書、キーをACMにアップロードします。

アップロードした証明書、キーを用いてAWSとVPN接続を行います。

接続を行いたいVPCがあるリージョンのACMへアップロードしてください。

ACMのメニュー画面に移動し、「証明書のインポート」を選択します。

まずはサーバ証明書をアップロードします。
入力する項目は以下のとおりです。

  • 証明書本文→server.crt
  • 証明書のプライベートキー→server.key
  • 証明書チェーン→ca.crt

上記ファイルをテキストエディタで開き、テキスト内容をコピペしてください。
入力後に「次へ」を選択してください。

タグを入力します。
サーバ証明書をインポートしておりますので、Serverなどわかりやすい名前を入力してください。

入力後、「レビューとインポート」を選択します。

確認画面が表示されますので「インポート」を選択します。

続いてクライアント証明書をインポートします。
入力する項目は以下のとおりです。

  • 証明書本文→client1.domain.tld.key
  • 証明書のプライベートキー→client1.domain.tld.key
  • 証明書チェーン→ca.crt

タグはクライアント証明書とわかるようなタグをつけてインポートをしてください。

それぞれインポートが完了すると、2種類の証明書がACMで表示されます。

ClientVPNエンドポイントの作成

VPCのメニューから「クライアントVPNエンドポイント」→「クライアントVPNエンドポイントの作成」を選択します。

以下の画像を参考に必要情報をご入力ください。

CIDRは、VPCや接続を行う端末のネットワークで利用していないCIDRを指定してください。
証明書は、前述でACMにアップロードしたサーバ、クライアント証明書をご選択ください。

DNSは未記入でも大丈夫です。
未記入の場合、AWSのDNSサーバを利用します。

以下の画面が表示されましたら作成完了です。

続いて作成したVPNエンドポイントをVPCに関連付けします。
関連付けしたタイミングから課金が発生します。

関連付けタブの「関連付け」を選択してください。

接続を行うVPCとサブネットを指定して関連付けを行ってください。

以下画面が表示されましたら関連付けが完了です。

続いて、VPN経由でアクセスできるネットワークを指定します。

認証タブの「受信の承認」を選択してください。

アクセスを許可するVPCのCIDRを入力してください。
試していませんが、一部セグメントだけでも大丈夫だと思います。

VPNクライアントのインストール

続いて接続を行うためのクライアントソフトを導入します。

https://aws.amazon.com/jp/vpn/へアクセスして「デスクトップ用AWSクライアントVPNをダウンロード」を選択します。

お使いのOSに合わせてクライアントソフトをダウンロードしてください。

ダウンロード後、インストールを行ってください。

特にパラメータ指定などはありませんので、次へ次へでインストールを完了させてください。

VPN接続

下準備がすべて完了しましたので、実際に接続を行います。

接続用のプロファイルをダウンロードします。

ダウンロード画面は、クライアントVPNエンドポイントメニューにあります。

以下のファイルがダウンロードされます。

ダウンロードしたファイルをエディタで開き、クライアント証明書が保存されているパスを記載してください。

クライアント証明書のパスを追記できましたら、インストールしたAWS VPN Clientを起動し、プロファイル管理画面を表示させてください。

Add Profileを選択してください。

任意の接続名を記入し、クライアント証明書の追記を行った設定ファイルを指定してプロファイルを追加してください。

証明書のパスなどが問題なければ追加されます。
証明書が見つからない場合は、追加ができませんので、追記した内容をご確認ください。

追加したプロファイルを選択して「Connect」で接続します。

Connected.と表示されましたら接続完了です。

証明書の発行などは一部環境を準備しないといけないので少しややこしいですが、その他の設定については複雑なものはなく、全体的に簡単に設定ができると思います!

公式クライアントがリリースされたのでこれからSaaS風サービスの提供で提供される会社さんも増えそうなので、今後需要は増えてきそうです。

少しお値段が高いので、まずはテスト的にぜひお試しください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です