クライアント VPN エンドポイント - AWS クライアント VPN

クライアント VPN エンドポイント

すべてのクライアント VPN セッションは、クライアント VPN エンドポイントで終了します。クライアント VPN エンドポイントによってすべてのクライアント VPN セッションが管理、制御されるよう設定を行います。

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

クライアントが VPN セッションを確立できるようにするには、クライアント VPN エンドポイントを作成します。

クライアント VPN は、該当するターゲットネットワークがプロビジョニングされているのと同じ AWS アカウントに作成する必要があります。

前提条件

作業を開始する前に、次のことを必ず実行してください。

  • クライアント VPN の制限とルール のルールと制限を確認します。

  • サーバー証明書を生成し、必要に応じてクライアント証明書を取得します。詳細については、「認証」を参照してください。

クライアント VPN エンドポイントを作成するには (コンソール)

  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. ナビゲーションペインで、[Client VPN Endpoints (クライアント VPN エンドポイント)] を選択します。

  3. (オプション) [説明] に、クライアント VPN エンドポイントの簡単な説明を入力します。

  4. [Client IPv4 CIDR (クライアント IPv4 CIDR)] に、CIDR 表記で IP アドレス範囲を指定し、そこからクライアント IP アドレスを割り当てます。

  5. [Server certificate ARN (サーバー証明書 ARN)] に、サーバーによって使用される TLS 証明書の ARN を指定します。クライアントは、接続先のクライアント VPN エンドポイントを認証するためにサーバー証明書を使用します。

    注記

    サーバー証明書は AWS Certificate Manager (ACM) でプロビジョニングする必要があります。

  6. VPN 接続を確立するとき、クライアントを認証するために使用する認証方法を指定します。認証方法を選択する必要があります。

    • ユーザーベースの認証を使用するには、[ユーザーベースの認証を使用] を選択し、次のいずれかを選択します。

      • Active Directory 認証: Active Directory 認証の場合はこのオプションを選択します。[ディレクトリ ID] には、使用する Active Directory の ID を指定します。

      • フェデレーション認証: SAML ベースのフェデレーション認証の場合は、このオプションを選択します。

        [SAML プロバイダー ARN] には、IAM SAML ID プロバイダーの ARN を指定します。

        (オプション) [Self-service SAML provider ARN (セルフサービス SAML プロバイダー ARN)] で、セルフサービスポータルをサポートするために作成した IAM SAML ID プロバイダーの ARN を指定します (該当する場合)。

    • 相互証明書認証を使用するには、[Use mutual authentication] (相互認証の使用) を選択し、[Client certificate ARN] (クライアント証明書 ARN) で AWS Certificate Manager (ACM) でプロビジョニングしたクライアント証明書の ARN を指定します。

      注記

      クライアント証明書が、サーバー証明書と同じ認証機関 (発行者) によって発行されている場合、引き続きそのクライアント証明書 ARN に対してサーバー証明書 ARN を使用することができます。サーバー証明書と同じ CA を使用して、ユーザーごとに個別のクライアント証明書とキーを生成した場合は、サーバー証明書の ARN を使用できます。

  7. Amazon CloudWatch Logs を使用してクライアント接続に関するデータをログに記録するかどうかを指定します。[Do you want to log the details on client connections? (クライアント接続の詳細を記録しますか?)] で、次のいずれかの操作を行います。

    • クライアント接続のログ記録を有効にするには、[はい] を選択します。[CloudWatch Logs ロググループ名] に、使用するロググループの名前を入力します。[CloudWatch Logs ログストリーム名] に、使用するログストリームの名前を入力するか、このオプションを空白のままにしておくとログストリームが自動的に作成されます。

    • クライアント接続のログ記録を無効にするには、[いいえ] を選択します。

  8. (オプション) [Client Connect Handler (クライアント接続ハンドラー)] で、[はい] を選択して、 クライアント接続ハンドラーでクライアント VPN エンドポイントへの新しい接続を許可または拒否するカスタムコードを実行できるようにします。[Client Connect Handler ARN (クライアント接続ハンドラー ARN)] で、接続を許可または拒否するロジックを含む Lambda 関数の Amazon リソースネーム (ARN) を指定します。

  9. (オプション) DNS 解決に使用する DNS サーバーを指定します。カスタム DNS サーバーを使用するには、[DNS Server 1 IP address (DNS サーバー 1 IP アドレス)] と [DNS Server 2 IP address (DNS サーバー 2 IP アドレス)] に、使用する DNS サーバーの IP アドレスを指定します。VPC DNS サーバーを使用するには、[DNS Server 1 IP address (DNS サーバー 1 IP アドレス)] または [DNS Server 2 IP address (DNS サーバー 2 IP アドレス)] のいずれかに IP アドレスを指定し、VPC DNS サーバー IP アドレスを追加します。

    注記

    クライアントが DNS サーバーに到達できることを確認します。

  10. (オプション) エンドポイントをスプリットトンネル VPN エンドポイントにするには、[Enable split-tunnel (スプリットトンネルの有効化)] を選択します。

    デフォルトでは、VPN エンドポイントの分割トンネルは無効になっています。

  11. (オプション) デフォルトでは、クライアント VPN サーバーは UDP 転送プロトコルを使用します。代わりに TCP トランスポートプロトコルを使用するには、[Transport Protocol (トランスポートプロトコル)] の [TCP] を選択します。

    注記

    UDP は通常、TCP よりも優れたパフォーマンスが得られます。クライアント VPN エンドポイントを作成した後で、トランスポートプロトコルを変更することはできません。

  12. (オプション) [VPC ID] で、クライアント VPN エンドポイントに関連付ける VPC を選択します。[セキュリティグループ ID] で、クライアント VPN エンドポイントに適用する VPC のセキュリティグループを 1 つ以上選択します。

  13. (オプション) [VPN port (VPN ポート)] で、VPN ポート番号を選択します。デフォルトは 443 です。

  14. (オプション) クライアントのセルフサービスポータルの URL を生成するには、[Enable self-service portal (セルフサービスポータルを有効にする)] を選択します。

  15. [クライアント VPN エンドポイントの作成] を選択します。

