教學課程:使用AWS Client VPN - Amazon Managed Workflows for Apache Airflow

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

教學課程:使用AWS Client VPN

本教學將逐步引導您完成從電腦建立 VPN 通道到 Apache 氣流網頁伺服器的步驟,以適用於 Apache 氣流環境的亞馬遜管理工作流程。若要透過 VPN 通道連線到網際網路,您首先需要建立AWS Client VPN端點。設定完成後,Client VPN 端點就像 VPN 伺服器一樣,允許從您的電腦與 VPC 中的資源進行安全連線。然後,您將使用桌面版從電腦連線到 Client VPN。AWS Client VPN

私有網路

本教學課程假設您已為 Apache Airflow 頁伺服器選擇私人網路存取模式。

此影像顯示具有私有 Web 伺服器之 Amazon MWAA 環境的架構。

私有網路存取模式可將 Apache Airflow UI 的存取權限限制為 Amazon VPC 中已授予您環境 IAM 政策存取權的使用者。

當您創建具有私有 Web 服務器訪問權限的環境時,必須將所有依賴項打包到 Python wheel 存檔(.whl)中,然後.whlrequirements.txt. 有關使用 wheel 打包和安裝依賴項的說明,請參閱使用 Python wheel 管理依賴關係

下圖顯示 Amazon MWAA 主控台上哪裡可以找到私人網路選項。

此影像顯示 Amazon MWAA 主控台上哪裡可以找到私人網路選項。

使用案例

您可以在建立 Amazon MWAA 環境之前或之後使用本教學課程。您必須使用與環境相同的 Amazon VPC、VPC 安全群組和私有子網路。如果您在建立 Amazon MWAA 環境後使用本教學課程,在完成這些步驟後,您可以返回 Amazon MWAA 主控台,並將 Apache 氣流網頁伺服器存取模式變更為私人網路

開始之前

  1. 檢查使用者權限。請確定您在AWS Identity and Access Management (IAM) 中的帳戶具有足夠的許可來建立和管理 VPC 資源。

  2. 使用您的亞馬遜 MWAA VPC。本教學假設您將 Client VPN 與現有 VPC 產生關聯到現有 VPC。Amazon VPC 必須與 Amazon MWAA 環境位於相同的AWS區域,並且具有兩個私有子網路。如果您尚未建立 Amazon VPC,請使用中的AWS CloudFormation範本選項三:建立沒有網際VPC網路存取權的 Amazon 網路

目標

在本教學中,您將執行下列作業:

  1. 使用現有 Amazon VPC 的AWS CloudFormation範本建立AWS Client VPN端點。

  2. 產生伺服器和用戶端憑證和金鑰,然後將伺服器憑證和金鑰上傳到AWS Certificate Manager Amazon MWAA 環境相同AWS區域。

  3. 下載並修改 Client VPN 的 Client VPN 端點設定檔,並使用該檔案建立 VPN 設定檔,以便使用桌面 Client VPN 進行連線。

(選擇性) 步驟一:識別您的 VPC、CIDR 規則和虛擬私人雲端安全性

以下部分說明如何尋找 Amazon VPC、VPC 安全群組的 ID,以及識別在後續步驟中建立 Client VPN 所需的 CIDR 規則的方法。

識別您的 CIDR 規則

以下部分說明如何識別 CIDR 規則,您需要建立 Client VPN。

若要識別 Client VPN 的 CIDR
  1. 亞馬遜 VPC 主控台上開啟您的亞馬遜 VPC 頁面

  2. 使用導覽列中的區域選擇器,選擇與 Amazon MWAA 環境相同的AWS區域。

  3. 選擇您的 Amazon VPC。

  4. 假設您的私有子網路的 CIDR 是:

    • 私有子網路 1:/24

    • 私有子網路 2:/24

    如果您的亞馬遜 VPC 的 CIDR 是 10.192.0.0/16,那麼您為客戶端 VPN 指定的用戶端 IPv4 CIDR 將是 10.192.0.0/22

  5. 儲存此 CIDR 值,以及 VPC ID 的值,以供後續步驟使用。

識別您的 VPC 和安全群組

以下部分說明如何尋找 Amazon VPC 和安全群組的 ID,以及建立 Client VPN 所需的 ID。

注意

您可能正在使用多個安全群組。您需要在後續步驟中指定所有 VPC 的安全群組。

若要識別安全性群組
  1. 在 Amazon VPC 主控台上開啟「安全群組」頁面

  2. 使用導覽列中的區域選擇器選擇AWS區域。

  3. 在 VPC ID 中尋找 Amazon VPC,並識別與虛擬私人 VPC 相關聯的安全群組。

  4. 儲存安全群組和 VPC 的 ID,以便後續步驟使用。

步驟 2:建立伺服器和用戶端憑證

Client VPN 端點僅支援 1024 位元和 2048 位元 RSA 金鑰大小。下節介紹如何使用 OpenVPN 產生伺服器和用戶端憑證及金鑰,然後使用AWS Command Line Interface (AWS CLI) 將憑證上傳到 ACM。

建立用戶端憑證
  1. 依照下列快速步驟,透過 [用戶端驗證與授權:相互驗證]AWS CLI 中的 [建立憑證並上傳至 ACM]

  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. 完成這些步驟後,請儲存在回AWS CLI應中針對伺服器憑證和用戶端憑證 ARN 所傳回的值。您將在AWS CloudFormation範本中指定這些 ARN 以建立 Client VPN。

  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。您將會將這些值新增至 Client VPN 的設定檔中。

