在 Amazon MWAA 上管理服務特定 Amazon VPC 端點的存取 - Amazon Managed Workflows for Apache Airflow

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

在 Amazon MWAA 上管理服務特定 Amazon VPC 端點的存取

VPC 端點 (AWS PrivateLink) 可讓您將 VPC 以私密方式連線至託管於其上的服務, AWS 而不需要網際網路閘道、NAT 裝置、VPN 或防火牆代理伺服器。這些端點可水平擴充且具有高可用性的虛擬裝置,可讓您在 VPC 和 AWS 服務中的執行個體之間進行通訊。本頁說明 Amazon MWAA 建立的 VPC 私人雲端節點,以及如果您在 Apache 氣流的 Amazon 受管工作流程上選擇私有網路存取模式,如何存取 Apache 氣流網頁伺服器的 VPC 擬私人雲端端點。

定價

VPC 端點概觀

當您建立 Amazon MWAA 環境時,Amazon MWAA 會為您的環境建立一到兩個 VPC 端點之間。這些端點在您的 Amazon VPC 中顯示為具有私有 IP 的彈性網路界面 (ENI)。建立這些端點之後,傳往這些 IP 的任何流量都會以私密方式或公開路由到您的環境所使用的對應 AWS 服務。

公共網路存取模式

如果您為 Apache Airflow 頁伺服器選擇公用網路存取模式,網路流量會透過網際網路公開路由。

  • Amazon MWAA 為您的 Amazon Aurora PostgreSQL 中繼資料資料庫建立 VPC 界面端點。端點是在對應至私人子網路的可用區域中建立,且獨立於其他 AWS 帳戶。

  • 然後,Amazon MWAA 會將 IP 位址從您的私有子網路繫結到介面端點。這是為了支援從 Amazon VPC 的每個可用區域繫結單一 IP 的最佳實務而設計。

私人網路存取模式

如果您為 Apache Airflow 頁伺服器選擇私人網路存取模式,網路流量會在您的 Amazon VPC 中以私密方式路由。

  • Amazon MWAA 為您的 Apache 氣流網頁伺服器建立 VPC 界面端點,並為您的 Amazon Aurora PostgreSQL 中繼資料資料庫建立一個介面端點。端點是在對應至私人子網路的可用區域中建立,且獨立於其他 AWS 帳戶。

  • 然後,Amazon MWAA 會將 IP 位址從您的私有子網路繫結到介面端點。這是為了支援從 Amazon VPC 的每個可用區域繫結單一 IP 的最佳實務而設計。

使用其他 AWS 服務的許可

介面端點會使用 AWS Identity and Access Management (IAM) 中環境的執行角色來管理環境所使用 AWS 資源的權限。隨著為環境啟用更多 AWS 服務,每個服務都會要求您使用環境的執行角色來設定權限。若要新增權限,請參閱Amazon MWAA 執行角色

如果您已為 Apache Airflow Web 伺服器選擇私人網路存取模式,您也必須在每個端點的 VPC 端點原則中允許權限。如需進一步了解,請參閱VPC 端點原則 (僅限私人路由)

檢視 VPC 端點

本節說明如何檢視 Amazon MWAA 建立的虛擬私人雲端端點,以及如何識別 Apache 氣流 VPC 端點的私有 IP 地址。

在 Amazon VPC 主控台上檢視 VPC 端點

以下部分顯示了檢視 Amazon MWAA 建立的 VPC 端點的步驟,以及如果您在 Amazon VPC 使用私有路由,則可能已建立的任何 VPC 端點。

若要檢視 VPC 端點
  1. 在 Amazon VPC 主控台上開啟「端點」頁面

  2. 使用「 AWS 地區」選取器選取您的地區。

  3. 您應該會看到 Amazon MWAA 建立的 VPC 界面端點,以及如果您在 Amazon VPC 中使用私有路由,可能已建立的任何 VPC 端點。

若要進一步了解具有私有路由的 Amazon VPC 所需的 VPC 服務端點,請參閱。VPC使用私有路由在 Amazon 中創建所需的VPC服務端點

識別您的 Apache 氣流網頁伺服器及其虛擬私人雲端端點的私有 IP 位址