クライアント VPN エンドポイントを作成したら、次の手順を実行して設定を完了し、クライアントが接続できるようにします。

  • クライアント VPN エンドポイントの初期状態は pending-associate です。最初のターゲットネットワークを関連付けて初めて、クライアントがクライアント VPN エンドポイントに接続できるようになります。

  • 承認ルールを作成して、ネットワークにアクセスできるクライアントを指定します。

  • クライアントに配布するクライアント VPN エンドポイント設定ファイルをダウンロードして準備します。

  • AWS 提供のクライアントまたは別の OpenVPN ベースのクライアントアプリケーションを使用して、クライアント VPN エンドポイントに接続するようクライアントに指定します。詳細については、AWS Client VPN ユーザーガイドを参照してください。

クライアント VPN エンドポイントを作成するには (AWS CLI)

create-client-vpn-endpoint コマンドを使用します。

クライアント VPN エンドポイントを変更する

クライアント VPN を作成した後、次の設定を変更できます。

  • 説明

  • サーバー証明書

  • クライアント接続ログオプション

  • DNS サーバー

  • スプリットトンネルオプション

  • VPC とセキュリティグループの関連付け

  • VPN ポート番号

  • クライアント接続ハンドラーのオプション

  • セルフサービスポータルオプション

クライアント VPN エンドポイントの作成後に、クライアントの IPv4 CIDR 範囲、認証オプション、またはトランスポートプロトコルを変更することはできません。

クライアント VPN エンドポイントで次のいずれかのパラメータを変更すると、接続がリセットされます。

  • サーバー証明書

  • DNS サーバー

  • スプリットトンネルオプション (サポートをオンまたはオフ)

  • ルート (スプリットトンネルオプションを使用する場合)

  • 証明書失効リスト (CRL)

  • 承認ルール

  • VPN ポート番号

