Amazon Web Services ブログ

AWS 及びオンプレミスリソースに安全にアクセスができる、AWS Client VPNの紹介

大小の多くの組織は、内部ネットワークでホストされているリソースへの安全なリモートユーザーアクセスを容易にするために、何らかの形のクライアント仮想プライベートネットワーク(VPN)接続に依存しています。これは、多くの場合、EC2インスタンスでオンプレミスのVPNハードウェアまたはプロビジョニングされたクライアントソフトウェア、VPNインフラストラクチャに依存することを意味しています。これらのクライアントベースのVPNソリューションの管理は、スケーリングと運用の課題をもたらし、継続的な負担となっています。多くの場合、予期しないイベントによって帯域幅と接続要件が急上昇し、VPNの可用性が低下します。

概要

AWS Client VPNは、OpenVPNベースのクライアントを使用して、任意の場所からAWSおよびオンプレミスのリソースに安全にアクセスする機能をお客様に提供するフルマネージドサービスです。リモートのエンドユーザーからAWSおよびオンプレミスのリソースへの接続は、この高可用性でスケーラブルな従量課金制のサービスによって促進できます。クライアントVPNソリューションの維持と実行という、差別化されていない重い作業からは完全に回避されます。AWS Client VPNでユニークなのは、サービスのスケーラブルな性質です。このサービスは、ライセンスや追加のインフラストラクチャを取得または管理する必要なく、多くのユーザーにシームレスに拡張されます。これは、典型的な接続の1日の流れなど、急激なワークロードにとって重要です。この良い例が悪天候です。通常、レガシークライアントVPNソリューションは、クライアント接続の増加に伴い、クライアント接続を提供するために必要な帯域幅の巨大な流入はもちろんのこと、限界に達しています。AWS Client VPNは、使用量の増加にもかかわらず、容量のニーズに合わせてスケーリングし、一貫したユーザーエクスペリエンスを保証します。

AWS Client VPNは、証明書ベースの認証とActive Directoryベースの認証の両方をサポートしています。Active Directoryグループに基づいてアクセスコントロールルールを定義でき、セキュリティグループを使用してAWS Client VPNユーザーのアクセスを制限できるため、顧客はより厳格なセキュリティコントロールを取得できます。単一のコンソールを使用して、すべてのクライアントVPN接続を簡単に監視および管理できます。クライアントVPNでは、Windows、macOS、iOS、Android、Linuxベースのデバイスなど、OpenVPNベースのクライアントから選択できます。

クライアントVPNは、クラウド中心の方法でクライアントVPNインフラストラクチャのプロビジョニング、スケーリング、および管理を簡素化しようとしています。コンソールを数回クリックするだけで、スケーラブルなクライアントVPNソリューションを簡単に展開できます。

使い方

AWSはクライアントVPNのバックエンドインフラストラクチャを管理します。必要に応じてサービスを構成するだけです。プロビジョニングプロセスを次のアーキテクチャ図に示します。

クライアントVPNの導入

次に、クライアントVPNの展開について説明します。Active Directory認証を使用したクライアントVPN接続のエンドツーエンドソリューションの展開について説明します。

クライアントVPNエンドポイントを作成する

まず、AWSマネジメントコンソールのVPCセクションに移動します。オプションとして、クライアントVPNエンドポイントがあります。

コンソールのこの新しい部分から、クライアントVPNエンドポイントを作成できます。

次に、VPNクライアントのCIDRを選択します。この例では、使用できる最小のサブネットである/ 22アドレススペースを使用しています。必要に応じて、より大きなサブネットを指定できます(/ 18まで)。選択するサブネットが、クライアントVPNエンドポイントを介してアクセスするリソースと重複しないことを確認してください。クライアントVPNはソースNAT(SNAT)を使用して、関連付けられたVPCのリソースに接続することに注意してください。

次のセクションでは、認証のための情報を入力する必要があります。以前に管理対象のActive Directoryを展開したことがあるので、それを選択します。AWS Managed Microsoft ADディレクトリがない場合は、ここからセットアップに関する詳細情報を見つけることができます。プライベート証明書を生成してAWS Certificate Manager(ACM)にインポートする必要があります。このウォークスルーでは、Active Directory認証のみを示しています。

次のセクションでは、接続ログを構成します。この目的のために、CloudWatchロググループをすでに設定しています。接続ログを使用すると、クライアントが接続を試みたフォレンジックと、接続試行の結果を取得できます。

構成の最後のセクションでは、DNSサーバーのIPアドレスを指定し、クライアント接続にTCPまたはUDPを選択します。ここでは、Route 53 Resolverの受信エンドポイントのIPアドレスを選択していますが、環境で使用するDNSサーバーを選択できます。

必要な情報の入力が完了すると、VPNエンドポイントがPending-associateであることがわかります。これで、VPNエンドポイントを1つ以上のVPCに関連付けることができます。

クライアントVPNエンドポイントをターゲットネットワークに関連付ける

次のステップは、VPNエンドポイントをターゲットネットワーク(VPCサブネット)に関連付けることです。これは、AWSクライアントVPNコンソールのアソシエーション部分を介して行われます。

