技術一課の杉村です。AWS Client VPN が東京リージョンにやってきましたので、前回のブログでは解説をしてみました。
AWS Client VPN がアジアパシフィック (ムンバイ) と アジアパシフィック (東京) の 各AWS リージョンで利用可能に
先日のブログでは、そもそもの AWS Clinet VPN の概念を解説し、サーバ証明書とクライアント証明書を利用した「相互認証」のパターンの利用方法をご紹介しました。 http://blog.serverworks.co.jp/tech/2019/06/10/awsclientvpn/
今回は「相互認証 + Active Directory認証」の組み合わせのパターンで、実際に検証してみた結果をスクリーンショット付きでご紹介します。
1. 前提
1-1. 構成図
下記のようなアーキテクチャで構成しました。
Active Directoryとして、私の検証では Simple AD を利用しました。ただし実際にはここが Managed Microsoft AD でも AD Connector でも、手順は変わらないはずです。
またクライアントPCには Windows 10 のパソコンを利用し、クライアントソフトとして下記より OpenVPN GUI v11 を利用しました。 https://www.openvpn.jp/download/
1-2. 前提作業
A. サーバ証明書・クライアント証明書を作成済みかつACMへインポート済み
前回ブログの「3-1.」までは終わっている状態、つまり「証明書の用意」「ACMへのインポート」は終わっている前提で進めます。
B. Simple AD作成済み
Active Directoryとして今回の検証では Simple AD (あるいはその他のDirectory Service)を作成済とします。 その中に、VPN接続に利用するユーザアカウントも作成済とします。
2. 設定手順
2-1. Client VPN Endpointの作成
マネジメントコンソールにて VPC > クライアント VPN エンドポイント > クライアント VPN エンドポイントの作成 ボタンを押下します。
下記のように「認証オプション」にて「Active Directory 認証の使用」「相互認証の使用」の両方をチェックします。 Directory ServiceのIDを選択します。 また、ACMにインポートしたサーバ証明書・クライアント証明書のARNを入力します。
以下はオプションです。 必要に応じて CloudWatch Logs のロググループ・ログストリームを選択します。(事前に作成が必要) クライアントからの名前解決に使うDNSサーバも必要に応じて設定します。
2-2. サブネットとの関連付け
この操作を行った時点で、課金が開始されます。 これの意味については、冒頭に記載した前回のブログを参照してください。
2-3. セキュリティグループ設定
AWS Client VPN の関連付けサブネットごとにアタッチするセキュリティグループを選択します。 これの意味については、冒頭に記載した前回のブログを参照してください。
2-4. 認証(承認)設定
クライアントから許可する接続先を追加します。 これの意味については、前回の(略
なお承認設定については、AD認証ではADのグループごとに許可設定をできます。 このとき、グループはSID(ADのオブジェクトごとに割り当てられる一意のID)で指定する必要があります。
2-5. 設定ファイルダウンロード・クライアントに設定
上部の青い クライアント設定のダウンロード ボタンを押下して設定ファイルダウンロードします。
ダウンロードされる.ovpnファイルはテキストファイルです。 今回は証明書による相互認証とAD認証の併用ですので、設定ファイルに証明書へのパスを追記してあげます。
cert <クライアント証明書へのパス> key <秘密鍵へのパス>
上記のように記載しますが、クライアントが Windows マシンの場合、パスの区切りはバックスラッシュ()となりますが、バックスラッシュはエスケープする必要があるため、2つ繋げることが注意点です。
証明書・秘密鍵・ovpnファイルを OpenVPN 用の設定フォルダに配置します。 OpenVPN GUI v11 をインストールしている場合、クライアントPCのデスクトップ下部の "隠れているインジケーター" から OpenVPN GUI のアイコンを右クリックし「設定」を押すことで下記のような画面が出ます。 Advanced タブから設定ファイル置き場のフォルダパスが分かります。3ファイルをこちらに配置します。
2-6. VPN接続を開始
OpenVPN GUI のアイコンを右クリックし「接続」を押下します。 ダイアログが現れ、IDとパスワードを要求されますので、接続に使用するADアカウントのIDとパスワードを入力します。 これで、接続が完了です。
3. 最後に
ひととおりスクリーンショット付きでご紹介しました。 作成・設定した各コンポーネントの意味については、冒頭に記載した前回のブログをご参照ください。
杉村 勇馬 (記事一覧)
サーバーワークス → 株式会社G-gen 執行役員CTO
2021 Japan APN Ambassadors / 2021 APN All AWS Certifications Engineers
マルチAWSアカウント管理運用やネットワーク関係のAWSサービスに関するブログ記事を過去に執筆。
2021年09月から株式会社G-genに出向、Google Cloud(GCP)が専門に。G-genでもGoogle Cloud (GCP) の技術ブログを執筆中。