コンソールまたは AWS CLI を使用して、クライアント VPN エンドポイントを変更できます。

クライアント VPN エンドポイントを変更するには (コンソール)

  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. ナビゲーションペインで、[Client VPN Endpoints (クライアント VPN エンドポイント)] を選択します。

  3. 変更するクライアント VPN エンドポイントを選択し、[アクション]、[クライアント VPN エンドポイントの変更] の順に選択します。

  4. (オプション) [Description] (説明) で、クライアント VPN エンドポイントの簡単な説明を入力します。

  5. [Client IPv4 CIDR (クライアント IPv4 CIDR)] に、CIDR 表記で IP アドレス範囲を指定し、そこからクライアント IP アドレスを割り当てます。

  6. [Server certificate ARN (サーバー証明書 ARN)] に、サーバーによって使用される TLS 証明書の ARN を指定します。クライアントは、接続先のクライアント VPN エンドポイントを認証するためにサーバー証明書を使用します。

    注記

    サーバー証明書は AWS Certificate Manager (ACM) でプロビジョニングする必要があります。

  7. Amazon CloudWatch Logs を使用してクライアント接続に関するデータをログに記録するかどうかを指定します。[Do you want to log the details on client connections? (クライアント接続の詳細を記録しますか?)] で、次のいずれかの操作を行います。

    • クライアント接続のログ記録を有効にするには、[はい] を選択します。[CloudWatch Logs ロググループ名] に、使用するロググループの名前を入力します。[CloudWatch Logs ログストリーム名] に、使用するログストリームの名前を入力するか、このオプションを空白のままにしておくとログストリームが自動的に作成されます。

    • クライアント接続のログ記録を無効にするには、[いいえ] を選択します。

  8. [Client Connect Handler] (クライアント接続ハンドラー) で、[Yes] (はい) を選択して、 クライアント接続ハンドラーでクライアント VPN エンドポイントへの新しい接続を許可または拒否するカスタムコードを実行できるようにします。[Client Connect Handler ARN (クライアント接続ハンドラー ARN)] で、接続を許可または拒否するロジックを含む Lambda 関数の Amazon リソースネーム (ARN) を指定します。

  9. DNS 解決に使用する DNS サーバーを指定します。カスタム DNS サーバーを使用するには、[DNS Server 1 IP address (DNS サーバー 1 IP アドレス)] と [DNS Server 2 IP address (DNS サーバー 2 IP アドレス)] に、使用する DNS サーバーの IP アドレスを指定します。VPC DNS サーバーを使用するには、[DNS Server 1 IP address (DNS サーバー 1 IP アドレス)] または [DNS Server 2 IP address (DNS サーバー 2 IP アドレス)] のいずれかに IP アドレスを指定し、VPC DNS サーバー IP アドレスを追加します。

    注記

    クライアントが DNS サーバーに到達できることを確認します。

  10. エンドポイントをスプリットトンネル VPN エンドポイントにするには、[Enable split-tunnel] (スプリットトンネルの有効化) を選択します。

    デフォルトでは、VPN エンドポイントの分割トンネルは無効になっています。

  11. ([VPC ID] で、クライアント VPN エンドポイントに関連付ける VPC を選択します。[セキュリティグループ ID] で、クライアント VPN エンドポイントに適用する VPC のセキュリティグループを 1 つ以上選択します。

  12. [VPN port] (VPN ポート) で、VPN ポート番号を選択します。デフォルトは 443 です。

  13. クライアントのセルフサービスポータルの URL を生成するには、[Enable self-service portal] (セルフサービスポータルを有効にする) を選択します。

  14. [クライアント VPN エンドポイントの変更] を選択します。

クライアント VPN エンドポイントを変更するには (AWS CLI)

modify-client-vpn-endpoint コマンドを使用します。

クライアント設定ファイルをエクスポートして設定する

クライアント VPN エンドポイント設定ファイルは、クライアント (ユーザー) がクライアント VPN エンドポイントとの VPN 接続を確立するために使用するファイルです。このファイルをダウンロード (エクスポート) し、VPN へのアクセスを必要とするすべてのクライアントに配布する必要があります。または、クライアント VPN エンドポイントのセルフサービスポータルを有効にした場合、クライアントはポータルにログインして、構成ファイルを自身でダウンロードできます。詳細については、「セルフサービスポータルにアクセスする」を参照してください。

クライアント VPN エンドポイントが相互認証を使用する場合は、ダウンロードする .ovpn 設定ファイルにクライアント証明書とクライアントプライベートキーを追加する必要があります。お客様が情報を追加した後、クライアントは .ovpn ファイルを OpenVPN クライアントソフトウェアにインポートできます。

重要

クライアント証明書とクライアントプライベートキー情報をファイルに追加しない場合、相互認証を使用して認証するクライアントはクライアント VPN エンドポイントに接続できません。

デフォルトでは、OpenVPN クライアント設定の「-remote-random-hostname」オプションは、ワイルドカード DNS を有効にします。ワイルドカード DNS が有効になっているため、クライアントはエンドポイントの IP アドレスをキャッシュしません。そのため、エンドポイントの DNS 名に ping を実行することはできません。

クライアント VPN エンドポイントが Active Directory 認証を使用しており、クライアント設定ファイルの配布後にディレクトリで Multi-Factor Authentication (MFA) を有効にした場合は、新しいファイルをダウンロードしてクライアントに再配布する必要があります。クライアントは、以前の設定ファイルを使用してクライアント VPN エンドポイントに接続することはできません。

クライアント設定ファイルをエクスポートする

コンソールまたは AWS CLI を使用して、クライアント設定をエクスポートできます。

クライアント設定をエクスポートするには (コンソール)

  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. ナビゲーションペインで、[Client VPN Endpoints (クライアント VPN エンドポイント)] を選択します。

  3. クライアント設定をダウンロードするクライアント VPN エンドポイントを選択し、[クライアント設定のダウンロード] を選択します。

クライアント設定をエクスポートするには (AWS CLI)

export-client-vpn-client-configuration コマンドを使用し、出力ファイル名を指定します。

$ aws ec2 export-client-vpn-client-configuration --client-vpn-endpoint-id endpoint_id --output text>config_filename.ovpn

クライアント証明書とキー情報を追加する (相互認証)

クライアント VPN エンドポイントが相互認証を使用する場合は、ダウンロードする .ovpn 設定ファイルにクライアント証明書とクライアントプライベートキーを追加する必要があります。

相互認証を使用する場合は、クライアント証明書を変更できません。

クライアント証明書とキー情報を追加するには (相互認証)

次のオプションの 1 つを使用できます。

(オプション 1) クライアント証明書とキーを、クライアント VPN エンドポイント設定ファイルとともにクライアントに配布します。この場合、設定ファイルで証明書とキーへのパスを指定します。任意のテキストエディタを使用して設定ファイルを開き、以下をファイルの最後に追加します。/path/ をクライアント証明書とキーの場所に置き換えます (この場所は、エンドポイントに接続しているクライアントから見た相対的な位置です)。

cert /path/client1.domain.tld.crt key /path/client1.domain.tld.key

(オプション 2) <cert></cert> タグ間のクライアント証明書の内容と、<key></key> タグ間のプライベートキーの内容を設定ファイルに追加します。このオプションを選択した場合、設定ファイルのみをクライアントに配布します。

クライアント VPN エンドポイントに接続するユーザーごとに個別のクライアント証明書とキーを生成した場合は、ユーザーごとにこのステップを繰り返します。

クライアント証明書とキーを含むクライアント VPN 設定ファイルの形式の例を次に示します。

client dev tun proto udp remote asdf.cvpn-endpoint-0011abcabcabcabc1.prod.clientvpn.eu-west-2.amazonaws.com 443 remote-random-hostname resolv-retry infinite nobind persist-key persist-tun remote-cert-tls server cipher AES-256-GCM verb 3 <ca> Contents of CA </ca> <cert> Contents of client certificate (.crt) file </cert> <key> Contents of private key (.key) file </key> reneg-sec 0

セルフサービスポータルにアクセスする

クライアント VPN エンドポイントでセルフサービスポータルを有効にした場合、セルフサービスポータルの URL をクライアントに提供できます。クライアントは、ウェブブラウザでポータルにアクセスし、ユーザーベースの認証情報を使用してログインできます。ポータルでは、クライアントはクライアント VPN エンドポイント設定ファイルをダウンロードでき、AWS 提供のクライアントの最新バージョンをダウンロードできます。

以下のルールが適用されます。

  • セルフサービスポータルは、相互認証を使用して認証するクライアントでは利用できません。

  • セルフサービスポータルで利用できる設定ファイルは、Amazon VPC コンソールまたは AWS CLI を使用してエクスポートする設定ファイルと同じです。クライアントへの配布前に設定ファイルをカスタマイズする必要がある場合は、カスタマイズしたファイルを自分自身でクライアントに配布する必要があります。

  • クライアント VPN エンドポイントに対してセルフサービスポータルオプションを有効にする必要があります。有効にしないと、クライアントはポータルにアクセスできません。このオプションが有効になっていない場合は、クライアント VPN エンドポイントを変更して有効にすることができます。

セルフサービスポータルオプションを有効にした後、次の URL のいずれかをクライアントに提供します。

  • https://self-service.clientvpn.amazonaws.com/

    クライアントがこの URL を使用してポータルにアクセスする場合、クライアントは、ログインする前にクライアント VPN エンドポイントの ID を入力する必要があります。

  • https://self-service.clientvpn.amazonaws.com/endpoints/<endpoint-id>

    上記の URLの <endpoint-id> をクライアント VPN エンドポイントの ID (たとえば、cvpn-endpoint-0123456abcd123456) に置き換えます。

セルフサービスポータルの URL は、describe-client-vpn-endpoints AWS CLI コマンドの出力にも表示できます。または、URL は Amazon VPC コンソールの [クライアント VPN エンドポイント (Client VPN Endpoints)] ページの [概要] タブに表示されます。

フェデレーション認証で使用するためのセルフサービスポータルの設定の詳細については、「セルフサービスポータルのサポート」を参照してください。

クライアント VPN エンドポイントを表示する

コンソールまたは AWS CLI を使用して、クライアント VPN エンドポイントに関する情報を表示できます。

コンソールを使用してクライアント VPN エンドポイントを表示するには

  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. ナビゲーションペインで、[Client VPN Endpoints (クライアント VPN エンドポイント)] を選択します。

  3. 表示するクライアント VPN エンドポイントを選択します。

  4. タブを使って、関連付けられたターゲットネットワークや承認ルール、ルート、クライアント接続を表示します。

    フィルターを使用すると、検索を絞り込むことができます。

AWS CLI を使用してクライアント VPN エンドポイントを表示するには

describe-client-vpn-endpoints コマンドを使用します。

クライアント VPN エンドポイントを削除する

クライアント VPN エンドポイントを削除すると、そのステータスは deleting に変わり、クライアントが接続できなくなります。クライアント VPN エンドポイントを削除する前に、関連付けられているすべてのターゲットネットワークの関連付けを解除する必要があります。

コンソールまたは AWS CLI を使用して、クライアント VPN エンドポイントを削除できます。

クライアント VPN エンドポイントを削除するには (コンソール)

  1. Amazon VPC コンソール (https://console.aws.amazon.com/vpc/) を開きます。

  2. ナビゲーションペインで、[Client VPN Endpoints (クライアント VPN エンドポイント)] を選択します。

  3. 削除するクライアント VPN エンドポイントを選択し、[アクション]、[クライアント VPN エンドポイントの削除]、[はい、削除します] の順に選択します。

クライアント VPN エンドポイントを削除するには (AWS CLI)

delete-client-vpn-endpoint コマンドを使用します。