VPCとサブネットを選択して、クライアントVPNエンドポイントとの関連付けを作成します。VPCに特定のサブネットを作成して、VPCエンドポイントのENIをホストし、クライアントVPNトラフィックの可視性とトレーサビリティを容易にしました。クライアントVPCエンドポイントは複数のサブネットに関連付けることができますが、各サブネットが同じVPCに属しているが、異なるアベイラビリティーゾーンに属している必要があることです。ターゲットネットワーク(VPC内のサブネット)を正常に関連付けると、VPNセッションを作成することができ、リソースにアクセスできなくなります。

VPCへのエンドユーザーアクセスを有効にする(承認ルールを追加する)

次のステップは、認可ルールを追加することです。承認規則は、クライアントVPNエンドポイントを介して指定されたネットワークにアクセスできるユーザーのセットを制御します。例では、「クライアントVPN」ADグループのユーザーにのみアクセスを許可します。これを行うには、まず、AWSアカウントの既存のAWS Microsoft Active Directoryで作成した「クライアントVPN」ADグループのSIDを取得します。これは次のスクリーンショットに示されています。

次に、クライアントVPNコンソールの承認部分に移動し、[ Authorize Ingress ]をクリックします。

宛先ネットワークを有効にするにはインターネットのトラフィック(NAT Gatewayを通じてVPC内で実行している)を含め、クライアントVPNエンドポイントを通って流れるようにすべてのトラフィックを有効にするためには、私は0.0.0.0/0のデフォルトルートを入力します。次に、VPNユーザーグループのSIDをActive Directoryグループ名フィールド(前のコマンドを実行して取得したもの)に配置します。これで、「Client VPN」ADグループに属するユーザーは、VPNクライアントエンドポイントを介してすべてのトラフィックをルーティングすることが許可されます。

セキュリティグループの適用

クライアントVPNエンドポイントはセキュリティグループをサポートします。セキュリティグループを使用して、アプリケーションへのアクセスを制限できます。セキュリティグループは、VPCに関連付けられたENIからの下りトラフィックのみを制御することに注意してください。VPCに関連付けられたENIを介してルーティングできるトラフィックを制限するには、制限付き認証を使用できます。

まずVPNエンドポイントを選択し、セキュリティグループタブに移動します。そこから、[Apply Security Groups]を選択します。

選択する[Allow All]セキュリティグループがすでにありますが、これはより制限の厳しい1つ以上の特定のセキュリティグループのセットである可能性があります。

セキュリティグループの優れた機能は、他のセキュリティグループのトラフィックのソースとしてVPNエンドポイントに適用したセキュリティグループを活用できることです。これにより、VPNクライアントからの接続のみを許可するセキュリティグループを作成できます。

ルートを追加

関連付けられたVPCのルートは、クライアントVPNルートテーブルに自動的に追加されます。これは次のスクリーンショットに示されています。

このVPCがVPNクライアントにインターネット接続を提供するようにしたいので(NATゲートウェイは既にVPCで実行されています)、0.0.0.0 / 0のデフォルトルートをルートテーブルに追加する必要があります。このプロセスを開始するには、[ ルートの作成 ]ボタンをクリックします。次に、ターゲットVPCサブネットを選択し、説明を入力します。

ここで注目すべき興味深い点は、VPCのElastic Network Interface(ENI)にパブリックIPがあることです。サブネットがパブリックサブネットにある場合、それを使用してVPNクライアントにインターネットアクセスを提供できます。これは、EC2コンソールのネットワークインターフェイスセクションの次のスクリーンショットに示されています。

AWS Client VPNのもう一つの利点は、オンプレミスのリソースにアクセスできることです。関連付けられたVPCはオンプレミスリソースにアクセスできるので、オンプレミスネットワークのルート(10.200.0.0/24)を追加できます。ここで、すでに0.0.0.0/0を許可している認証があるため、新しい認証を明示的に追加する必要はありません。デフォルトのルート承認がない場合、オンプレミスネットワーク(10.200.0.0/24)の新しい承認を作成する必要があります。同様に、他のVPCに接続する場合は、サブネットが関連付けられているVPCにVPCをピアリングできます。

クライアント構成をダウンロードする

インフラストラクチャのプロビジョニングと構成が完了したので、最後のステップはクライアント構成をダウンロードすることです。open-VPNを使用しており、macOSを使用しているため、以下の例ではTunnelblickをダウンロードしてインストールしました。

そこから、Macの構成ファイルをダブルクリックしてTunnelblickで構成ファイルを開くだけで、VPCにVPN接続できます!

クライアント接続の監視

AWS Client VPNはクラウドベースのサービスであるため、ロギングと分析が組み込まれています。コンソールからすべてのクライアント接続を監視して、クライアント接続をすばやくリアルタイムで表示できます。これは次のスクリーンショットに示されています。クライアントの接続を監視することができました。これはトラブルシューティングと監視に非常に役立ちます。CloudWatchとCloudTrailはモニタリングにも使用できます。

結論

この投稿では、クライアントVPNを使い始めて、クライアントVPNソリューションを展開するという、差別化されていない面倒な作業を取り除くことがいかに簡単かを示しました。単一のVPNクライアントトンネルにより、OpenVPNベースのクライアントを使用して、任意の場所からAWSまたはオンプレミスのリソースにアクセスできます。また、ネットワークベースのルールとセキュリティグループを使用して、きめ細かなセキュリティ機能を利用できます。

– 翻訳はシニアエバンジェリストの亀田が行いました。