步驟三:在本機儲存AWS CloudFormation範本

以下部分包含用於創建 Client VPN 的AWS CloudFormation模板。您必須指定與 Amazon MWAA 環境相同的 Amazon VPC、VPC 安全群組和私有子網路。

  • 複製下列範本機內容並在本機儲存為mwaa_vpn_client.yaml。您也可以下載模板

    以下列值取代:

    • YOUR_CLIENT_ROOT_CERTIFICATE_ARN— ARN 為您的用戶端 1. 網域 .tld 憑證中ClientRootCertificateChainArn

    • YOUR_SERVER_CERTIFICATE_ARN— 中伺服器憑證的 ARNServerCertificateArn

    • 中的用戶端 IPv4 CIDR 規則ClientCidrBlock。提供的10.192.0.0/22 CIDR 規則。

    • 您的亞馬遜 VPC ID 在VpcId. 本發明提供一種的 VPC 人vpc-010101010101雲端。

    • 您在中的 VPC 安全群組識別碼SecurityGroupIds。提供的安全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

步驟四:建立 Client VPNAWS CloudFormation 堆疊

建立 AWS Client VPN
  1. 開啟 AWS CloudFormation 主控台

  2. 選擇模板已準備就緒上傳模板文件

  3. 選擇 [選擇檔案],然後選取您的mwaa_vpn_client.yaml檔案。

  4. 選擇下一步下一步

  5. 選取確認,然後選擇 [建立堆疊]。

步驟五:將子網路與 Client VPN 建立關聯

若要將私人子網路關聯至AWS Client VPN
  1. 打開亞馬遜 VPC 控制台

  2. 選擇「Client VPN 端點」頁面。

  3. 選取您的 Client VPN,然後選擇 [關聯] 索引標籤 [關]。

  4. 在下拉式清單中選擇下列項目:

    • 您在 VPC 中的亞馬遜 VPC

    • 您在 [選擇要關聯的子網路] 中的其中一個私人子網路

  5. 選擇 Associate (關聯)。

注意

將 VPC 和子網路與 Client VPN 相關聯到 Client VPN。

步驟六:將授權輸入規則新增至 Client VPN

您需要使用 VPC 的 CIDR 規則將授權輸入規則新增至 Client VPN。如果您想要從您的作用中目錄群組或 SAML 型身分識別提供者 (IdP) 授權特定使用者或群組,請參閱 Client VPN 指南中的授權規則

若要將 CIDR 新增至AWS Client VPN
  1. 打開亞馬遜 VPC 控制台

  2. 選擇「Client VPN 端點」頁面。

  3. 選取您的 Client VPN,然後選擇 [權] 索引標籤 [授權輸入]。

  4. 指定下列內容:

    • 要在目的地網路中啟用的 Amazon VPC 的 CIDR 規則。例如:

      10.192.0.0/16
    • 在授與存取權限中選擇允許所有使用者

    • 明中輸入描述性名稱。

  5. 選擇「新增授權規則」。

注意

視 Amazon VPC 的聯網元件而定,您可能還需要將此授權輸入規則納入網路存取控制清單 (NACL)。

步驟 7:下載 Client VPN 端點組態檔案

下載組態檔
  1. 請依照下列快速步驟,在下載 Client VPN 端點設定檔案中下載 Client VPN 組態檔案

  2. 在這些步驟中,系統會要求您在 Client VPN 端點 DNS 名稱前面加上字串。範例如下:

    1. 範例 端點 DNS 名稱

      如果您的 Client VPN 端點 DNS 名稱如下所示:

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

      您可以新增字串來識別 Client VPN 端點,如下所示:

      remote mwaavpn.cvpn-endpoint-0909091212aaee1.prod.clientvpn.us-west-1.amazonaws.com 443
  3. 在這些步驟中,系統會要求您在新標籤之間新增用戶端憑證的內容與新<cert></cert>標籤組的<key></key>私有金鑰內容。範例如下:

    1. 開啟命令提示字元,並將目錄變更為用戶端憑證和私密金鑰的位置。

    2. 範例 macOS 用戶端 1. 網域名稱

      要在 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 用戶端 1. 網域名稱

      若要顯示的內容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>

第八步:Connect 到AWS Client VPN

的用戶端AWS Client VPN是免費提供的。您可將您的電腦直接連線到AWS Client VPN端到端 VPN 體驗。

連線到 Client VPN
  1. 下載並安裝AWS Client VPN桌面版

  2. 開啟 AWS Client VPN。

  3. 在 VPN 用戶端功能表中選擇檔案受管理的設定檔。

  4. 選擇 [新增設定檔],然後選擇downloaded-client-config.ovpn

  5. 顯示名稱中輸入描述性名稱

  6. 選擇新增設定檔完成

  7. 選擇 Connect (連線)。

連線到 Client VPN 後,您需要中斷與其他 VPN 的連線,才能檢視 Amazon VPC 中的任何資源。

注意

您可能需要結束用戶端,然後重新開始才能連線。

後續步驟?

  • 了解如何在中建立 Amazon MWAA 環境開始使用 Amazon Managed Workflows。您必須在與 Client VPN 相同的AWS區域中建立環境,並使用與 Client VPN 相同的 VPC、私有子網路和安全性群組。