本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學課程:使用 Linux 堡壘主機設定私有網路存取
本教學課程將逐步引導您建立 SSH 通道,從您的電腦到 Amazon Managed Workflows for Apache Airflow 環境的 Apache Airflow Web 伺服器。它假設您已建立 Amazon MWAA 環境。設定完成後,Linux 堡壘主機會充當跳轉伺服器,允許從您的電腦安全連線至 VPC 中的資源。然後,您將使用 SOCKS 代理管理附加元件來控制瀏覽器中的代理設定,以存取您的 Apache Airflow UI。
章節
私有網路
本教學假設您已為 Apache Airflow Web 伺服器選擇私有網路存取模式。

私有網路存取模式會將對 Apache Airflow UI 的存取限制在 Amazon VPC 中已授予您環境 IAM 政策存取權的使用者。
當您建立具有私有 Web 伺服器存取權的環境時,您必須在 Python wheel 封存檔 (.whl
) 中封裝所有相依性,然後在 .whl
中參考 requirements.txt
。如需使用 wheel 封裝和安裝相依性的說明,請參閱使用 Python wheel 管理相依性。
下圖顯示在 Amazon MWAA 主控台上尋找私有網路選項的位置。

使用案例
您可以在建立 Amazon MWAA 環境後使用此教學課程。您必須使用與環境相同的 Amazon VPC、VPC 安全群組 (和公有子網路)。
開始之前
-
檢查使用者許可。請確定您在 AWS Identity and Access Management (IAM) 中的帳戶有足夠的許可來建立和管理 VPC 資源。
-
使用您的 Amazon MWAA VPC。本教學假設您正在將堡壘主機與現有 VPC 建立關聯。Amazon VPC 必須與 Amazon MWAA 環境位於相同的區域,並具有兩個私有子網路,如 中所定義建立 VPC 網路。
-
建立 SSH 金鑰。您需要在與 Amazon MWAA 環境相同的區域中建立 Amazon EC2 SSH 金鑰 (.pem),才能連線至虛擬伺服器。如果您沒有 SSH 金鑰,請參閱《Amazon EC2 使用者指南》中的建立或匯入金鑰對。
目標
在本教學中,您將執行下列作業:
-
使用AWS CloudFormation 現有 VPC 的範本
建立 Linux 堡壘主機執行個體。 -
使用連接埠 上的輸入規則,將傳入流量授權至堡壘執行個體的安全群組
22
。 -
授權從 Amazon MWAA 環境安全群組到堡壘執行個體安全群組的傳入流量。
-
建立堡壘執行個體的 SSH 通道。
-
安裝並設定 Firefox 瀏覽器的 FoxyProxy 附加元件,以檢視 Apache Airflow UI。
步驟一:建立堡壘執行個體
下一節說明使用 AWS CloudFormation 主控台上AWS CloudFormation 現有 VPC 的範本
建立 Linux 堡壘主機
-
在 AWS CloudFormation 主控台上開啟部署 Quick Start
頁面。 -
使用導覽列中的區域選擇器,選擇與 Amazon MWAA 環境相同的 AWS 區域。
-
選擇下一步。
-
在堆疊名稱文字欄位中輸入名稱,例如
mwaa-linux-bastion
。 -
在參數、網路組態窗格中,選擇下列選項:
-
選擇 Amazon MWAA 環境的 VPC ID。
-
選擇 Amazon MWAA 環境的公有子網路 1 ID。
-
選擇 Amazon MWAA 環境的公有子網路 2 ID。
-
在允許堡壘外部存取 CIDR 中輸入最窄的可能地址範圍 (例如,內部 CIDR 範圍)。
注意
識別範圍最簡單的方法是使用與公有子網路相同的 CIDR 範圍。例如, 建立 VPC 網路頁面上 AWS CloudFormation 範本中的公有子網路為
10.192.10.0/24
和10.192.11.0/24
。
-
-
在 Amazon EC2 組態窗格中,選擇下列項目:
-
在金鑰對名稱的下拉式清單中選擇您的 SSH 金鑰。
-
在堡壘主機名稱中輸入名稱。
-
針對 TCP 轉送選擇 true。
警告
在此步驟中,TCP 轉送必須設定為 true。否則,您將無法在下一個步驟中建立 SSH 通道。
-
-
選擇下一步、下一步。
-
選取確認,然後選擇建立堆疊。
若要進一步了解 Linux 堡壘主機的架構,請參閱 AWS 雲端上的 Linux 堡壘主機: 架構。
步驟二:建立 SSH 通道
下列步驟說明如何建立 linux 堡壘的 ssh 通道。SSH 通道會將請求從本機 IP 地址接收到 linux 堡壘,這就是為什麼在先前步驟true
中將 linux 堡壘的 TCP 轉送設定為 的原因。
注意
如果您收到Permission denied (publickey)
錯誤,建議您使用 AWSSupport-TroubleshootSSH 工具,然後選擇執行此自動化 (主控台) 來疑難排解 SSH 設定。
步驟三:將堡壘安全群組設定為傳入規則
允許從伺服器存取伺服器和定期網際網路,並將特殊維護安全群組連接到這些伺服器。下列步驟說明如何將堡壘安全群組設定為環境 VPC 安全群組的傳入流量來源。
-
在 Amazon MWAA 主控台上開啟環境頁面
。 -
選擇環境。
-
在聯網窗格中,選擇 VPC 安全群組。
-
選擇 Edit inbound Rules (編輯傳入規則)。
-
選擇新增規則。
-
在來源下拉式清單中選擇您的 VPC 安全群組 ID。
-
將其餘選項保留空白,或設定為其預設值。
-
選擇儲存規則。
步驟四:複製 Apache Airflow URL
下列步驟說明如何開啟 Amazon MWAA 主控台,並將 URL 複製到 Apache Airflow UI。
-
在 Amazon MWAA 主控台上開啟環境頁面
。 -
選擇環境。
-
在 Airflow UI 中複製 URL 以進行後續步驟。
步驟五:設定代理設定
如果您使用 SSH 通道搭配動態連接埠轉送,您必須使用 SOCKS 代理管理附加元件,以控制在瀏覽器中的代理設定。例如,您可以使用 Chromium --proxy-server
的功能來啟動瀏覽器工作階段,或在 Mozilla FireFox 瀏覽器中使用 FoxyProxy 延伸模組。
選項一:使用本機連接埠轉送設定 SSH 通道
如果您不想使用 SOCKS 代理,您可以使用本機連接埠轉送來設定 SSH 通道。下列範例命令透過轉送本機連接埠 8157 上的流量來存取 Amazon EC2 ResourceManager Web 介面。
-
開啟新的命令提示視窗。
-
輸入下列命令以開啟 SSH 通道。
ssh -i
mykeypair.pem
-N -L 8157:YOUR_VPC_ENDPOINT_ID
-vpce.us-east-1
.airflow.amazonaws.com:443 ubuntu@YOUR_PUBLIC_IPV4_DNS
.us-east-1
.compute.amazonaws.com-L
表示使用本機連接埠轉送,可讓您指定用於將資料轉送至節點本機 Web 伺服器上已識別遠端連接埠的本機連接埠。 -
在瀏覽器
http://localhost:8157/
中輸入 。注意
您可能需要使用
https://localhost:8157/
。
選項二:透過命令列代理
大多數 Web 瀏覽器可讓您透過命令列或組態參數來設定代理。例如,使用 Chromium,您可以使用下列命令啟動瀏覽器:
chromium --proxy-server="socks5://localhost:8157"
這會啟動瀏覽器工作階段,使用您在先前步驟中建立的 ssh 通道來代理其請求。您可以開啟私有 Amazon MWAA 環境 URL (使用 https://),如下所示:
https://
YOUR_VPC_ENDPOINT_ID
-vpce.us-east-1
.airflow.amazonaws.com/home.
選項三:使用 FoxyProxy for Mozilla Firefox 的代理
下面的範例演示了 Mozilla Firefox 的 FoxyProxy Standard (7.5.1 版) 組態。FoxyProxy 提供一組代理管理工具。它可讓您將代理伺服器用於符合對應於 Apache Airflow UI 所用網域之模式的 URLs。
-
在 Firefox 中,開啟 FoxyProxy 標準
擴充功能頁面。 -
選擇新增至 Firefox。
-
選擇新增。
-
選擇瀏覽器工具列中的 FoxyProxy 圖示,然後選擇選項。
-
複製下列程式碼,並在本機儲存為
mwaa-proxy.json
。使用 Apache Airflow URL 取代YOUR_HOST_NAME
中的範例值。{ "e0b7kh1606694837384": { "type": 3, "color": "#66cc66", "title": "airflow", "active": true, "address": "localhost", "port": 8157, "proxyDNS": false, "username": "", "password": "", "whitePatterns": [ { "title": "airflow-ui", "pattern": "
YOUR_HOST_NAME
", "type": 1, "protocols": 1, "active": true } ], "blackPatterns": [], "pacURL": "", "index": -1 }, "k20d21508277536715": { "active": true, "title": "Default", "notes": "These are the settings that are used when no patterns match a URL.", "color": "#0055E5", "type": 5, "whitePatterns": [ { "title": "all URLs", "active": true, "pattern": "*", "type": 1, "protocols": 1 } ], "blackPatterns": [], "index": 9007199254740991 }, "logging": { "active": true, "maxSize": 500 }, "mode": "patterns", "browserVersion": "82.0.3", "foxyProxyVersion": "7.5.1", "foxyProxyEdition": "standard" } -
在從 FoxyProxy 6.0+ 匯入設定窗格中,選擇匯入設定並選取
mwaa-proxy.json
檔案。 -
選擇確定。
步驟六:開啟 Apache Airflow UI
下列步驟說明如何開啟 Apache Airflow UI。
-
在 Amazon MWAA 主控台上開啟環境頁面
。 -
選擇開啟氣流使用者介面。
後續步驟?
-
了解如何在 中對堡壘主機的 SSH 通道上執行 Airflow CLI 命令Apache Airflow CLI 命令參考。
-
了解如何將 DAG 程式碼上傳至 中的 Amazon S3 儲存貯體新增或更新 DAGs。