チュートリアル: AWS Client VPN を使用したプライベートネットワークアクセスの設定 - Amazon Managed Workflows for Apache Airflow

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

チュートリアル: AWS Client VPN を使用したプライベートネットワークアクセスの設定

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

プライベートネットワーク

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


            この画像は、プライベートウェブサーバーを備えた Amazon MWAA 環境のアーキテクチャを示しています。

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

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

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


            この画像は、Amazon MWAA コンソールの [プライベートネットワーク] オプションが表示される場所を示しています。

ユースケース

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

開始する前に

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

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

目的

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

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

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

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

(オプション) ステップ 1: VPC、CIDR ルール、VPC セキュリティを特定する

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

CIDR ルールを特定してください。

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

クライアント VPN の CIDR を識別するには
  1. Amazon VPC コンソールの「Amazon VPC ページ」を開きます。

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

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

  4. プライベートサブネットの 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 になります。

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

VPC とセキュリティグループを特定する

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

注記

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

セキュリティグループを特定するには
  1. Amazon VPC コンソールの「セキュリティグループページ」を開きます。

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

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

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

ステップ 2: サーバーとクライアントの証明書を作成する

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

クライアント証明書を作成するには
  1. 以下の簡単な手順に従って、「クライアントの認証と承認:相互認証」から証明書を作成し、ACM にアップロードするための AWS CLI を使用してください。

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

    1. 例 サーバー証明書のリージョン
      aws acm import-certificate --certificate fileb://server.crt --private-key fileb://server.key --certificate-chain fileb://ca.crt --region us-west-2
    2. 例 クライアント証明書のリージョン
      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
    3. これらの手順の後、サーバー証明書およびクライアント証明書の ARN に関する AWS CLI のレスポンスで返された値を保存してください。これらの ARN を使用して、クライアント VPN を作成するための AWS CloudFormation テンプレートに ARN を指定します。

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

    1. 例 macOS 上

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

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

ステップ 3: AWS CloudFormation テンプレートをローカルに保存する

次のセクションには、クライアント VPN を作成するための AWS CloudFormation テンプレートが含まれています。Amazon MWAA 環境と同じ Amazon VPC、VPC セキュリティグループ、およびプライベートサブネットを指定する必要があります。

  • 次のテンプレートの内容をコピーし、mwaa_vpn_client.yaml としてローカルに保存します。「テンプレートをダウンロードする」 こともできます。

    以下の値を置き換えます。

    • YOUR_CLIENT_ROOT_CERTIFICATE_ARNClientRootCertificateChainArn の「client1.domain.tld」証明書のARN。

    • YOUR_SERVER_CERTIFICATE_ARNServerCertificateArn 内のサーバー証明書の 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 AWS CloudFormation スタックを作成する

AWS Client VPN を作成するには
  1. AWS CloudFormation コンソールを開きます。

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

  3. [ファイルのを選択] を選択し、mwaa_vpn_client.yaml ファイルを選択します。

  4. [次へ][次へ] を選択します。

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

ステップ 5: サブネットをクライアント VPN に関連付ける

プライベートサブネットを AWS Client VPN に関連付けるには
  1. Amazon VPC コンソールを開きます。

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

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

  4. ドロップダウンリストから次の項目を選択します。

    • [VPC] 内の Amazon VPC。

    • [関連付けるサブネットを選択] にあるプライベートサブネットの 1 つ。

  5. [関連付ける] を選択します。

注記

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

ステップ 6: クライアント VPN に認証進入ルールを追加する

VPC の CIDR ルールを使用する認証進入ルールをクライアント VPN に追加する必要があります。Active Directory グループまたは SAML ベースのアイデンティティプロバイダー (IdP) から特定のユーザーまたはグループを承認する場合は、Client VPN ガイドの「承認ルール」を参照してください。

CIDR を AWS Client VPN に追加するには
  1. Amazon VPC コンソールを開きます。

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

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

  4. 次を指定します:

    • [有効化する送信先ネットワーク] にある Amazon VPC の CIDR ルール。例:

      10.192.0.0/16
    • [アクセスを付与する対象] で、[すべてのユーザーにアクセスを許可する] を選択します。

    • [説明] で、分かりやすい名前を入力します。

  5. [認可ルールを追加する] を選択します。

注記

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

ステップ 7:クライアント VPN のエンドポイント設定ファイルをダウンロードします

設定ファイルをダウンロードするには
  1. Client VPN エンドポイント設定ファイルのダウンロード」にある Client VPN 設定ファイルをダウンロードするには、以下の簡単な手順に従ってください。

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

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

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

    2. 例 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>
    3. 例 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 に接続する

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

クライアント VPN に接続するには
  1. AWS Client VPN for Desktop」をダウンロードしてインストールします。

  2. AWS Client VPN を開きます。

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

  4. [プロファイルを追加] を選択し、downloaded-client-config.ovpn を選択します。

  5. [表示名] にわかりやすい名前を入力します。

  6. [プロフィールを追加] を選択し、[完了] を選択します。

  7. [Connect] (接続) を選択します。

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

注記

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

次のステップ

  • Amazon Managed Workflows for Apache Airflowを使い始める で Amazon MWAA 環境を作成する方法を学びます。クライアント VPN と同じ AWS のリージョンに、クライアント VPN と同じ VPC、プライベートサブネット、セキュリティグループを使用して環境を作成する必要があります。