下列步驟說明如何擷取 Apache Airflow 網頁伺服器及其虛擬私人雲端介面端點的主機名稱,以及其私人 IP 位址。

  1. 使用下列 AWS Command Line Interface (AWS CLI) 命令擷取 Apache 氣流網頁伺服器的主機名稱。

    aws mwaa get-environment --name YOUR_ENVIRONMENT_NAME --query 'Environment.WebserverUrl'

    您應該會看到類似下列回應的內容:

    "99aa99aa-55aa-44a1-a91f-f4552cf4e2f5-vpce.c10.us-west-2.airflow.amazonaws.com"
  2. 對上一個命令回應中傳回的主機名稱執行 dig 命令。例如:

    dig CNAME +short 99aa99aa-55aa-44a1-a91f-f4552cf4e2f5-vpce.c10.us-west-2.airflow.amazonaws.com

    您應該會看到類似下列回應的內容:

    vpce-0699aa333a0a0a0-bf90xjtr.vpce-svc-00bb7c2ca2213bc37.us-west-2.vpce.amazonaws.com.
  3. 使用下列 AWS Command Line Interface (AWS CLI) 命令擷取上一個命令回應中傳回的 VPC 端點 DNS 名稱。例如:

    aws ec2 describe-vpc-endpoints | grep vpce-0699aa333a0a0a0-bf90xjtr.vpce-svc-00bb7c2ca2213bc37.us-west-2.vpce.amazonaws.com.

    您應該會看到類似下列回應的內容:

    "DnsName": "vpce-066777a0a0a0-bf90xjtr.vpce-svc-00bb7c2ca2213bc37.us-west-2.vpce.amazonaws.com",
  4. 在您的 Apache 氣流主機名稱及其虛擬私人雲端端點 DNS 名稱上執行 nslookup挖掘命令,以擷取 IP 位址。例如:

    dig +short YOUR_AIRFLOW_HOST_NAME YOUR_AIRFLOW_VPC_ENDPOINT_DNS

    您應該會看到類似下列回應的內容:

    192.0.5.1 192.0.6.1

存取 Apache 氣流網頁伺服器的 VPC 私人雲端端點 (私人網路存取)

如果您為 Apache 氣流頁伺服器選擇了私人網路存取模式,則需要建立一個機制來存取 Apache 氣流網頁伺服器的 VPC 私人雲端介面端點。對於這些資源,您必須使用與 Amazon MWAA 環境相同的 Amazon VPC、VPC 安全群組和私有子網路。

使用 AWS Client VPN

AWS Client VPN 是受管理的用戶端型 VPN 服務,可讓您安全地存取內部部署網路中的資 AWS 源和資源。它提供了一個安全的 TLS 連接從任何位置使用 OpenVPN 客戶端。

我們建議您遵循 Amazon MWAA 教學課程來設定 Client VPN:。教學課程:使用AWS Client VPN

使用 Linux 防禦主機

防禦主機是一種伺服器,其目的是提供從外部網路 (例如透過電腦透過網際網路) 存取私人網路的伺服器。Linux 執行個體位於公有子網路中,並使用安全群組進行設定,該群組允許從連接至執行防禦主機的基礎 Amazon EC2 執行個體的安全群組進行 SSH 存取。

我們建議您按照 Amazon MWAA 教學課程來設定 Linux 防禦主機:教學課程:使用 Linux 防禦主機設定私人網路存取

使用 Load Balancer (進階)

以下部分顯示套用至應用 Ap plication Load Balancer 所需的組態。

  1. 目標群組。您必須使用指向 Apache Airflow 網頁伺服器及其虛擬私人雲端介面端點之私有 IP 位址的目標群組。我們建議將兩個私有 IP 位址指定為註冊目標,因為只使用一個會降低可用性。如需如何識別私人 IP 位址的詳細資訊,請參閱識別您的 Apache 氣流網頁伺服器及其虛擬私人雲端端點的私有 IP 位址

  2. 狀態碼。建議您在目標群組設定中使用200302狀態碼。否則,如果 Apache Airflow Web 伺服器的虛擬私人雲端端點回應錯誤,則目標可能會被標記為狀況不良。302 Redirect

  3. 監聽程式。您需要指定 Apache 氣流網頁伺服器的目標連接埠。例如:

    通訊協定 連線埠

    HTTPS

    443

  4. ACM 新網域。如果您想要在中建立 SSL/TLS 憑證的關聯 AWS Certificate Manager,則必須為負載平衡器的 HTTPS 接聽程式建立新網域。

  5. ACM 憑證區域。如果您想要在中建立 SSL/TLS 憑證的關聯 AWS Certificate Manager,則需要上傳到與環境相同的 AWS 區域。例如:

    1. 範例 上傳憑證的區域
      aws acm import-certificate --certificate fileb://Certificate.pem --certificate-chain fileb://CertificateChain.pem --private-key fileb://PrivateKey.pem --region us-west-2