

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS Client VPN の仕組み
<a name="how-it-works"></a>

AWS Client VPN には、クライアント VPN エンドポイントとやり取りする 2 つのタイプのユーザー、つまり管理者およびクライアントがいます。

クライアント VPN は IPv4、IPv6、デュアルスタック (IPv4 と IPv6 の両方) 接続をサポートします。IPv4、IPv6、またはその両方を使用するエンドポイントを作成すると、VPC 内の IPv6 リソースに接続したり、IPv6 ネットワーク上のクライアントから接続したりできます。こうした柔軟性は、IPv6 インフラストラクチャを既に実装しているか、移行している組織に役立ちます。

*管理者*は、サービスの設定と設定を担当します。このプロセスには、クライアント VPN エンドポイントの作成、ターゲットネットワークの関連付け、承認ルールの設定、および追加のルート (必要な場合) の設定が含まれます。クライアント VPN エンドポイントを設定した後、管理者はクライアント VPN エンドポイント設定ファイルをダウンロードして、アクセスが必要なクライアントに配布します。クライアント VPN エンドポイント設定ファイルには、クライアント VPN エンドポイントの DNS 名と、VPN セッションを確立するために必要な認証情報が含まれています。サービス設定の詳細については、「[の使用を開始する AWS Client VPN](cvpn-getting-started.md)」を参照してください。

