

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

# チュートリアル: AWS Client VPN を使用したプライベートネットワークアクセスの設定
<a name="tutorials-private-network-vpn-client"></a>

このチュートリアルでは、Amazon Managed Workflows for Apache Airflow 環境用に、コンピュータから Apache Airflow ウェブサーバーへの VPN トンネルを作成する手順を説明します。VPN トンネルを介してインターネットに接続するには、まず AWS Client VPN エンドポイントを作成する必要があります。設定が完了すると、クライアント VPN エンドポイントは VPN サーバーとして機能し、コンピューターから VPC 内のリソースへの安全な接続を可能にします。次に、[AWS Client VPN デスクトップ用](https://aws.amazon.com/vpn/client-vpn-download/) を使用して、コンピューターから Client VPN に接続します。

**Topics**
+ [プライベートネットワーク](#private-network-vpn-onconsole)
+ [ユースケース](#private-network-vpn-usecases)
+ [開始する前に](#private-network-vpn-prereqs)
+ [目的](#private-network-vpn-objectives)
+ [(オプション) ステップ 1: VPC、CIDR ルール、VPC セキュリティを特定する](#private-network-vpn-optional)
+ [ステップ 2: サーバーとクライアントの証明書を作成する](#private-network-vpn-certs)
+ [ステップ 3: CloudFormation テンプレートをローカルに保存する](#private-network-vpn-template)
+ [ステップ 4: クライアント VPN CloudFormation スタックを作成する](#private-network-vpn-create)
+ [ステップ 5: サブネットをクライアント VPN に関連付ける](#private-network-vpn-associate)
+ [ステップ 6: クライアント VPN に認可進入ルールを追加する](#private-network-vpn-autho)
+ [ステップ 7：クライアント VPN のエンドポイント設定ファイルをダウンロードします](#private-network-vpn-download)
+ [ステップ 8: AWS Client VPN に接続する](#private-network-vpn-connect)
+ [次のステップ](#create-vpc-vpn-next-up)

## プライベートネットワーク
<a name="private-network-vpn-onconsole"></a>

このチュートリアルでは、Apache Airflow ウェブサーバーの **プライベートネットワーク** アクセスモードを選択していることを前提としています。

![この画像は、プライベートウェブサーバーを備えた Amazon MWAA 環境のアーキテクチャを示しています。](http://docs.aws.amazon.com/ja_jp/mwaa/latest/userguide/images/mwaa-private-web-server.png)


プライベートネットワークアクセスモードは、Apache Airflow UI へのアクセスを、[お使いの環境の IAM ポリシー](access-policies.md) へのアクセスが許可されている *Amazon VPC 内* のユーザーに制限します。

プライベートなウェブサーバーアクセスを持つ環境を作成する場合、すべての依存関係を Python Wheel アーカイブ (`.whl`) にパッケージ化し、その後、`requirements.txt` で `.whl` を参照する必要があります。wheel を使用して依存関係をパッケージ化およびインストールする手順については、[Python wheel を使用した依存関係の管理](best-practices-dependencies.md#best-practices-dependencies-python-wheels) を参照してください。

以下の画像は、Amazon MWAA コンソールの **プライベートネットワーク** オプションの場所を示しています。

![この画像は、Amazon MWAA コンソールの プライベートネットワーク オプションが表示される場所を示しています。](http://docs.aws.amazon.com/ja_jp/mwaa/latest/userguide/images/mwaa-console-private-network.png)


## ユースケース
<a name="private-network-vpn-usecases"></a>

このチュートリアルは、Amazon MWAA 環境を作成する前でも後でも使用できます。環境と同じ Amazon VPC、VPC セキュリティグループ、プライベートサブネットを使用する必要があります。Amazon MWAA 環境を作成した後にこのチュートリアルを使用する場合、手順を完了したら Amazon MWAA コンソールに戻り、Apache Airflow ウェブサーバーのアクセスモードを **プライベートネットワーク** に変更できます。

## 開始する前に
<a name="private-network-vpn-prereqs"></a>

1. ユーザー許可を確認してください。AWS Identity and Access Management (IAM) のアカウントに VPC リソースを作成および管理するための十分な権限があることを確認してください。

1. Amazon MWAA VPC を使用してください。このチュートリアルでは、クライアント VPN を既存の VPC に関連付けることを前提としています。Amazon VPC は、Amazon MWAA 環境と同じ AWS リージョン にある必要があり、かつ 2 つのプライベートサブネットを持っている必要があります。Amazon VPC を作成していない場合、[オプション 3: インターネットにアクセス *せずに* Amazon VPC ネットワークを作成する](vpc-create.md#vpc-create-template-private-only) で CloudFormation テンプレートを使用してください。

## 目的
<a name="private-network-vpn-objectives"></a>

このチュートリアルでは、以下の作業を行います。

1. 既存の Amazon VPC に対して、CloudFormation テンプレートを使用して AWS Client VPN エンドポイントを作成します。

1. サーバーおよびクライアントの証明書とキーを生成し、その後、Amazon MWAA 環境と同じ AWS リージョン にある AWS Certificate Manager にサーバー証明書とキーをアップロードします。

1. クライアント VPN のクライアント VPN エンドポイント設定ファイルをダウンロードして変更し、このファイルを使用して、デスクトップ用クライアント VPN を用いて接続するための VPN プロファイルを作成します。

## (オプション) ステップ 1: VPC、CIDR ルール、VPC セキュリティを特定する
<a name="private-network-vpn-optional"></a>

次のセクションでは、Amazon VPC、VPC セキュリティグループの ID を検索する方法と、以降のステップでクライアント VPN を作成するために必要な CIDR ルールを特定する方法について説明します。

### CIDR ルールを特定してください。
<a name="private-network-vpn-cidr"></a>

次のセクションでは、クライアント VPN を作成するために必要な CIDR ルールを特定する方法を説明します。

**クライアント VPN の CIDR を識別するには**

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

1. ナビゲーションバーのリージョンセレクターを使用して、Amazon MWAA 環境と同じ AWS リージョン を選択します。

1. Amazon VPC を選択してください。

1. プライベートサブネットの CIDR が以下のようになっていると仮定します。
   + プライベートサブネット 1: 10.192.10.0`/24`
   + プライベートサブネット 2: 10.192.11.0`/24`

   Amazon VPC の CIDR が 10.192.0.0`/16` の場合、クライアント VPN に指定する**クライアント IPv4 CIDR** は 10.192.0.0`/22` になります。

1. この CIDR 値と VPC ID の値を後続のステップのために保存してください。

### VPC とセキュリティグループを特定する
<a name="private-network-vpn-sec"></a>

次のセクションでは、クライアント VPN を作成するために必要な Amazon VPC とセキュリティグループの ID を確認する方法を説明します。

**注記**  
複数のセキュリティグループを使用している可能性があります。後続のステップでは、VPC のセキュリティグループをすべて指定する必要があります。

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

1. Amazon VPC コンソールの [セキュリティグループページ](https://console.aws.amazon.com/vpc/home#/securityGroups:) を開きます。

1. ナビゲーションバーのリージョンセレクターを使って、AWS リージョン を選択します。

1. **VPC ID** で Amazon VPC を検索し、その VPC に関連付けられているセキュリティグループを特定します。

1. セキュリティグループと VPC の ID を後続のステップのために保存します。

## ステップ 2: サーバーとクライアントの証明書を作成する
<a name="private-network-vpn-certs"></a>

クライアント VPN エンドポイントは、1024 ビットおよび 2048 ビットの RSA キーサイズのみサポートしています。以下のセクションでは、OpenVPN easy-rsa を使ってサーバーとクライアントの証明書と鍵を生成し、AWS Command Line Interface (AWS CLI) を使って証明書を ACM にアップロードする方法を説明します。

**クライアント証明書を作成するには**

1. 以下の簡単な手順に従って、[クライアントの認証と認可:相互認証](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/client-authentication.html#mutual) の AWS CLI から証明書を作成し、ACM にアップロードします。

1. これらの手順では、サーバーおよびクライアント証明書をアップロードする際に、AWS CLI コマンドで Amazon MWAA 環境と同じ AWS リージョン を指定する **必要があります**。ここでは、これらのコマンドでリージョンを指定する方法を例で示します。

   1.   
**Example サーバー証明書のリージョン**  

      ```
      aws acm import-certificate --certificate fileb://server.crt --private-key fileb://server.key --certificate-chain fileb://ca.crt {{--region us-west-2}}
      ```

   1.   
**Example クライアント証明書のリージョン**  

      ```
      aws acm import-certificate --certificate fileb://client1.domain.tld.crt --private-key fileb://client1.domain.tld.key --certificate-chain fileb://ca.crt {{--region us-west-2}}
      ```

   1. これらの手順の後、サーバー証明書およびクライアント証明書の ARN に関する AWS CLI のレスポンスで返された値を保存してください。これらの ARN を使用して、クライアント VPN を作成するための CloudFormation テンプレートに ARN を指定します。

1. この手順では、クライアント証明書とプライベートキーがコンピューターに保存されます。ここでは、これらの認証情報の確認場所の例。

   1.   
**Example macOS 上**  

      macOS では、内容は `/Users/{{your-user}}/custom_folder` に保存されます。このディレクトリのすべての (`ls -a`) 内容を一覧表示すると、次のような内容が表示されます。

      ```
      .
      ..
      ca.crt
      client1.domain.tld.crt
      client1.domain.tld.key
      server.crt
      server.key
      ```

   1. これらの手順の後、クライアント証明書の内容または場所を `client1.domain.tld.crt` に保存し、プライベートキーの場所を `client1.domain.tld.key` にメモしてください。これらの値をクライアント VPN の設定ファイルに追加します。

## ステップ 3: CloudFormation テンプレートをローカルに保存する
<a name="private-network-vpn-template"></a>

次のセクションには、クライアント VPN を作成するための CloudFormation テンプレートが含まれています。Amazon MWAA 環境と同じ Amazon VPC、VPC セキュリティグループ、およびプライベートサブネットを指定する必要があります。
+ 次のテンプレートの内容をコピーし、`mwaa_vpn_client.yaml` としてローカルに保存します。[テンプレートをダウンロードする](./samples/mwaa_vpn_client.zip)こともできます。

  以下の値を置き換えます。
  + **YOUR\_CLIENT\_ROOT\_CERTIFICATE\_ARN** — `ClientRootCertificateChainArn` の **client1.domain.tld** 証明書のARN。
  + **YOUR\_SERVER\_CERTIFICATE\_ARN** — `ServerCertificateArn` 内の **サーバー** 証明書の ARN。
  + `ClientCidrBlock` のクライアント IPv4 CIDR ルール。`10.192.0.0/22` の CIDR ルールが提供されています。
  + `VpcId` の Amazon VPC ID 。`vpc-010101010101` の VPC が提供されています。
  + `SecurityGroupIds` 内の VPC セキュリティグループ ID。`sg-0101010101` のセキュリティグループが提供されています。

  ```
  AWSTemplateFormatVersion: 2010-09-09
  Description: This template deploys a VPN Client Endpoint.
  Resources:
    ClientVpnEndpoint:
      Type: 'AWS::EC2::ClientVpnEndpoint'
      Properties:
        AuthenticationOptions:
          - Type: "certificate-authentication"
            MutualAuthentication:
              ClientRootCertificateChainArn: "YOUR_CLIENT_ROOT_CERTIFICATE_ARN"
        ClientCidrBlock: 10.192.0.0/22
        ClientConnectOptions:
          Enabled: false
        ConnectionLogOptions:
          Enabled: false
        Description: "MWAA Client VPN"
        DnsServers: []
        SecurityGroupIds:
          - sg-0101010101
        SelfServicePortal: ''
        ServerCertificateArn: "YOUR_SERVER_CERTIFICATE_ARN"
        SplitTunnel: true
        TagSpecifications:
          - ResourceType: "client-vpn-endpoint"
            Tags:
            - Key: Name
              Value: MWAA-Client-VPN
        TransportProtocol: udp
        VpcId: vpc-010101010101
        VpnPort: 443
  ```

**注記**  
ご使用の環境で複数のセキュリティグループを使用している場合は、次の形式で複数のセキュリティグループを指定できます。  

```
SecurityGroupIds:
 - sg-0112233445566778b
 - sg-0223344556677889f
```

## ステップ 4: クライアント VPN CloudFormation スタックを作成する
<a name="private-network-vpn-create"></a>

**AWS Client VPN を作成するには**

1. [AWS CloudFormation コンソール](https://console.aws.amazon.com/cloudformation/home#) を開きます。

1. **テンプレートは準備できている**、**テンプレートファイルをアップロードする** を選択します。

1. **ファイルのを選択** を選択し、`mwaa_vpn_client.yaml` ファイルを選択します。

1. **次へ**、**次へ** を選択します。

1. アクノレッジメントを選択し、**スタックを作成** を選択します。

## ステップ 5: サブネットをクライアント VPN に関連付ける
<a name="private-network-vpn-associate"></a>

**プライベートサブネットを AWS Client VPN に関連付けるには**

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

1. **クライアント VPN エンドポイント** ページを選択します。

1. クライアント VPN を選択し、次に **アソシエーション** タブの **アソシエイト** を選択します。

1. ドロップダウンリストから次の項目を選択します。
   + **VPC** 内の Amazon VPC。
   + **関連付けるサブネットを選択** にあるプライベートサブネットの 1 つ。

1. **関連付ける** を選択してください。

**注記**  
VPC とサブネットがクライアント VPN に関連付けられるまでに数分かかります。

## ステップ 6: クライアント VPN に認可進入ルールを追加する
<a name="private-network-vpn-autho"></a>

VPC の CIDR ルールを使用する認可進入ルールをクライアント VPN に追加する必要があります。Active Directory グループまたは SAML ベースのアイデンティティプロバイダー (IdP) から特定のユーザーまたはグループを承認する場合は、*Client VPN ガイド* の [承認ルール](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/cvpn-working-rules.html) を参照してください。

**CIDR を AWS Client VPN に追加するには**

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

1. **クライアント VPN エンドポイント** ページを選択します。

1. クライアント VPN を選択し、**承認** タブの **進入を許可** を選択します。

1. 次を指定します:
   + **有効化する送信先ネットワーク** にある Amazon VPC の CIDR ルール。例:

     ```
     10.192.0.0/16
     ```
   + **アクセスを付与する対象** で、**すべてのユーザーにアクセスを許可する** を選択します。
   + **説明** で、分かりやすい名前を入力します。

1. **認可ルールを追加する** を選択します。

**注記**  
Amazon VPC のネットワークコンポーネントによっては、ネットワークアクセスコントロールリスト (NACL) へのこの承認進入ルールが必要な場合もあります。

## ステップ 7：クライアント VPN のエンドポイント設定ファイルをダウンロードします
<a name="private-network-vpn-download"></a>

**設定ファイルをダウンロードするには**

1. [Client VPN エンドポイント設定ファイルのダウンロード](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/cvpn-getting-started.html#cvpn-getting-started-config) にある Client VPN 設定ファイルをダウンロードするには、以下の簡単な手順に従ってください。

1. このステップでは、クライアント VPN エンドポイントの DNS 名の前に文字列を追加するように求められます。例を示します。

   1.   
**Example エンドポイント DNS 名**  

     クライアント VPN エンドポイントの DNS 名が次の場合:

     ```
     remote cvpn-endpoint-0909091212aaee1.prod.clientvpn.us-west-1.amazonaws.com 443
     ```

     クライアント VPN エンドポイントを識別する文字列を次のように追加できます。

     ```
     remote {{mwaavpn}}.cvpn-endpoint-0909091212aaee1.prod.clientvpn.us-west-1.amazonaws.com 443
     ```

1. これらの手順では、クライアント証明書の内容を新しい `<cert></cert>` のタグの間に追加し、プライベートキーの内容を新しい `<key></key>` のタグの間に追加するように求められます。例を示します。

   1. コマンドプロンプトを開き、ディレクトリをクライアント証明書とプライベートキーの場所に変更します。

   1.   
**Example macOS client1.domain.tld.crt**  

      macOS で `client1.domain.tld.crt` ファイルの内容を表示するには、`cat client1.domain.tld.crt` を使用できます。

      ターミナルから値をコピーし、`downloaded-client-config.ovpn` に貼り付けます。以下のようになります。

      ```
      ZZZ1111dddaBBB
      -----END CERTIFICATE-----
      </ca>
      <cert>
      -----BEGIN CERTIFICATE-----
      {{YOUR client1.domain.tld.crt}}
      -----END CERTIFICATE-----                
      </cert>
      ```

   1.   
**Example macOS client1.domain.tld.key**  

      `client1.domain.tld.key` の内容を表示するには、`cat client1.domain.tld.key` を使用できます。

      ターミナルから値をコピーし、`downloaded-client-config.ovpn` に貼り付けます。以下のようになります。

      ```
      ZZZ1111dddaBBB
      -----END CERTIFICATE-----
      </ca>
      <cert>
      -----BEGIN CERTIFICATE-----
      {{YOUR client1.domain.tld.crt}}
      -----END CERTIFICATE-----                
      </cert>
      <key>
      -----BEGIN CERTIFICATE-----
      {{YOUR client1.domain.tld.key}}
      -----END CERTIFICATE-----                
      </key>
      ```

## ステップ 8: AWS Client VPN に接続する
<a name="private-network-vpn-connect"></a>

AWS Client VPN のクライアントは無料で提供されています。コンピュータを AWS Client VPN に直接接続して、エンドツーエンドの VPN 体験をすることができます。

**クライアント VPN に接続するには**

1. [AWS Client VPN for Desktop](https://aws.amazon.com/vpn/client-vpn-download/) をダウンロードしてインストールします。

1. AWS Client VPN を開きます。

1. VPN クライアントメニューで **ファイル**、**管理対象プロファイル** を選択します。

1. **プロファイルを追加** を選択し、`downloaded-client-config.ovpn` を選択します。

1. **表示名** にわかりやすい名前を入力します。

1. **プロフィールを追加** を選択し、**完了** を選択します。

1. **接続** を選択します。

クライアント VPN に接続したら、Amazon VPC 内のすべてのリソースにアクセスするには、他の VPN との接続を切断する必要があります。

**注記**  
接続する前に、クライアントを終了して再起動する必要がある場合があります。

## 次のステップ
<a name="create-vpc-vpn-next-up"></a>
+ [Amazon Managed Workflows for Apache Airflow を使い始める](get-started.md) で Amazon MWAA 環境を作成する方法を学びます。クライアント VPN と同じ AWS リージョン に、クライアント VPN と同じ VPC、プライベートサブネット、セキュリティグループを使用して環境を作成する必要があります。