【入門編】 AWS Client VPNのMutual AuthenticationとActive Directory統合認証 – クラウドインフラと仮想化ネットワーク実践ガイド

こんにちは!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統合 があること。
  • 接続後は、サブネットの関連付けとルート設定という「道案内」が必須であること。

ネットワークの世界は、最初は目に見えなくて難しく感じますが、現実世界の「郵便配達」や「建物の構造」に置き換えてみると、驚くほどスッと頭に入ってきます。

焦らず、まずは小さな検証環境からハンズオンで試してみてくださいね。あなたのクラウドインフラの旅が、素晴らしいものになりますように!

コメント

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