こんにちは!SREとしてクラウドインフラの現場を駆け巡っている執筆ライターです。
インフラの世界へ足を踏み入れたばかりの頃、「自宅や外出先から、会社の安全なネットワーク(VPC)へどうやってトンネルを掘るのか?」という疑問にぶつかりませんでしたか?
パブリックサブネットやプライベートサブネット、インターネットゲートウェイ(IGW)といった言葉を覚えたものの、「じゃあ、会社の外にいるエンジニアはどうやってその中に入るの?」という最後のピース。それが今回解説する AWS Client VPN です。
今回は、難しいネットワークの専門用語をできるだけ取っ払って、身近な「郵便配達」や「合鍵」の仕組みに例えながら、一緒に優しく紐解いていきましょう。一歩ずつ理解していけば、決して怖くありませんよ!
—
1. なぜ「AWS Client VPN」が必要なの? 〜現実世界との比較で掴む全体像〜
まずは、私たちが普段暮らしている世界とAWSのVPCを重ね合わせてみましょう。
AWSのVPC(Virtual Private Cloud)は、いわば「外から見えない巨大な要塞都市」です。この要塞の中には、データベースや社内向けのWebアプリといった、大切なサーバー(プライベートサブネットの住人たち)が暮らしています。
普段、この要塞の外(自宅のカフェやリビング)からアクセスする場合、インターネットという荒野を通るわけですが、そのままでは危なっかしくて仕方がありません。そこで登場するのが AWS Client VPN です。
郵便配達に例えてみよう
- 自宅のパソコン: 手紙を書きたいあなた
- AWS Client VPNエンドポイント: 要塞の入り口にある「厳重な検問所兼、配達の拠点」
- VPN接続(トンネル): あなたの家から検問所まで直結している「地下秘密通路」
あなたが自宅から社内のサーバーにアクセスしたいとき、まずこの「地下秘密通路」の鍵を開けて通り抜け、検問所で「私は本当にこの会社のメンバーです」と身分を証明(認証)します。無事に通してもらえたら、要塞の中を安全に散歩できるようになる――これがClient VPNの基本的な仕組みです。
OpenVPNという世界中で信頼されているオープンソースの技術をベースに作られているため、安定性も抜群なんですよ。
—
2. 認証の双子:Mutual Authentication(相互認証)とActive Directory統合
要塞の入り口(VPNエンドポイント)を通るためには、パスポートが必要です。AWS Client VPNでは、主に次の2つの認証方式を用意しています。今回は特に人気の高い「相互認証」と「Active Directory(AD)統合」を優しく見ていきましょう。
① 相互認証(Mutual Authentication / 証明書認証)
「相互」という名前がついている通り、「サーバーがクライアントを信じる」だけでなく、「クライアントもサーバーを信じる」という両方向の信頼関係を、電子証明書(デジタルな身分証明書)を使って行います。
- 仕組み: あらかじめ管理者が「クライアント証明書」という特別なデジタルパスポートを発行し、あなたのパソコンにこっそりインストールしておきます。
- メリット: パスワードを覚える必要がなく、証明書ファイルを持っているデバイスだけがアクセスできるため、非常に強固です。
- 身近な例: ホテルの「電子キーカード」のようなものです。カード(証明書)を持っている人だけが部屋に入れますよね。
② Active Directory(AD)統合認証
会社で普段使っている「社内アカウントのユーザー名とパスワード」を使ってログインする方式です。
- 仕組み: AWSが提供するマネージドなディレクトリサービスや、既存のWindows Server Active DirectoryとVPNを連携させます。「このユーザーIDとパスワードの人は、要塞に入っていいですか?」と、ADに都度お伺いを立てる仕組みです。
- メリット: 新しいパスワードを増やす必要がなく、社員が退職した際もAD側でアカウントを無効化するだけで、VPNへのアクセスも一発で遮断できるため、管理が圧倒的にラクになります。
- 身近な例: テーマパークの「年間パスポートに紐づいた本人確認(顔写真や暗証番号)」のようなもので、普段使い慣れたIDでゲートをくぐれます。
—
3. 実践!AWS Client VPNエンドポイントを作ってみよう
「理屈は分かったけれど、実際にどうやって設定するの?」
ここからは、AWSマネジメントコンソールやAWS CLIを使って、実際にClient VPNの環境を構築する流れを覗いてみましょう。実務でそのまま参考にできるように、ポイントを日本語コメントで解説します。
ステップ1:サーバー証明書とクライアント証明書の準備(相互認証の場合)
まずは身分証明書を作ります。通常、Easy-RSA などのツールを使って、自分たちの証明書発行機関(CA)をローカルPC上で立ち上げ、証明書を発行します。
# Easy-RSAを使ってプライベートCA環境を初期化する例
./easyrsa init-pki
# 認証局(CA)の証明書を作成する
./easyrsa build-ca nopass
# VPNサーバー用の証明書と秘密鍵を作成する
./easyrsa build-server-full server nopass
# クライアント(ユーザー)用の証明書と秘密鍵を作成する
./easyrsa build-client-full client1.domain.tld nopass
作成した証明書は、AWSのACM(AWS Certificate Manager)にインポートして、AWSから認識できるようにアップロードしておきます。
ステップ2:AWS CLIを使ったClient VPNエンドポイントの作成
証明書の準備ができたら、いよいよVPCの中にVPNの「検問所(エンドポイント)」を建てます。
{
"ClientCidrBlock": "10.100.0.0/16", // VPN接続したパソコンに割り当てるIPアドレスのプール(要塞内のIPと被らないように!)
"ServerCertificateArn": "arn:aws:acm:ap-northeast-1:123456789012:certificate/xxxx-xxxx-xxxx", // ACMにアップロードしたサーバー証明書のARN
"AuthenticationOptions": [
{
"Type": "certificate-mutual", // 相互認証(証明書認証)を指定
"RootCertificateChainArn": "arn:aws:acm:ap-northeast-1:123456789012:certificate/yyyy-yyyy-yyyy" // ルート証明書のARN
}
],
"ConnectionLogOptions": {
"Enabled": false // 本番環境ではCloudWatch Logs等への接続ログ有効化を推奨
},
"SplitTunnel": true // スプリットトンネル:社内宛ての通信だけをVPN経由にし、通常のネットサーフィンは自宅回線を使う設定
}
ステップ3:サブネット関連付けとルートテーブルの魔法
エンドポイントを建てただけでは、まだ要塞の部屋(プライベートサブネット)へ繋がっていません。ここで「どのサブネットを通って中のサーバーに行くか」の道案内(関連付け)を行います。
1. ターゲットネットワークの関連付け:
VPNエンドポイントを、VPC内の特定のプライベートサブネットに紐づけます。これにより、VPNがVPCのなかに「足場」を確保します。
2. ルート(経路)の追加:
「もし 10.0.0.0/16(VPC全体)宛ての荷物(パケット)が来たら、先ほど関連付けたサブネットへ流しなさい」というルールをルーティングテーブルに書き込みます。
この設定を行うことで、はじめて自宅のパソコンから要塞内のデータベースサーバー(例:10.0.1.50 など)へパケットが届くようになります。
—
4. 現場で役立つ!よくあるトラブルシューティングのヒント
いざ設定が終わって「接続テストだ!」とクライアントソフト(AWS Client VPNアプリ)を起動したとき、初心者がハマりがちなポイントをいくつかシェアしておきますね。
- 「接続中(Connecting…)」のまま進まない
- 原因の大半: セキュリティグループ(火の壁)のミスです。VPNエンドポイントに割り当てたセキュリティグループや、接続先のサーバー側のセキュリティグループが、UDPの
443番ポートや必要なトラフィックをブロックしていないか確認しましょう。 - 繋がったのに、中のサーバー(DB等)にアクセスできない
- 確認ポイント: 認証認可(Authorization Rules)の追加を忘れていませんか? 「誰が(どのCIDRが)どのネットワークにアクセスしてよいか」という許可ルールをVPNエンドポイントに追加しないと、門番が通してくれません。
- DNSの名前解決ができない
- 対策: スプリットトンネルを有効にしている場合、社内のプライベートDNS(Amazon Route 53 Resolverなど)のIPアドレスを、クライアント側のDNSサーバーとして明示的に指定してあげる必要があります。
—
まとめ:一歩ずつ、ネットワークの構造を楽しもう
今回は、AWS Client VPNの基本概念から、相互認証・AD統合の仕組み、そして簡単な構築の流れまでを優しく解説しました。
- AWS Client VPN は、自宅とAWSのVPCを結ぶ「安全な地下秘密通路」であること。
- 認証には、デジタルな合鍵を使う 相互認証 と、おなじみのID/PWを使う Active Directory統合 があること。
- 接続後は、サブネットの関連付けとルート設定という「道案内」が必須であること。
ネットワークの世界は、最初は目に見えなくて難しく感じますが、現実世界の「郵便配達」や「建物の構造」に置き換えてみると、驚くほどスッと頭に入ってきます。
焦らず、まずは小さな検証環境からハンズオンで試してみてくださいね。あなたのクラウドインフラの旅が、素晴らしいものになりますように!
コメント