*クライアント*はエンドユーザーです。これは、VPN セッションを確立するためにクライアント VPN エンドポイントに接続する人です。クライアントは OpenVPN ベースの VPN クライアントアプリケーションを使用して、ローカルコンピュータまたはモバイルデバイスから VPN セッションを確立します。VPN セッションが確立されたら、関連付けられているサブネットが存在する VPC のリソースに安全にアクセスできます。必要なルートと承認ルールが設定されている場合は、AWS、オンプレミスネットワーク、または他のクライアントの他のリソースにもアクセスできます。VPN セッションを確立するためのクライアント VPN エンドポイントへの接続の詳細については、「*AWS Client VPN ユーザーガイド*」の「[開始方法](https://docs.aws.amazon.com/vpn/latest/clientvpn-user/user-getting-started.html)」を参照してください。

次の図は、基本的なクライアント VPN アーキテクチャを示しています。

![\[クライアント VPN アーキテクチャ\]](http://docs.aws.amazon.com/ja_jp/vpn/latest/clientvpn-admin/images/architecture.png)


## クライアント VPN のシナリオと例
<a name="scenario"></a>

AWS Client VPN は、クライアントが AWS とオンプレミスネットワークの両方のリソースに安全にアクセスできるようにするフルマネージド型のリモートアクセス VPN ソリューションです。アクセスの設定方法には複数のオプションがあります。このセクションでは、クライアントの VPN アクセスを作成して設定するための例について説明します。

**シナリオ**
+ [クライアント VPN を使用した VPC へのアクセス](#scenario-vpc)
+ [クライアント VPN を使用したピア接続 VPC へのアクセス](#scenario-peered)
+ [クライアント VPN を使用したオンプレミスネットワークへのアクセス](#scenario-onprem)
+ [クライアント VPN を使用したインターネットへのアクセス](#scenario-internet)
+ [クライアント VPN を使用したクライアントからクライアントへのアクセス](#scenario-client-to-client)
+ [クライアント VPN を使用したネットワークへのアクセス制限](#scenario-restrict)

### クライアント VPN を使用した VPC へのアクセス
<a name="scenario-vpc"></a>

このシナリオの AWS Client VPN 設定には、単一のターゲット VPC が含まれています。クライアントに単一の VPC 内のリソースへのアクセスのみを許可する必要がある場合は、この設定をお勧めします。

![\[VPC にアクセスするクライアント VPN\]](http://docs.aws.amazon.com/ja_jp/vpn/latest/clientvpn-admin/images/client-vpn-scenario-vpc.png)


開始する前に、以下を実行します:
+ 少なくとも 1 つのサブネットを持つ VPC を作成または識別します。クライアント VPN エンドポイントと関連付ける VPC のサブネットを特定し、その IPv4 CIDR 範囲をメモしておきます。
+ VPC CIDR と重複しないクライアント IP アドレスに適切な CIDR 範囲を特定します。
+ [を使用するためのルールとベストプラクティス AWS Client VPN](what-is-best-practices.md) のクライアント VPN エンドポイントのルールと制限を確認します。

**この設定を実装するには**

1. VPC と同じリージョンにクライアント VPN エンドポイントを作成します。これを行うには、「[AWS Client VPNエンドポイントを作成する](cvpn-working-endpoint-create.md)」で説明されているステップを実行します。

1. サブネットをクライアント VPN エンドポイントに関連付けます。これを行うには、「[ターゲットネットワークを AWS Client VPN エンドポイントに関連付ける](cvpn-working-target-associate.md)」で説明されているステップを実行し、先ほど確認した VPC およびサブネットを選択します。

1. 承認ルールを追加して、クライアントに VPC へのアクセスを提供します。これを行うには、「[承認ルールを追加する](cvpn-working-rule-authorize-add.md)」で説明されているステップを実行し、**[送信先ネットワーク]** で、VPC の IPv4 CIDR 範囲を入力します。

1. リソースのセキュリティグループにルールを追加して、ステップ 2 でサブネットの関連付けに適用されたセキュリティグループからのトラフィックを許可します。詳細については、「[セキュリティグループ](client-authorization.md#security-groups)」を参照してください。

### クライアント VPN を使用したピア接続 VPC へのアクセス
<a name="scenario-peered"></a>

このシナリオの AWS Client VPN 設定には、追加の VPC (VPC B) とピア接続されているターゲット VPC (VPC A) が含まれます。クライアントにターゲット VPC およびそれとピア接続されている他の VPC (VPC B など) にあるリソースへのアクセスを許可する必要がある場合は、この設定をお勧めします。

**注記**  
以下のネットワーク図に示すピア接続された VPC へのアクセスを許可する手順は、Client VPN エンドポイントがスプリットトンネルモードに設定されている場合にのみ必要です。フルトンネルモードでは、ピア接続された VPC へのアクセスがデフォルトで許可されます。

![\[ピア VPC にアクセスするクライアント VPN\]](http://docs.aws.amazon.com/ja_jp/vpn/latest/clientvpn-admin/images/client-vpn-scenario-peer-vpc.png)


開始する前に、以下を実行します。
+ 少なくとも 1 つのサブネットを持つ VPC を作成または識別します。クライアント VPN エンドポイントと関連付ける VPC のサブネットを特定し、その IPv4 CIDR 範囲をメモしておきます。
+ VPC CIDR と重複しないクライアント IP アドレスに適切な CIDR 範囲を特定します。
+ [を使用するためのルールとベストプラクティス AWS Client VPN](what-is-best-practices.md) のクライアント VPN エンドポイントのルールと制限を確認します。

**この設定を実装するには**

1. VPC 間の VPC ピア接続を確立します。*Amazon VPC ピアリングガイド*の「[VPC ピア接続の作成と承認](https://docs.aws.amazon.com/vpc/latest/peering/create-vpc-peering-connection.html)」のステップに従います。VPC A のインスタンスがピア接続を介して VPC B のインスタンスと通信できることを確認します。

1. ターゲット VPC と同じリージョンに、クライアント VPN エンドポイントを作成します。これは、前の図では VPC A です。「[AWS Client VPNエンドポイントを作成する](cvpn-working-endpoint-create.md)」に説明されている手順を実行します。

1. 特定したサブネットを、作成したクライアント VPN エンドポイントと関連付けます。これを行うには、「[ターゲットネットワークを AWS Client VPN エンドポイントに関連付ける](cvpn-working-target-associate.md)」で説明している手順を実行し、VPC とサブネットを選択します。デフォルトでは、VPC のデフォルトセキュリティグループをクライアント VPN エンドポイントに関連付けます。「[でターゲットネットワークにセキュリティグループを適用する AWS Client VPN](cvpn-working-target-apply.md)」で説明している手順を使用して、別のセキュリティグループを関連付けることができます。

1. 承認ルールを追加して、クライアントにターゲット VPC へのアクセスを提供します。これを行うには、「[承認ルールを追加する](cvpn-working-rule-authorize-add.md)」で説明されているステップを実行します。**[有効にする送信先ネットワーク]** に、VPC の IPv4 CIDR 範囲を入力します。

1. ピア VPC にトラフィックを送信するルートを追加します。これは、図では VPC B です。これを行うには、「[AWS Client VPN エンドポイントルートの作成](cvpn-working-routes-create.md)」で説明している手順を実行します。**[ルート送信先]** に、ピアリングされた VPC の IPv4 CIDR 範囲を入力します。**[ターゲット VPC サブネット ID]** で、クライアント VPN エンドポイントに関連付けたサブネットを選択します。

1. クライアントにピア接続 VPC へのアクセスを許可するための承認ルールを追加します。これを行うには、「[承認ルールを追加する](cvpn-working-rule-authorize-add.md)」で説明されているステップを実行します。**[送信先ネットワーク]** に、ピアリングされた VPC の IPv4 CIDR 範囲を入力します。

1. VPC A および VPC B でインスタンスのセキュリティグループにルールを追加し、ステップ 3 でクライアント VPN エンドポイントに適用したセキュリティグループからのトラフィックを許可します。詳細については、「[セキュリティグループ](client-authorization.md#security-groups)」を参照してください。

### クライアント VPN を使用したオンプレミスネットワークへのアクセス
<a name="scenario-onprem"></a>

このシナリオの AWS Client VPN 設定には、オンプレミスネットワークへのアクセスのみが含まれています。クライアントにオンプレミスネットワーク内のリソースへのアクセスのみを許可する必要がある場合は、この設定をお勧めします。

![\[オンプレミスネットワークにアクセスするクライアント VPN\]](http://docs.aws.amazon.com/ja_jp/vpn/latest/clientvpn-admin/images/client-vpn-scenario-on-premises.png)


開始する前に、以下を実行します:
+ 少なくとも 1 つのサブネットを持つ VPC を作成または識別します。クライアント VPN エンドポイントと関連付ける VPC のサブネットを特定し、その IPv4 CIDR 範囲をメモしておきます。
+ VPC CIDR と重複しないクライアント IP アドレスに適切な CIDR 範囲を特定します。
+ [を使用するためのルールとベストプラクティス AWS Client VPN](what-is-best-practices.md) のクライアント VPN エンドポイントのルールと制限を確認します。

**この設定を実装するには**

1. AWS Site-to-Site VPN 接続を介した VPC と独自のオンプレミスネットワーク間の通信を有効にします。これを行うには、「*AWS Site-to-Site VPN ユーザーガイド*」の「[開始方法](https://docs.aws.amazon.com/vpn/latest/s2svpn/SetUpVPNConnections.html)」で説明されているステップを実行します。
**注記**  
または、VPC とオンプレミスネットワーク間の Direct Connect 接続を使用して、このシナリオを実装することもできます。詳細については、「[Direct Connect ユーザーガイド](https://docs.aws.amazon.com/directconnect/latest/UserGuide/)」を参照してください。

1. 前のステップで作成した AWS Site-to-Site VPN 接続をテストします。これを行うには、「*AWS Site-to-Site VPN ユーザーガイド*」の「[Site-to-Site VPN 接続のテスト](https://docs.aws.amazon.com/vpn/latest/s2svpn/HowToTestEndToEnd_Linux.html)」で説明されているステップを実行します。VPN 接続が正常に機能する場合は、次のステップに進みます。

1. VPC と同じリージョンにクライアント VPN エンドポイントを作成します。これを行うには、「[AWS Client VPNエンドポイントを作成する](cvpn-working-endpoint-create.md)」で説明されているステップを実行します。

1. 以前に特定したサブネットをクライアント VPN エンドポイントに関連付けます。これを行うには、「[ターゲットネットワークを AWS Client VPN エンドポイントに関連付ける](cvpn-working-target-associate.md)」で説明されているステップを実行し、VPC とサブネットを選択します。

1. AWS Site-to-Site VPN 接続へのアクセスを許可するルートを追加します。これを行うには、「[AWS Client VPN エンドポイントルートの作成](cvpn-working-routes-create.md)」で説明されているステップを実行します。**[ルート送信先]** には、AWS Site-to-Site VPN 接続の IPv4 CIDR 範囲を入力し、**[ターゲット VPC サブネット ID]** には、クライアント VPN エンドポイントに関連付けたサブネットを選択します。

1. クライアントに、AWS Site-to-Site VPN 接続へのアクセス権を付与する承認ルールを追加します。これを行うには、「[AWS Client VPN エンドポイントに認可ルールを追加する](cvpn-working-rule-authorize-add.md)」で説明されているステップを実行します。**[送信先ネットワーク]** で、AWS Site-to-Site VPN 接続の IPv4 CIDR 範囲を入力します。

### クライアント VPN を使用したインターネットへのアクセス
<a name="scenario-internet"></a>

このシナリオの AWS Client VPN 設定には、単一のターゲット VPC とインターネットへのアクセスが含まれています。クライアントに単一のターゲット VPC 内のリソースへのアクセスを許可し、インターネットへのアクセスをも許可する必要がある場合は、この設定をお勧めします。

[の使用を開始する AWS Client VPN](cvpn-getting-started.md) チュートリアルが完了している場合、このシナリオはすでに実装されていることになります。

![\[インターネットにアクセスするクライアント VPN\]](http://docs.aws.amazon.com/ja_jp/vpn/latest/clientvpn-admin/images/client-vpn-scenario-igw.png)


開始する前に、以下を実行します:
+ 少なくとも 1 つのサブネットを持つ VPC を作成または識別します。クライアント VPN エンドポイントと関連付ける VPC のサブネットを特定し、その IPv4 CIDR 範囲をメモしておきます。
+ VPC CIDR と重複しないクライアント IP アドレスに適切な CIDR 範囲を特定します。
+ [を使用するためのルールとベストプラクティス AWS Client VPN](what-is-best-practices.md) のクライアント VPN エンドポイントのルールと制限を確認します。

**この設定を実装するには**

1. クライアント VPN エンドポイントに使用するセキュリティグループで、インターネットへのアウトバウンドトラフィックが許可されていることを確認します。このためには、HTTP および HTTPS トラフィックについて、0.0.0.0/0 へのトラフィックを許可するアウトバウンドルールを追加します。

1. インターネットゲートウェイを作成して VPC にアタッチします。詳細については、「*Amazon VPC ユーザーガイド*」の「[インターネットゲートウェイの作成とアタッチ ](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html#Add_IGW_Attach_Gateway)」を参照してください。

1. インターネットゲートウェイへのルートをそのルートテーブルに追加して、サブネットを公開します。[VPC コンソール] で、**[サブネット]** を選択し、クライアント VPN エンドポイントに関連付ける予定のサブネットを選択します。**[ルートテーブル]** を選択し、次にルートテーブル ID を選択します。**[アクション]** を選択し、**[ルートを編集]** を選択して、**[ルートの追加]** を選択します。**[送信先]** に、`0.0.0.0/0` を入力し、**[ターゲット]** で、前のステップからインターネットゲートウェイを選択します。

1. VPC と同じリージョンにクライアント VPN エンドポイントを作成します。これを行うには、「[AWS Client VPNエンドポイントを作成する](cvpn-working-endpoint-create.md)」で説明されているステップを実行します。

1. 以前に特定したサブネットをクライアント VPN エンドポイントに関連付けます。これを行うには、「[ターゲットネットワークを AWS Client VPN エンドポイントに関連付ける](cvpn-working-target-associate.md)」で説明されているステップを実行し、VPC とサブネットを選択します。

1. 承認ルールを追加して、クライアントに VPC へのアクセスを提供します。これを行うには、「[承認ルールを追加する](cvpn-working-rule-authorize-add.md)」で説明されているステップを実行します。**[有効にする送信先ネットワーク]** で、VPC の IPv4 CIDR 範囲を入力します。

1. インターネットへのトラフィックを可能にするルートを追加します。これを行うには、「[AWS Client VPN エンドポイントルートの作成](cvpn-working-routes-create.md)」で説明されているステップを実行します。**[ルート送信先]** に `0.0.0.0/0` を入力し、**[ターゲット VPC サブネット ID]** でクライアント VPN エンドポイントに関連付けたサブネットを選択してください。

1. 承認ルールを追加して、クライアントにインターネットへのアクセスを許可します。これを行うには、「[承認ルールを追加する](cvpn-working-rule-authorize-add.md)」で説明されているステップを実行し、**送信先ネットワーク**として「`0.0.0.0/0`」と入力します。

1. VPC 内のリソースのセキュリティグループに、クライアント VPN エンドポイントに関連付けられたセキュリティグループからのアクセスを許可するルールがあることを確認します。これにより、クライアントが VPC 内のリソースにアクセスできるようになります。

### クライアント VPN を使用したクライアントからクライアントへのアクセス
<a name="scenario-client-to-client"></a>

このシナリオの AWS Client VPN 設定では、クライアントは単一の VPC にアクセスでき、クライアントが相互にトラフィックをルーティングできます。同じクライアント VPN エンドポイントに接続するクライアントも相互に通信する必要がある場合は、この設定をお勧めします。クライアントは、クライアント VPN エンドポイントに接続するときに、クライアントの CIDR 範囲から割り当てられた一意の IP アドレスを使用して相互に通信できます。

![\[クライアント間のアクセス\]](http://docs.aws.amazon.com/ja_jp/vpn/latest/clientvpn-admin/images/client-vpn-scenario-client-to-client.png)


開始する前に、以下を実行します:
+ 少なくとも 1 つのサブネットを持つ VPC を作成または識別します。クライアント VPN エンドポイントと関連付ける VPC のサブネットを特定し、その IPv4 CIDR 範囲をメモしておきます。
+ VPC CIDR と重複しないクライアント IP アドレスに適切な CIDR 範囲を特定します。
+ [を使用するためのルールとベストプラクティス AWS Client VPN](what-is-best-practices.md) のクライアント VPN エンドポイントのルールと制限を確認します。

**注記**  
Active Directory グループまたは SAML ベースの IdP グループを使用するネットワークベースの承認規則は、このシナリオではサポートされません。

**この設定を実装するには**

1. VPC と同じリージョンにクライアント VPN エンドポイントを作成します。これを行うには、「[AWS Client VPNエンドポイントを作成する](cvpn-working-endpoint-create.md)」で説明されているステップを実行します。

1. 以前に特定したサブネットをクライアント VPN エンドポイントに関連付けます。これを行うには、「[ターゲットネットワークを AWS Client VPN エンドポイントに関連付ける](cvpn-working-target-associate.md)」で説明されているステップを実行し、VPC とサブネットを選択します。

1. ルートテーブルのローカルネットワークにルートを追加します。これを行うには、「[AWS Client VPN エンドポイントルートの作成](cvpn-working-routes-create.md)」で説明されているステップを実行します。**[ルート送信先]** に、クライアントの CIDR 範囲を入力し、**[ターゲット VPC サブネット ID]** で `local` を指定します。

1. 承認ルールを追加して、クライアントに VPC へのアクセスを提供します。これを行うには、「[承認ルールを追加する](cvpn-working-rule-authorize-add.md)」で説明されているステップを実行します。**[有効にする送信先ネットワーク]** に、VPC の IPv4 CIDR 範囲を入力します。

1. クライアントにクライアントの CIDR 範囲へのアクセスを許可するための承認ルールを追加します。これを行うには、「[承認ルールを追加する](cvpn-working-rule-authorize-add.md)」で説明されているステップを実行します。**[有効にする送信先ネットワーク]** に、クライアントの CIDR 範囲を入力します。

### クライアント VPN を使用したネットワークへのアクセス制限
<a name="scenario-restrict"></a>

VPC 内の特定のリソースへのアクセスを制限するように AWS Client VPN エンドポイントを設定できます。ユーザーベースの認証の場合、クライアント VPN エンドポイントにアクセスするユーザーグループに基づいて、ネットワークの一部へのアクセスを制限することもできます。

#### セキュリティグループを使用してアクセスを制限する
<a name="scenario-restrict-security-groups"></a>

ターゲットネットワーク関連付けに適用されたセキュリティグループ (クライアント VPN セキュリティグループ) を参照するセキュリティ グループルールを追加または削除することで、VPC 内の特定のリソースへのアクセスを許可または拒否することができます。この設定は「[クライアント VPN を使用した VPC へのアクセス](#scenario-vpc)」で説明されているシナリオに拡張します。この設定は、そのシナリオで設定された承認ルールに加えて適用されます。

特定のリソースへのアクセスを許可するには、リソースが実行されているインスタンスに関連付けられているセキュリティグループを特定します。次に、クライアント VPN セキュリティグループからのトラフィックを許可するルールを作成します。

以下の図では、セキュリティグループ A はクライアント VPN セキュリティグループで、セキュリティグループ B は EC2 インスタンスに関連付けられ、セキュリティグループ C は EC2 インスタンスに関連付けられています。セキュリティグループ A からのアクセスを許可するルールをセキュリティグループ B に追加すると、クライアントはセキュリティグループ B に関連付けられているインスタンスにアクセスできます。セキュリティグループ C に、セキュリティグループ A からのアクセスを許可するルールがない場合、クライアントはセキュリティグループ C に関連付けられたインスタンスにアクセスできません。

![\[VPC 内のリソースへのアクセスを制限する\]](http://docs.aws.amazon.com/ja_jp/vpn/latest/clientvpn-admin/images/client-vpn-scenario-security-groups.png)


開始する前に、クライアント VPN セキュリティグループが VPC 内の他のリソースに関連付けられているかどうかを確認します。クライアント VPN セキュリティグループを参照するルールを追加または削除すると、他の関連するリソースへのアクセスを許可または拒否することができます。これを防ぐには、クライアント VPN エンドポイント専用として使用するために作成されたセキュリティグループを使用します。

**セキュリティグループルールを作成するには**

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

1. ナビゲーションペインで、**[セキュリティグループ]** を選択します。

1. リソースが実行されているインスタンスに関連付けられているセキュリティグループを選択します。

1. **[アクション]**、**[インバウンドルールの編集]** の順に選択します。

1. **[ルールの追加]** を選択し、次の操作を行います。
   + **[タイプ]** で、**[すべてのトラフィック]**、または許可する特定のタイプのトラフィックを選択します。
   + [**ソース**] で [**カスタム**] を選択し、クライアント VPN セキュリティグループの ID を入力または選択します。

1. **[ルールの保存]** を選択します。

特定のリソースへのアクセスを削除するには、リソースが実行されているインスタンスに関連付けられているセキュリティグループを確認します。クライアント VPN セキュリティグループからのトラフィックを許可するルールがある場合は、それを削除します。

**セキュリティグループルールを確認するには**

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

1. ナビゲーションペインで、**[セキュリティグループ]** を選択します。

1. **[インバウンドルール]** を選択します。

1. ルールのリストを確認します。**[ソース]** がクライアント VPN セキュリティグループであるルールがある場合は、**[ルールの編集]** を選択し、そのルールの **[削除]** (x アイコン) を選択します。[**Save Rules (ルールの保存)**] を選択します。

#### ユーザーグループに基づいてアクセスを制限する
<a name="scenario-restrict-groups"></a>

クライアント VPN エンドポイントがユーザーベースの認証用に設定されている場合は、特定のユーザーグループにネットワークの特定の部分へのアクセスを許可できます。そのためには、以下のステップを完了します。

1. Directory Service または IdP でユーザーとグループを設定します。詳細については、次のトピックを参照してください。
   + [クライアント VPN での Active Directory 認証](ad.md)
   + [SAML ベースのフェデレーション認証の要件と考慮事項](federated-authentication.md#saml-requirements)

1. クライアント VPN エンドポイントの許可ルールを作成して、指定したグループがネットワークの全部または一部にアクセスできるようにします。詳細については、「[AWS Client VPN 認可ルール](cvpn-working-rules.md)」を参照してください。

クライアント VPN エンドポイントが相互認証用に設定されている場合は、ユーザーグループを設定できません。承認ルールを作成するときは、すべてのユーザーにアクセスを許可する必要があります。特定のユーザーグループがネットワークの特定の部分にアクセスできるようにするには、複数の クライアント VPN エンドポイントを作成します。たとえば、ネットワークにアクセスするユーザーグループごとに、次の操作を実行します。

1. そのユーザーグループに対して、サーバー証明書、クライアント証明書、およびキーのセットを作成します。詳細については、「[での相互認証 AWS Client VPN](mutual.md)」を参照してください。

1. クライアント VPN エンドポイントを作成します。詳細については、「[AWS Client VPNエンドポイントを作成する](cvpn-working-endpoint-create.md)」を参照してください。

1. ネットワークのすべてまたは一部へのアクセスを許可する承認ルールを作成します。たとえば、管理者が使用するクライアント VPN エンドポイントの場合、ネットワーク全体へのアクセスを許可する承認ルールを作成できます。詳細については、「[承認ルールを追加する](cvpn-working-rule-authorize-add.md)」を参照してください。

# でのクライアント認証 AWS Client VPN
<a name="client-authentication"></a>

クライアント認証は、 AWS クラウドへの最初のエントリポイントで実装されます。クライアントがクライアント VPN エンドポイントへの接続を許可されているかどうかを判断するために使用されます。認証が成功すると、クライアントはクライアント VPN エンドポイントに接続して VPN セッションを確立します。認証が失敗すると、接続は拒否され、クライアントは VPN セッションを確立できなくなります。

クライアント VPN では、次のタイプのクライアント承認を使用できます。
+ [Active Directory 認証](ad.md) (ユーザーベース)
+ [相互認証](mutual.md) (証明書ベース)
+ [シングルサインオン (SAML ベースのフェデレーション認証)](federated-authentication.md) (ユーザーベース)

上記の方法のいずれかを単独で使用することも、次のようなユーザーベースの方法との相互認証を組み合わせて使用することもできます。
+ 相互認証とフェデレーション認証
+ 相互認証と Active Directory 認証

**重要**  
クライアント VPN エンドポイントを作成するには、使用する認証のタイプに関係なく、 AWS Certificate Managerでサーバー証明書のプロビジョニングを行う必要があります。サーバー証明書の作成とプロビジョニングの詳細については、「[での相互認証 AWS Client VPN](mutual.md)」の手順を参照してください。
相互認証とユーザーベースの認証を組み合わせて使用する場合は、両方の方法を使用して VPN で正しく認証する必要があります。

# クライアント VPN での Active Directory 認証
<a name="ad"></a>

クライアント VPN は、 と統合することで Active Directory サポートを提供します Directory Service。Active Directory 認証では、クライアントは既存の Active Directory グループに対して認証されます。クライアント VPN は Directory Service、 AWS またはオンプレミスネットワークでプロビジョニングされた既存の Active Directory に接続できます。これにより、既存のクライアント承認インフラストラクチャを使用することができます。オンプレミスの Active Directory を使用していて、既存の AWS Managed Microsoft AD がない場合は、Active Directory Connector (AD Connector) を設定する必要があります。1 つの Active Directory サーバーを使用してユーザーを認証できます。Active Directory 統合の詳細については、[AWS Directory Service 管理ガイド](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/)を参照してください。

クライアント VPN は、 AWS Managed Microsoft AD または AD Connector で有効になっている場合、多要素認証 (MFA) をサポートします。MFA が有効になっている場合、クライアントはクライアント VPN エンドポイントに接続するときにユーザー名、パスワード、および MFA コードを入力する必要があります。MFA を有効にする詳細については、*AWS Directory Service 管理ガイド*の「[AWS Managed Microsoft AD の多要素認証を有効にするには](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_mfa.html)」および「[AD Connector の多要素認証を有効にするには](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ad_connector_mfa.html)」を参照してください。

Active Directory でユーザーとグループを設定するためのクォータとルールについては、「[ユーザーとグループのクォータ](limits.md#quotas-users-groups)」を参照してください。

# での相互認証 AWS Client VPN
<a name="mutual"></a>

相互認証では、クライアント VPN は証明書を使用してクライアントとサーバー間の認証を実行します。証明書とは、認証機関 (CA) によって発行された識別用デジタル形式です。クライアントがクライアント VPN エンドポイントに接続を試みると、サーバーはクライアント証明書を使用してクライアントを認証します。サーバー証明書とキー、および少なくとも 1 つのクライアント証明書とキーを作成する必要があります。

サーバー証明書を AWS Certificate Manager (ACM) にアップロードし、クライアント VPN エンドポイントを作成するときに指定する必要があります。サーバー証明書を ACM にアップロードするときは、認証局 (CA) も指定します。クライアント証明書を ACM にアップロードする必要があるのは、クライアント証明書の CA がサーバー証明書の CA と異なる場合だけです。ACM の詳細については、[AWS Certificate Manager ユーザーガイド](https://docs.aws.amazon.com/acm/latest/userguide/)を参照してください。

クライアント VPN エンドポイントに接続するクライアントごとに、個別のクライアント証明書とキーを作成できます。これにより、ユーザーが組織を離れた場合に、特定のクライアント証明書を取り消すことができます。この場合、クライアント VPN エンドポイントを作成するときに、クライアント証明書がサーバー証明書と同じ CA によって発行されていれば、クライアント証明書のサーバー証明書 ARN を指定できます。

AWS Client VPN で使用される証明書は、メモのセクション 4.2 で指定された証明書拡張機能を含む、[RFC 5280: Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile](https://datatracker.ietf.org/doc/html/rfc5280) に準拠する必要があります。

**注記**  
クライアント VPN エンドポイントは、1024 ビットおよび 2048 ビットの RSA キーサイズのみサポートしています。また、クライアント証明書の [Subject (件名)] フィールドに CN 属性が含まれている必要があります。  
クライアント VPN サービスで使用している証明書を、ACM の自動ローテーション、新しい証明書の手動インポート、または IAM Identity Center へのメタデータの更新により更新すると、クライアント VPN サービスはクライアント VPN エンドポイントをより新しい証明書で自動更新します。これは、最大 5 時間かかる自動プロセスです。

**Topics**
+ [相互認証を有効にする](client-auth-mutual-enable.md)
+ [サーバー証明書の更新](mutual-renew.md)

# の相互認証を有効にする AWS Client VPN
<a name="client-auth-mutual-enable"></a>

Linux/MacOS または Windows でクライアント VPN で相互認証を有効にすることができます。

------
#### [ Linux/macOS ]

次の手順では、OpenVPN easy-rsa を使用してサーバーとクライアントの証明書とキーを生成してから、そのサーバーの証明書とキーを ACM にアップロードします。詳細については、「[Easy-RSA 3 Quickstart README](https://github.com/OpenVPN/easy-rsa/blob/v3.0.6/README.quickstart.md)」を参照してください。

**サーバーとクライアントの証明書とキーを生成し、それらを ACM にアップロードするには**

1. OpenVPN easy-rsa リポジトリのクローンをローカルコンピュータに作成して、`easy-rsa/easyrsa3` フォルダに移動します。

   ```
   $ git clone https://github.com/OpenVPN/easy-rsa.git
   ```

   ```
   $ cd easy-rsa/easyrsa3
   ```

1. 新しい PKI 環境を初期化します。

   ```
   $ ./easyrsa init-pki
   ```

1. 新しい認証局 (CA) を構築するには、このコマンドを実行し、プロンプトに従います。

   ```
   $ ./easyrsa build-ca nopass
   ```

1. サーバー証明書とキーを生成します。

   ```
   $ ./easyrsa --san=DNS:server build-server-full server nopass
   ```

1. クライアント証明書とキーを生成します。

   クライアント証明書とクライアントプライベートキーは、クライアントを設定するときに必要になるため、必ず保存してください。

   ```
   $ ./easyrsa build-client-full client1.domain.tld nopass
   ```

   必要に応じて、クライアント証明書とキーを必要とするクライアント (エンドユーザー) ごとにこの手順を繰り返すことができます。

1. サーバー証明書とキー、およびクライアント証明書とキーをカスタムフォルダにコピーしてから、カスタムフォルダに移動します。

   証明書とキーをコピーする前に、`mkdir` コマンドを使用してカスタムフォルダを作成します。次の例では、ホームディレクトリにカスタムフォルダを作成します。

   ```
   $ mkdir ~/custom_folder/
   $ cp pki/ca.crt ~/custom_folder/
   $ cp pki/issued/server.crt ~/custom_folder/
   $ cp pki/private/server.key ~/custom_folder/
   $ cp pki/issued/client1.domain.tld.crt ~/custom_folder
   $ cp pki/private/client1.domain.tld.key ~/custom_folder/
   $ cd ~/custom_folder/
   ```

1. サーバー証明書とキー、およびクライアント証明書とキーを ACM にアップロードします。必ずクライアント VPN エンドポイントを作成する予定のリージョンと同じリージョンにアップロードしてください。以下のコマンドは、 AWS CLI を使用して証明書をアップロードします。代わりに ACM コンソールを使用して証明書をアップロードするには、*AWS Certificate Manager ユーザーガイド*の「[証明書のインポート](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate-api-cli.html)」を参照してください。

   ```
   $ aws acm import-certificate --certificate fileb://server.crt --private-key fileb://server.key --certificate-chain fileb://ca.crt
   ```

   ```
   $ aws acm import-certificate --certificate fileb://client1.domain.tld.crt --private-key fileb://client1.domain.tld.key --certificate-chain fileb://ca.crt
   ```

   クライアント証明書を ACM にアップロードする必要はありません。サーバー証明書とクライアント証明書が同じ認証機関 (CA) によって発行されている場合、Client VPN エンドポイントを作成するときに、サーバーとクライアントの両方に対してサーバー証明書 ARN を使用することができます。上のステップで、同じ CA を使用して両方の証明書を作成しています。ただし、完全性を保証するために、クライアント証明書をアップロードするステップが含まれています。

------
#### [ Windows ]

次の手順では、Easy-RSA 3.x ソフトウェアをインストールし、それを使用してサーバーとクライアントの証明書およびキーを生成します。

**サーバーとクライアントの証明書とキーを生成し、それらを ACM にアップロードするには**

1. [EasyRSA リリース](https://github.com/OpenVPN/easy-rsa/releases)ページを開き、お使いの Windows のバージョン用の ZIP ファイルをダウンロードして抽出します。

1. コマンドプロンプトを開き、`EasyRSA-3.x` フォルダが抽出された場所に移動します。

1. 次のコマンドを実行して、EasyRSA 3 シェルを開きます。

   ```
   C:\Program Files\EasyRSA-3.x> .\EasyRSA-Start.bat
   ```

1. 新しい PKI 環境を初期化します。

   ```
   # ./easyrsa init-pki
   ```

1. 新しい認証局 (CA) を構築するには、このコマンドを実行し、プロンプトに従います。

   ```
   # ./easyrsa build-ca nopass
   ```

1. サーバー証明書とキーを生成します。

   ```
   # ./easyrsa --san=DNS:server build-server-full server nopass
   ```

1. クライアント証明書とキーを生成します。

   ```
   # ./easyrsa build-client-full client1.domain.tld nopass
   ```

   必要に応じて、クライアント証明書とキーを必要とするクライアント (エンドユーザー) ごとにこの手順を繰り返すことができます。

1. EasyRSA 3 シェルを終了します。

   ```
   # exit
   ```

1. サーバー証明書とキー、およびクライアント証明書とキーをカスタムフォルダにコピーしてから、カスタムフォルダに移動します。

   証明書とキーをコピーする前に、`mkdir` コマンドを使用してカスタムフォルダを作成します。以下の例では、C:\$1 ドライブにカスタムフォルダを作成します。

   ```
   C:\Program Files\EasyRSA-3.x> mkdir C:\custom_folder
   C:\Program Files\EasyRSA-3.x> copy pki\ca.crt C:\custom_folder
   C:\Program Files\EasyRSA-3.x> copy pki\issued\server.crt C:\custom_folder
   C:\Program Files\EasyRSA-3.x> copy pki\private\server.key C:\custom_folder
   C:\Program Files\EasyRSA-3.x> copy pki\issued\client1.domain.tld.crt C:\custom_folder
   C:\Program Files\EasyRSA-3.x> copy pki\private\client1.domain.tld.key C:\custom_folder
   C:\Program Files\EasyRSA-3.x> cd C:\custom_folder
   ```

1. サーバー証明書とキー、およびクライアント証明書とキーを ACM にアップロードします。必ずクライアント VPN エンドポイントを作成する予定のリージョンと同じリージョンにアップロードしてください。次のコマンドでは AWS CLI 、 を使用して証明書をアップロードします。代わりに ACM コンソールを使用して証明書をアップロードするには、*AWS Certificate Manager ユーザーガイド*の「[証明書のインポート](https://docs.aws.amazon.com/acm/latest/userguide/import-certificate-api-cli.html)」を参照してください。

   ```
   aws acm import-certificate \
       --certificate fileb://server.crt \ 
       --private-key fileb://server.key \
       --certificate-chain fileb://ca.crt
   ```

   ```
   aws acm import-certificate \
       --certificate fileb://client1.domain.tld.crt \
       --private-key fileb://client1.domain.tld.key \
       --certificate-chain fileb://ca.crt
   ```

   クライアント証明書を ACM にアップロードする必要はありません。サーバー証明書とクライアント証明書が同じ認証機関 (CA) によって発行されている場合、Client VPN エンドポイントを作成するときに、サーバーとクライアントの両方に対してサーバー証明書 ARN を使用することができます。上のステップで、同じ CA を使用して両方の証明書を作成しています。ただし、完全性を保証するために、クライアント証明書をアップロードするステップが含まれています。

------

# AWS Client VPN サーバー証明書の更新
<a name="mutual-renew"></a>

有効期限が切れたクライアント VPN サーバー証明書を更新して再インポートできます。使用している OpenVPN easy-rsa のバージョンに応じて、手順は異なります。詳細については、「[Easy-RSA 3 Certificate Renewal and Revocation Documentation](https://github.com/OpenVPN/easy-rsa/blob/master/doc/EasyRSA-Renew-and-Revoke.md)」を参照してください。

**サーバー証明書を更新するには**

1. 次の**いずれか**を行います。
   + Easy-RSA バージョン 3.1.x

     1. 証明書更新コマンドを実行します。

       ```
       $ ./easyrsa renew server nopass
       ```
   + Easy-RSA バージョン 3.2.x

     1. 期限切れにするコマンドを実行します。

        ```
        $ ./easyrsa expire server
        ```

     1. 証明書に署名します。

        ```
        $ ./easyrsa --san=DNS:server sign-req server server
        ```

1. カスタムフォルダを作成し、そのフォルダに新しいファイルをコピーして、フォルダに移動します。

   ```
   $ mkdir ~/custom_folder2
   $ cp pki/ca.crt ~/custom_folder2/
   $ cp pki/issued/server.crt ~/custom_folder2/
   $ cp pki/private/server.key ~/custom_folder2/
   $ cd ~/custom_folder2/
   ```

1. 新しいファイルを ACM にインポートします。必ずクライアント VPN エンドポイントと同じリージョンにインポートしてください。

   ```
   $ aws acm import-certificate \
       --certificate fileb://server.crt \
       --private-key fileb://server.key \
       --certificate-chain fileb://ca.crt \
       --certificate-arn arn:aws:acm:region:123456789012:certificate/12345678-1234-1234-1234-12345678901
   ```

# クライアント VPN でのシングルサインオン — SAML 2.0 ベースのフェデレーション認証
<a name="federated-authentication"></a>

AWS Client VPN は、クライアント VPN エンドポイントの Security Assertion Markup Language 2.0 (SAML 2.0) との ID フェデレーションをサポートしています。SAML 2.0 をサポートする ID プロバイダー (IdP) を使用して、一元化されたユーザー ID を作成できます。その後、SAML ベースのフェデレーション認証が使用されるようにクライアント VPN エンドポイントを設定し、IdP に関連付けることができます。その後、ユーザーは、一元化された認証情報を使用してクライアント VPN エンドポイントに接続します。

**Topics**
+ [SAML を有効にする](client-auth-enable-saml.md)
+ [認証ワークフロー](#federated-authentication-workflow)
+ [SAML ベースのフェデレーション認証の要件と考慮事項](#saml-requirements)
+ [SAML ベースの IdP 設定リソース](#saml-config-resources)

# の SAML を有効にする AWS Client VPN
<a name="client-auth-enable-saml"></a>

 次の手順を実行して、クライアント VPN のシングルサインオンの SAML を有効にすることができます。または、クライアント VPN エンドポイントのセルフサービスポータルを有効にした場合は、セルフサービスポータルにアクセスして設定ファイルと AWS が提供するクライアントを取得するようにユーザーに指示します。詳細については、「[セルフサービスポータルへの AWS Client VPN アクセス](cvpn-self-service-portal.md)」を参照してください。

**SAML ベースの IdP をクライアント VPN エンドポイントに使用するには、次の操作を行う必要があります。**

1. 選択した IdP で、使用する SAML ベースのアプリを作成するか AWS Client VPN、既存のアプリを使用します。

1.  との信頼関係を確立するために IdP を設定します AWSリソースについては、「[SAML ベースの IdP 設定リソース](federated-authentication.md#saml-config-resources)」を参照してください。

1. IdP で、組織を IdP として定義するフェデレーションメタデータドキュメントを生成し、ダウンロードします。

   この署名付き XML ドキュメントは、 AWS と IdP の間の信頼関係を確立するために使用されます。

1. クライアント VPN エンドポイントと同じ AWS アカウントに IAM SAML ID プロバイダーを作成します。

   IAM SAML ID プロバイダーは、IdP によって生成されたメタデータドキュメントを使用して、組織の IdP を AWS 信頼関係として定義します。詳細については、*IAM ユーザーガイド*の「[SAML ID プロバイダーの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html)」を参照してください。後で IdP のアプリ設定を更新する場合は、新しいメタデータドキュメントを生成し、IAM SAML ID プロバイダーを更新します。
**注記**  
IAM SAML ID プロバイダーを使用するために IAM ロールを作成する必要はありません。

1. クライアント VPN エンドポイントを作成します。

   認証タイプとしてフェデレーション認証を指定し、作成した IAM SAML ID プロバイダーを指定します。詳細については、「[AWS Client VPNエンドポイントを作成する](cvpn-working-endpoint-create.md)」を参照してください。

1. [クライアント設定ファイルを](cvpn-working-endpoint-export.md)エクスポートし、ユーザーに配布します。[AWS が提供するクライアント](https://docs.aws.amazon.com/vpn/latest/clientvpn-user/connect-aws-client-vpn-connect.html)の最新バージョンをダウンロードし、これを使用して設定ファイルをロードして、クライアント VPN エンドポイントに接続するようにユーザーに指示します。

## 認証ワークフロー
<a name="federated-authentication-workflow"></a>

次の図に、SAML ベースのフェデレーション認証を使用するクライアント VPN エンドポイントの認証ワークフローの概要を示します。クライアント VPN エンドポイントを作成および設定するときは、IAM SAML ID プロバイダーを指定します。

![\[認証ワークフロー\]](http://docs.aws.amazon.com/ja_jp/vpn/latest/clientvpn-admin/images/federated-auth-workflow.png)


1. ユーザーは AWS 、提供されたクライアントをデバイスで開き、クライアント VPN エンドポイントへの接続を開始します。

1. クライアント VPN エンドポイントは、IAM SAML ID プロバイダーで提供された情報に基づいて IdP URL と認証リクエストをクライアントに送信します。

1.  AWS 提供されたクライアントは、ユーザーのデバイスで新しいブラウザウィンドウを開きます。ブラウザは IdP にリクエストを送信し、ログインページを表示します。

1. ユーザーがログインページに認証情報を入力し、IdP は署名付き SAML アサーションをクライアントに返します。

1.  AWS 提供されたクライアントは、クライアント VPN エンドポイントに SAML アサーションを送信します。

1. クライアント VPN エンドポイントはアサーションを検証し、ユーザーへのアクセスを許可または拒否します。

## SAML ベースのフェデレーション認証の要件と考慮事項
<a name="saml-requirements"></a>

SAML ベースのフェデレーション認証の要件と考慮事項を次に示します。
+ SAML ベースの IdP でユーザーとグループを設定するためのクォータとルールについては、「[ユーザーとグループのクォータ](limits.md#quotas-users-groups)」を参照してください。
+ SAML アサーションおよび応答は署名済みである必要があります。
+ AWS Client VPN は、SAML アサーションでAudienceRestriction」およびNotBefore and NotOnOrAfter」条件のみをサポートします。
+ SAML 応答でサポートされる最大サイズは 128 KB です。
+ AWS Client VPN は、署名付き認証リクエストを提供しません。
+ SAML シングルログアウトはサポートされていません。ユーザーは、 AWS 提供されたクライアントから切断してログアウトすることも、[接続を終了](cvpn-working-connections-disassociate.md)することもできます。
+ 1 つのクライアント VPN エンドポイントでサポートされるのは、単一の IdP のみです。
+ IdP で有効になっている場合は Multi-Factor Authentication (MFA) がサポートされます。
+ ユーザーは、 AWS 提供されたクライアントを使用してクライアント VPN エンドポイントに接続する必要があります。バージョン 1.2.0 以降を使用する必要があります。詳細については、[AWS 「提供されたクライアントを使用して接続する](https://docs.aws.amazon.com/vpn/latest/clientvpn-user/connect-aws-client-vpn-connect.html)」を参照してください。
+ IdP 認証は、Apple Safari、Google Chrome、Microsoft Edge、Mozilla Firefox の各ブラウザでサポートされています。
+  AWS 提供されたクライアントは、SAML レスポンスのためにユーザーのデバイスに TCP ポート 35001 を予約します。
+ 正しくない URL または悪意のある URL で IAM SAML ID プロバイダーのメタデータドキュメントが更新されると、ユーザーの認証の問題が発生したり、フィッシング攻撃につながる可能性があります。このため、IAM SAML ID プロバイダーに対して行われる更新は、 AWS CloudTrail を使用してモニタリングすることをお勧めします。詳細については、*IAM ユーザーガイド*の「[AWS CloudTrailを使用した IAM および AWS STS 呼び出しのログ記録](https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html)」を参照してください。
+ AWS Client VPN は、HTTP リダイレクトバインディングを介して IdP に AuthN リクエストを送信します。このため、HTTP リダイレクトバインディングが IdP でサポートされ、IdP のメタデータドキュメントに存在する必要があります。
+ SAML アサーションでは、`NameID` 属性に E メールアドレス形式を使用する必要があります。
+ ユーザー名 (`NameID`) の最大長は 1024 バイトです。ユーザー名が長い接続は拒否されます。
+ クライアント VPN サービスで使用している証明書を、ACM の自動ローテーション、新しい証明書の手動インポート、または IAM Identity Center へのメタデータの更新により更新すると、クライアント VPN サービスはクライアント VPN エンドポイントをより新しい証明書で自動更新します。これは、最大 5 時間かかる自動プロセスです。

## SAML ベースの IdP 設定リソース
<a name="saml-config-resources"></a>

次の表に、 AWS Client VPNでの使用がテストされている SAML ベースの IdP と、IdP の設定に役立つリソースを示します。


| IdP | リソース | 
| --- | --- | 
| Okta | [SAML で AWS Client VPN ユーザーを認証する](https://aws.amazon.com/blogs/networking-and-content-delivery/authenticate-aws-client-vpn-users-with-saml/) | 
| Microsoft Entra ID (旧名称: Azure Active Directory) | 詳細については、Microsoft ドキュメントウェブサイトの[「チュートリアル: Microsoft Entra シングルサインオン (SSO) と AWS ClientVPN の統合](https://learn.microsoft.com/en-gb/entra/identity/saas-apps/aws-clientvpn-tutorial)」を参照してください。 | 
| JumpCloud | [との統合 AWS Client VPN](https://jumpcloud.com/support/integrate-with-aws-client-vpn) | 
| AWS IAM アイデンティティセンター | [認証と認可のための IAM Identity Center と AWS Client VPN の使用](https://aws.amazon.com/blogs/networking-and-content-delivery/using-aws-sso-with-aws-client-vpn-for-authentication-and-authorization/)  | 

### アプリを作成するためのサービスプロバイダー情報
<a name="saml-config-service-provider-info"></a>

前の表に示されていない IdP を使用して SAML ベースのアプリケーションを作成するには、次の情報を使用して AWS Client VPN サービスプロバイダー情報を設定します。
+ Assertion Consumer Service (ACS) URL: `http://127.0.0.1:35001`
+ Audience URI: `urn:amazon:webservices:clientvpn`

IdP からの SAML レスポンスには、少なくとも 1 つの属性が含まれている必要があります。以下は属性の例です。


| 属性 | 説明 | 
| --- | --- | 
| FirstName | ユーザーの名。 | 
| LastName | ユーザーの姓。 | 
| memberOf | ユーザーが属するグループ (複数も可)。 | 

**注記**  
`memberOf` 属性は、Active Directory または SAML IdP グループベースの承認ルールを使用する場合に必要です。また、属性は大文字と小文字を区別し、指定どおりに設定する必要があります。詳細については、「[ネットワークベースの承認](client-authorization.md#auth-rules)」と「[AWS Client VPN 認可ルール](cvpn-working-rules.md)」を参照してください。

### セルフサービスポータルのサポート
<a name="saml-self-service-support"></a>

クライアント VPN エンドポイントでセルフサービスポータルを有効にした場合、ユーザーは SAML ベースの IdP 認証情報を使用してポータルにログインします。

IdP が複数の Assertion Consumer Service (ACS) URL をサポートしている場合は、次の ACS URL をアプリに追加します。

```
https://self-service.clientvpn.amazonaws.com/api/auth/sso/saml
```

GovCloud リージョンで Client VPN エンドポイントを使用している場合は、代わりに次の ACS URL を使用します。同じ IDP アプリを使用して標準リージョンと GovCloud リージョンの両方で認証する場合は、両方の URL を追加できます。

```
https://gov.self-service.clientvpn.amazonaws.com/api/auth/sso/saml
```

IdP が複数の ACS URL をサポートしていない場合は、以下を実行します。

1. IdP に追加の SAML ベースのアプリを作成し、次の ACS URL を指定します。

   ```
   https://self-service.clientvpn.amazonaws.com/api/auth/sso/saml
   ```

1. フェデレーションメタデータドキュメントを生成し、ダウンロードします。

1. クライアント VPN エンドポイントと同じ AWS アカウントに IAM SAML ID プロバイダーを作成します。詳細については、*IAM ユーザーガイド*の「[SAML ID プロバイダーの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html)」を参照してください。
**注記**  
[メインアプリ用に作成](#federated-authentication)したプロバイダーに加えて、この IAM SAML ID プロバイダーを作成します。

1. [クライアント VPN エンドポイントを作成し](cvpn-working-endpoint-create.md)、作成した IAM SAML ID プロバイダーを両方指定します。

# AWS Client VPN でのクライアント承認
<a name="client-authorization"></a>

クライアント VPN では 2 種類のクライアント承認がサポートされています。セキュリティグループとネットワークベースの承認 (承認ルールを使用) です。

## セキュリティグループ
<a name="security-groups"></a>

クライアント VPN エンドポイントを作成するときに、特定の VPC からセキュリティグループを指定して、クライアント VPN エンドポイントに適用できます。サブネットをクライアント VPN エンドポイントに関連付けると、VPC のデフォルトセキュリティグループが自動的に適用されます。クライアント VPN エンドポイントを作成した後で、セキュリティグループを変更できます。詳細については、「[でターゲットネットワークにセキュリティグループを適用する AWS Client VPN](cvpn-working-target-apply.md)」を参照してください。セキュリティグループはクライアント VPN ネットワークインターフェイスに関連付けられます。

アプリケーションのセキュリティグループにルールを追加して、関連付けに適用されたセキュリティグループからのトラフィックを許可することで、クライアント VPN ユーザーが VPC 内のアプリケーションにアクセスできるようにすることができます。

逆に、関連付けに適用されたセキュリティグループを指定しないか、クライアント VPN エンドポイントセキュリティグループを参照するルールを削除することで、クライアント VPN ユーザーのアクセスを制限できます。必要なセキュリティグループルールは、設定する VPN アクセスの種類によっても異なる場合があります。詳細については、「[クライアント VPN のシナリオと例](how-it-works.md#scenario)」を参照してください。

VPC セキュリティグループの詳細については、*Amazon VPC ユーザーガイド*の「[VPC のセキュリティグループ](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html)」を参照してください。

## ネットワークベースの承認
<a name="auth-rules"></a>

ネットワークベースの承認は承認ルールを使用して実装されます。アクセスを有効にするネットワークごとに、アクセス権を持つユーザーを制限する承認ルールを設定する必要があります。指定のネットワークに対して、アクセスを許可する Active Directory グループまたは SAML ベースの IdP グループを構成します。指定されたグループに属するユーザーのみが、指定されたネットワークにアクセスできます。Active Directory または SAML ベースのフェデレーション認証を使用していない場合、またはすべてのユーザーにアクセスを許可したい場合は、すべてのクライアントにアクセスを許可するルールを指定できます。詳細については、「[AWS Client VPN 認可ルール](cvpn-working-rules.md)」を参照してください。

**Topics**
+ [セキュリティグループ](#security-groups)
+ [ネットワークベースの承認](#auth-rules)
+ [エンドポイントセキュリティグループルールを作成する](client-auth-rule-create.md)

# AWS Client VPN エンドポイントセキュリティグループルールを作成する
<a name="client-auth-rule-create"></a>

サブネットをクライアント VPN に関連付けるときに適用される VPC のデフォルトのセキュリティグループを使用すると、許可したいデフォルトのセキュリティグループトラフィックからのトラフィックを制限すると同時に、許可したくないトラフィックを許可してしまう場合があります。リソースまたはアプリケーションに関連付けられたエンドポイントセキュリティグループのトラフィックを許可または制限するクライアント VPN エンドポイントセキュリティグループルールを作成するには、次の手順を実行します。セキュリティグループルールの詳細については、「*Amazon VPC ユーザーガイド*」の「[VPC のセキュリティグループ](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html)」を参照してください。

**クライアント VPN エンドポイントセキュリティグループからのトラフィックを許可するルールを追加するには**

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

1. ナビゲーションペインで、[**セキュリティグループ**] を選択します。

1. リソースまたはアプリケーションに関連付けられているセキュリティグループを選択し、[**アクション**]、[**インバウンドルールの編集**] の順に選択します。

1. [**ルールの追加**] を選択します。

1. [**タイプ**] で、[**すべてのトラフィック**] を選択します。または、特定のタイプのトラフィック (**SSH** など) へのアクセスを制限することもできます。

   [**ソース**] に、クライアント VPN エンドポイントのターゲットネットワーク (サブネット) に関連付けられているセキュリティグループの ID を指定します。

1. [**ルールの保存**] を選択します。

# の接続認可 AWS Client VPN
<a name="connection-authorization"></a>

クライアント VPN エンドポイントの*クライアント接続ハンドラー*を設定できます。ハンドラーを使用すると、デバイス、ユーザー、および接続属性に基づいて、新しい接続を許可するカスタムロジックを実行できます。クライアント接続ハンドラーは、クライアント VPN サービスがデバイスとユーザーを認証した後に実行されます。

クライアント VPN エンドポイントのクライアント接続ハンドラーを設定するには、デバイス、ユーザー、および接続属性を入力として受け取り、新しい接続を許可または拒否する決定をクライアント VPN サービスに返す AWS Lambda 関数を作成します。クライアント VPN エンドポイントで Lambda 関数を指定します。デバイスがクライアント VPN エンドポイントに接続すると、クライアント VPN サービスはユーザーに代わって Lambda 関数を呼び出します。Lambda 関数によって承認された接続に対して、クライアント VPN エンドポイントへの接続が許可されます。

**注記**  
現在、サポートされているクライアント接続ハンドラーのタイプは Lambda 関数だけです。

## 要件と考慮事項
<a name="client-connect-handler-reqs"></a>

クライアント接続ハンドラーの要件と考慮事項を次に示します。
+ Lambda 関数の名前は、 `AWSClientVPN-` プレフィックスで始まる必要があります。
+ 認定済みの Lambda 関数がサポートされています。
+ Lambda 関数は、クライアント VPN エンドポイントと同じ AWS リージョンと AWS アカウントに存在する必要があります。
+ Lambda 関数は 30 秒後にタイムアウトします。この値は変更できません。
+ Lambda 関数は同期的に呼び出されます。これは、デバイスとユーザーの認証後、および承認ルールが評価される前に呼び出されます。
+ 新しい接続に対して Lambda 関数が呼び出され、クライアント VPN サービスが関数から期待されるレスポンスを取得しない場合、クライアント VPN サービスは接続要求を拒否します。これは、Lambda 関数がスロットルされた、タイムアウトした、またはその他の予期しないエラーが発生した場合、関数のレスポンスが有効な形式でない場合などに発生します。
+ Lambda 関数に[プロビジョニングされた同時実行数](https://docs.aws.amazon.com/lambda/latest/dg/configuration-concurrency.html)を設定して、レイテンシーの変動なしに関数をスケーリングできるようにすることをお勧めします。
+ Lambda 関数を更新しても、クライアント VPN エンドポイントへの既存の接続は影響を受けません。既存の接続を終了してから、新しい接続を確立するようクライアントに指示できます。詳細については、「[AWS Client VPN クライアント接続を終了するクライアント接続の終了](cvpn-working-connections-disassociate.md)」を参照してください。
+ クライアントが AWS 提供されたクライアントを使用してクライアント VPN エンドポイントに接続する場合、Windows にはバージョン 1.2.6 以降、macOS にはバージョン 1.2.4 以降を使用する必要があります。詳細については、「[AWS が提供するクライアントを使用して接続する](https://docs.aws.amazon.com/vpn/latest/clientvpn-user/connect-aws-client-vpn-connect.html)」「を参照してください。

## Lambda インターフェイス
<a name="connection-authorization-lambda"></a>

Lambda 関数は、クライアント VPN サービスからの入力として、デバイス属性、ユーザー属性、および接続属性を受け取ります。その後、クライアント VPN サービスに接続を許可または拒否するかどうかを決定する必要があります。

**リクエストスキーマ**  
Lambda 関数は、次のフィールドを含む JSON BLOB を入力として受け取ります。

```
{
    "connection-id": <connection ID>,
    "endpoint-id": <client VPN endpoint ID>,
    "common-name": <cert-common-name>,
    "username": <user identifier>,
    "platform": <OS platform>,
    "platform-version": <OS version>,
    "public-ip": <public IP address>,
    "client-openvpn-version": <client OpenVPN version>,
    "aws-client-version": <AWS client version>,
    "groups": <group identifier>,
    "schema-version": "v3"
}
```
+ `connection-id` — クライアント VPN エンドポイントへのクライアント接続の ID。
+ `endpoint-id` — クライアント VPN エンドポイントの ID。
+ `common-name` — デバイス識別子。デバイス用に作成するクライアント証明書では、共通名によってデバイスが一意に識別されます。
+ `username` — ユーザー ID (該当する場合)。Active Directory 認証の場合、これはユーザー名です。SAML ベースのフェデレーション認証の場合、これは `NameID` です。相互認証の場合、このフィールドは空です。
+ `platform` — クライアントのオペレーティングシステムプラットフォーム。
+ `platform-version` — オペレーティングシステムのバージョン。クライアント VPN サービスは、クライアントがクライアント VPN エンドポイントに接続するとき、およびクライアントが Windows プラットフォームを実行しているときに `--push-peer-info` ディレクティブが OpenVPN クライアント設定に存在する場合に値を提供します。
+ `public-ip` — 接続デバイスのパブリック IP アドレス。
+ `client-openvpn-version` — クライアントが使用している OpenVPN バージョン。
+ `aws-client-version` — AWS クライアントバージョン。
+ `groups` — グループ ID (該当する場合)。Active Directory 認証の場合、これはActive Directory グループの一覧になります。SAML ベースのフェデレーション認証の場合、これは ID プロバイダー (IdP) グループの一覧になります。相互認証の場合、このフィールドは空です。
+ `schema-version` — スキーマバージョン。デフォルトは `v3` です。

**レスポンススキーマ**  
Lambda 関数は次のフィールドを返す必要があります。

```
{
    "allow": boolean,
    "error-msg-on-denied-connection": "",
    "posture-compliance-statuses": [],
    "schema-version": "v3"
}
```
+ `allow` — 必須。新しい接続を許可または拒否するかどうかを示すブール値 (`true` \$1 `false`)。
+ `error-msg-on-denied-connection` — 必須。Lambda 関数によって接続が拒否された場合に、クライアントにステップとガイダンスを提供するために使用できる最大 255 文字の文字列。Lambda 関数の実行中に障害が発生した場合 (スロットリングなどの理由で)、クライアント VPN サービスによって次のデフォルトメッセージがクライアントに返されます。

  ```
  Error establishing connection. Please contact your administrator.
  ```
+ `posture-compliance-statuses` — 必須。[体制評価](#connection-authorization-posture-assessment)に Lambda 関数を使用する場合、これは接続デバイスのステータスのリストです。デバイスの体制評価カテゴリ (`compliant`、`quarantined`、`unknown` など) に従って、ステータス名を定義します。各名前の最大長は 255 文字です。最大 10 個のステータスを指定できます。
+ `schema-version` — 必須。スキーマバージョン。デフォルトは `v3` です。

同じリージョン内の複数のクライアント VPN エンドポイントに対して、同じ Lambda 関数を使用できます。

Lambda 関数の作成の詳細については、*AWS Lambda デベロッパーガイド*の「[AWS Lambdaの開始方法](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html)」を参照してください。

## 体制評価のためのクライアント接続ハンドラーの使用
<a name="connection-authorization-posture-assessment"></a>

クライアント接続ハンドラーを使用して、クライアント VPN エンドポイントを既存のデバイス管理ソリューションと統合し、接続デバイスの体制コンプライアンスを評価できます。Lambda 関数がデバイス認可ハンドラーとして機能するには、クライアント VPN エンドポイントに[相互認証](mutual.md)を使用します。クライアント VPN エンドポイントに接続するクライアント (デバイス) ごとに、一意のクライアント証明書とキーを作成します。Lambda 関数は、クライアント証明書の一意の共通名 (クライアント VPN サービスから渡される) を使用して、デバイスを識別し、デバイス管理ソリューションから体制コンプライアンスステータスを取得できます。相互認証をユーザーベースの認証と組み合わせることができます。

または、Lambda 関数自体で基本的な体制評価を行うこともできます。たとえば、クライアント VPN サービスによって Lambda 関数に渡される `platform` および `platform-version` フィールドを評価できます。

**注記**  
接続ハンドラーを使用して最小 AWS Client VPN アプリケーションバージョンを適用できますが、接続ハンドラー`aws-client-version`の フィールドは AWS Client VPN アプリケーションにのみ適用され、ユーザーデバイスの環境変数から入力されます。

## クライアント接続ハンドラーを有効化する
<a name="enable-client-connect-handler"></a>

クライアント接続ハンドラーを有効にするには、クライアント VPN エンドポイントを作成または変更し、Lambda 関数の Amazon リソースネーム (ARN) を指定します。詳細については、「[AWS Client VPNエンドポイントを作成する](cvpn-working-endpoint-create.md)」および「[AWS Client VPN エンドポイントを変更する](cvpn-working-endpoint-modify.md)」を参照してください。

## サービスにリンクされたロール
<a name="connection-authorization-slr"></a>

AWS Client VPN は、**AWSServiceRoleForClientVPNConnections** というサービスにリンクされたロールをアカウントに自動的に作成します。ロールには、クライアント VPN エンドポイントへの接続が行われたときに Lambda 関数を呼び出すアクセス許可があります。詳細については、「[のサービスにリンクされたロールの使用 AWS Client VPN](using-service-linked-roles.md)」を参照してください。

## 接続承認失敗をモニタリングする
<a name="connection-authorization-monitoring"></a>

クライアント VPN エンドポイントへの接続の接続承認ステータスを表示できます。詳細については、「[AWS Client VPN クライアント接続の表示クライアント接続の表示](cvpn-working-connections-view.md)」を参照してください。

体制評価にクライアント接続ハンドラーを使用すると、クライアント VPN エンドポイントに接続するデバイスの体制コンプライアンスステータスを接続ログに表示することもできます。詳細については、「[AWS Client VPN エンドポイントの接続ログ記録](connection-logging.md)」を参照してください。

デバイスが接続承認に失敗した場合、接続ログの `connection-attempt-failure-reason` フィールドから次の失敗理由のいずれかが返されます。
+ `client-connect-failed` — Lambda 関数によって接続が確立されませんでした。
+ `client-connect-handler-timed-out` — Lambda 関数がタイムアウトしました。
+ `client-connect-handler-other-execution-error` — Lambda 関数で予期しないエラーが発生しました。
+ `client-connect-handler-throttled` — Lambda 関数がスロットルされました。
+ `client-connect-handler-invalid-response` — Lambda 関数が無効なレスポンスを返しました。
+ `client-connect-handler-service-error` — 接続試行中にサービス側のエラーが発生しました。

# AWS Client VPN エンドポイントの分割トンネル
<a name="split-tunnel-vpn"></a>

デフォルトでは、クライアント VPN エンドポイントがある場合、クライアントからのすべてのトラフィックはクライアント VPN トンネル経由でルーティングされます。クライアント VPN エンドポイントで分割トンネルを有効にすると、[クライアント VPN エンドポイントルートテーブル](cvpn-working-routes.md)上のルートがクライアント VPN エンドポイントに接続されているデバイスにプッシュされます。これにより、クライアント VPN エンドポイントルートテーブルからのルートと一致するネットワークへの送信先を持つトラフィックだけがクライアント VPN トンネル経由でルーティングされます。

すべてのユーザートラフィックがクライアント VPN エンドポイントを通過しないようにする場合は、分割トンネルクライアント VPN エンドポイントを使用できます。

次の例では、クライアント VPN エンドポイントで分割トンネルが有効になっています。VPC (`172.31.0.0/16`) 宛てのトラフィックのみがクライアント VPN トンネル経由でルーティングされます。オンプレミスリソース宛てのトラフィックは、クライアント VPN トンネル経由でルーティングされません。

![\[分割トンネルクライアント VPN エンドポイント\]](http://docs.aws.amazon.com/ja_jp/vpn/latest/clientvpn-admin/images/client-vpn-split-tunnel.png)


## 分割トンネルの利点
<a name="split-tunnel-benefits"></a>

クライアント VPN エンドポイントの分割トンネルには、次の利点があります。
+ AWS 宛てのトラフィックだけが VPN トンネルを通過できるようにすることで、クライアントからのトラフィックのルーティングを最適化できます。
+ AWSからの送信トラフィックの量を減らして、データ転送コストを削減できます。

## ルーティングに関する考慮事項
<a name="split-tunnel-routing"></a>
+ 分割トンネルを有効化する場合、VPN 接続が確立されると、クライアント VPN エンドポイントのルートテーブル内のすべてのルートがクライアントのルートテーブルに追加されます。このオペレーションは、デフォルトの動作とは異なります。デフォルトの動作では、クライアントのルートテーブルがエントリ `0.0.0.0/0` で上書きされ、すべてのトラフィックが VPN 経由でルーティングされます。
**注記**  
分割トンネルモードを使用している場合、クライアント VPN エンドポイントのルートテーブルに 0.0.0.0/0 ルートを追加すると、接続が中断される可能性があるため、お勧めしません
+ スプリットトンネルモードが有効な場合、クライアント VPN エンドポイントのルートテーブルを変更すると、すべてのクライアント接続がリセットされます。

## 分割トンネルの有効化
<a name="split-tunnel-enable"></a>

新規または既存のクライアント VPN エンドポイントで分割トンネルを有効にできます。詳細については、以下の各トピックを参照してください。
+ [AWS Client VPNエンドポイントを作成する](cvpn-working-endpoint-create.md)
+ [AWS Client VPN エンドポイントを変更する](cvpn-working-endpoint-modify.md)

# AWS Client VPN エンドポイントの接続ログ記録
<a name="connection-logging"></a>

接続ログは、クライアント VPN エンドポイントの*接続ログ*をキャプチャできる AWS Client VPN の機能です。

接続ログには、クライアント (エンドユーザー) が接続するタイミング、接続を試行するタイミング、クライアント VPN エンドポイントから切断するタイミングなどの接続イベントに関する情報を取得する*接続ログエントリ*が含まれます。この情報を使用してフォレンジックを実行したり、クライアント VPN エンドポイントがどのように使用されているかを分析したり、接続の問題をデバッグしたりできます。

接続ログは、AWS Client VPN が使用可能なすべてのリージョンで使用できます。接続ログは、アカウントの CloudWatch Logs ロググループに発行されます。

**注記**  
失敗した相互認証の試行は記録されません。

## 接続ログエントリ
<a name="connection-log-entries"></a>

接続ログエントリは、キーと値のペアの JSON 形式の BLOB です。次に、接続ログエントリの例を示します。

```
{
    "connection-log-type": "connection-attempt",
    "connection-attempt-status": "successful",
    "connection-reset-status": "NA",
    "connection-attempt-failure-reason": "NA",
    "connection-id": "cvpn-connection-abc123abc123abc12",
    "client-vpn-endpoint-id": "cvpn-endpoint-aaa111bbb222ccc33",
    "transport-protocol": "udp",
    "connection-start-time": "2020-03-26 20:37:15",
    "connection-last-update-time": "2020-03-26 20:37:15",
    "client-ip": "10.0.1.2",
    "common-name": "client1",
    "device-type": "mac",
    "device-ip": "98.247.202.82",
    "port": "50096",
    "ingress-bytes": "0",
    "egress-bytes": "0",
    "ingress-packets": "0",
    "egress-packets": "0",
    "connection-end-time": "NA",
    "username": "joe"
    }
```

接続ログエントリには、次のキーが含まれます。
+ `connection-log-type` — 接続ログエントリのタイプ (`connection-attempt` または `connection-reset`)。
+ `connection-attempt-status` — 接続リクエストのステータス (`successful`、`failed`、`waiting-for-assertion`、または `NA`)。
+ `connection-reset-status` — 接続リセットイベントのステータス (`NA` または `assertion-received`)。
+ `connection-attempt-failure-reason` — 接続エラーの理由 (該当する場合)。
+ `connection-id` — 接続の ID。
+ `client-vpn-endpoint-id` — 接続が行われたクライアント VPN エンドポイントの ID。
+ `transport-protocol` — 接続に使用されたトランスポートプロトコル。
+ `connection-start-time` — 接続の開始時刻。
+ `connection-last-update-time` — 接続の最終更新時刻。この値は、ログ内で定期的に更新されます。
+ `client-ip` — クライアントの IP アドレス。クライアント VPN エンドポイントのクライアント IPv4 CIDR 範囲から割り当てられます。
+ `common-name` — 証明書ベースの認証に使用される証明書の共通名。
+ `device-type` — エンドユーザーが接続に使用するデバイスのタイプ。
+ `device-ip` — デバイスのパブリック IP アドレス。
+ `port` — 接続のポート番号。
+ `ingress-bytes` — 接続の受信 (インバウンド) バイト数。この値は、ログ内で定期的に更新されます。
+ `egress-bytes` — 接続の送信 (アウトバウンド) バイト数。この値は、ログ内で定期的に更新されます。
+ `ingress-packets` — 接続の受信 (インバウンド) パケット数。この値は、ログ内で定期的に更新されます。
+ `egress-packets` — 接続の送信 (アウトバウンド) パケット数。この値は、ログ内で定期的に更新されます。
+ `connection-end-time` — 接続の終了時刻。この値は、接続がまだ進行中の場合や接続の試行が失敗した場合は `NA` です。
+ `posture-compliance-statuses` — [クライアント接続ハンドラー](connection-authorization.md)によって返される体制コンプライアンスステータス (該当する場合)。
+ `username` - ユーザー名は、エンドポイントにユーザーベースの認証 (AD または SAML) を使用するときに記録されます。
+ `connection-duration-seconds` - 接続の継続時間 (秒)。「接続開始時間」と「接続終了時間」の差に等しくなります。

接続ログの有効化の詳細については、「[AWS Client VPN 接続ログ](cvpn-working-with-connection-logs.md)」を参照してください。

# クライアント VPN スケーリングに関する考慮事項
<a name="scaling-considerations"></a>

クライアント VPN エンドポイントを作成するときは、サポートする予定の同時 VPN 接続の最大数を考慮してください。現在サポートしているクライアントの数と、必要に応じてクライアント VPN エンドポイントが追加需要を満たせるようスケールできるかどうかを考慮する必要があります。

以下の要因は、クライアント VPN エンドポイントでサポートできる同時 VPN 接続の最大数に影響します。

**クライアント CIDR 範囲のサイズ**  
[クライアント VPN エンドポイントを作成](cvpn-working-endpoint-create.md)するときは、クライアント CIDR 範囲を指定する必要があります。これは、/12 と /22 ネットマスクの間の IPv4 CIDR ブロックです。クライアント VPN エンドポイントへのそれぞれの VPN 接続には、クライアント CIDR 範囲から固有の IP アドレスが割り当てられます。クライアント CIDR 範囲内のアドレスの一部は、クライアント VPN エンドポイントの可用性モデルをサポートするためにも使用され、クライアントに割り当てることはできません。クライアント VPN エンドポイントの作成後にクライアント CIDR 範囲を変更することはできません。  
一般に、クライアント VPN エンドポイントでサポートする予定の IP アドレス (つまり同時接続) の 2 倍の数を含むクライアント CIDR 範囲を指定することをお勧めします。

**関連付けられたサブネットの数**  
[サブネットをクライアント VPN エンドポイントに関連付ける](cvpn-working-target.md)と、ユーザーはクライアント VPN エンドポイントへの VPN セッションを確立できるようになります。複数のサブネットを 1 つのクライアント VPN エンドポイントに関連付けると、高可用性を実現し、追加の接続キャパシティを有効にできます。  
クライアント VPN エンドポイントのサブネットの関連付けの数に基づく、サポートされる同時 VPN 接続の数を次に示します。      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/vpn/latest/clientvpn-admin/scaling-considerations.html)

1 つのアベイラビリティーゾーンの複数のサブネットをクライアント VPN エンドポイントに関連付けることはできません。したがって、サブネットの関連付けの数は、AWS リージョンで使用可能なアベイラビリティーゾーンの数にも依存します。

例えば、クライアント VPN エンドポイントへの 8,000 の VPN 接続をサポートすることが予想される場合は、クライアント CIDR 範囲の最小サイズ `/18` (16,384 IP アドレス) を指定し、少なくとも 2 つのサブネットをクライアント VPN エンドポイントに関連付けます。

クライアント VPN エンドポイントで予想される VPN 接続の数がわからない場合は、`/16` CIDR ブロックのサイズ以上を指定することをお勧めします。

クライアント CIDR 範囲とターゲットネットワークの操作に関する規則と制限の詳細については、「[を使用するためのルールとベストプラクティス AWS Client VPN](what-is-best-practices.md)」を参照してください 。

クライアント VPN エンドポイントのクォータの詳細については、「[AWS Client VPN のクォータ](limits.md)」を参照してください 。