

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

# 在 Amazon MWAA 上管理對服務特定 Amazon VPC 端點的存取
<a name="vpc-vpe-access"></a>

您可以使用 VPC 端點 (AWS PrivateLink) 將 VPC 私下連線至 上託管的服務， AWS 而不需要網際網路閘道、NAT 裝置、VPN 或防火牆代理。這些端點是水平可擴展且高度可用的虛擬裝置，允許 VPC 和 AWS 服務中的執行個體之間進行通訊。此頁面說明 Amazon MWAA 建立的 VPC 端點，以及如果您已在 Amazon Managed Workflows for Apache Airflow 上選擇**私有網路**存取模式，如何存取 Apache Airflow Webserver 的 VPC 端點。

**Contents**
+ [定價](#vpc-vpe-pricing)
+ [VPC 端點概觀](#vpc-vpe-about)
  + [公有網路存取模式](#vpc-vpe-about-public)
  + [私有網路存取模式](#vpc-vpe-about-private)
+ [使用其他服務的許可 AWS](#vpc-vpe-permission)
+ [存取 VPC 端點](#vpc-vpe-view-all)
  + [在 Amazon VPC 主控台上存取 VPC 端點](#vpc-vpe-view-endpoints)
  + [識別 Apache Airflow Web 伺服器及其 VPC 端點的私有 IP 地址](#vpc-vpe-hosts)
+ [存取 Apache Airflow Webserver 的 VPC 端點 （私有網路存取）](#vpc-vpe-access-endpoints)
  + [使用 AWS Client VPN](#vpc-vpe-access-vpn)
  + [使用 Linux 堡壘主機](#vpc-vpe-access-bastion)
  + [使用Load Balancer （進階）](#vpc-vpe-access-load-balancer)

## 定價
<a name="vpc-vpe-pricing"></a>
+ [AWS PrivateLink 定價](https://aws.amazon.com/privatelink/pricing/)

## VPC 端點概觀
<a name="vpc-vpe-about"></a>

當您建立 Amazon MWAA 環境時，Amazon MWAA 會為您的環境建立一到兩個 VPC 端點。這些端點會在您的 Amazon VPC 中顯示為具有私有 IPs彈性網路界面 (ENIs)。建立這些端點之後，任何目的地為這些 IPs流量都會私下或公開路由至您環境所使用的對應 AWS 服務。

### 公有網路存取模式
<a name="vpc-vpe-about-public"></a>

如果您為 Apache Airflow Web 伺服器選擇**公有網路**存取模式，網路流量會透過網際網路公開路由。
+ Amazon MWAA 會為您的 Amazon Aurora PostgreSQL 中繼資料資料庫建立 VPC 介面端點。端點是在映射到您的私有子網路的可用區域中建立的，並且獨立於其他子網路 AWS 帳戶。
+ 然後，Amazon MWAA 會將私有子網路的 IP 地址繫結至介面端點。這旨在支援從 Amazon VPC 的每個可用區域繫結單一 IP 的最佳實務。

### 私有網路存取模式
<a name="vpc-vpe-about-private"></a>

如果您為 Apache Airflow Web 伺服器選擇**私有網路**存取模式，網路流量會在 *Amazon VPC 內*私下路由。
+ Amazon MWAA 會為您的 Apache Airflow Web 伺服器建立 VPC 介面端點，並為 Amazon Aurora PostgreSQL 中繼資料資料庫建立介面端點。端點會在映射到您的私有子網路的可用區域中建立，並獨立於其他子網路 AWS 帳戶。
+ 然後，Amazon MWAA 會將私有子網路的 IP 地址繫結至介面端點。這旨在支援從 Amazon VPC 的每個可用區域繫結單一 IP 的最佳實務。

## 使用其他服務的許可 AWS
<a name="vpc-vpe-permission"></a>

介面端點使用 AWS Identity and Access Management (IAM) 中您環境的執行角色來管理您環境所用 AWS 資源的許可。隨著環境開啟更多 AWS 服務，每個服務都需要您使用環境的執行角色來設定許可。若要新增許可，請參閱 [Amazon MWAA 執行角色](mwaa-create-role.md)。

如果您已為 Apache Airflow Web 伺服器選擇**私有網路**存取模式，您還必須在每個端點的 VPC 端點政策中允許許可。若要進一步了解，請參閱 [VPC 端點政策 （僅限私有路由）](vpc-security.md#vpc-external-vpce-policies)。

## 存取 VPC 端點
<a name="vpc-vpe-view-all"></a>

本節說明如何存取 Amazon MWAA 建立的 VPC 端點，以及如何識別 Apache Airflow VPC 端點的私有 IP 地址。

### 在 Amazon VPC 主控台上存取 VPC 端點
<a name="vpc-vpe-view-endpoints"></a>

下一節顯示存取 Amazon MWAA 所建立 VPC 端點的步驟，以及如果您使用 Amazon VPC 的*私有路由*，您可能已建立的任何 VPC 端點。

**存取 VPC 端點**

1. 在 Amazon VPC 主控台上開啟[端點頁面](https://console.aws.amazon.com/vpc/home#Endpoints:)。

1. 選取您的 AWS 區域。

1. 請參閱 Amazon MWAA 建立的 VPC 介面端點，以及您在 Amazon VPC 中使用*私有路由*時可能已建立的任何 VPC 端點。

若要進一步了解具有*私有路由*的 Amazon VPC 所需的 VPC 服務端點，請參閱 [在具有私有路由的 Amazon VPC 中建立所需的 VPC 服務端點](vpc-vpe-create-access.md)。

### 識別 Apache Airflow Web 伺服器及其 VPC 端點的私有 IP 地址
<a name="vpc-vpe-hosts"></a>

下列步驟說明如何擷取 Apache Airflow Web 伺服器及其 VPC 介面端點的主機名稱，以及其私有 IP 地址。

1. 使用 following AWS Command Line Interface (AWS CLI) 命令來擷取 Apache Airflow Webserver 的主機名稱。

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

   您得到類似下列回應的內容：

   ```
   "99aa99aa-55aa-44a1-a91f-f4552cf4e2f5-vpce.c10.us-west-2.airflow.amazonaws.com"
   ```

1. 在上一個命令的回應中傳回的主機名稱上執行 *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.
   ```

1. 使用 following 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",
   ```

1. 在 Apache Airflow 主機名稱及其 VPC 端點 DNS 名稱上執行 *nslookup* 或 *dig* 命令，以擷取 IP 地址。例如：

   ```
   dig +short YOUR_AIRFLOW_HOST_NAME YOUR_AIRFLOW_VPC_ENDPOINT_DNS
   ```

   您得到類似下列回應的內容：

   ```
   192.0.5.1
   192.0.6.1
   ```

## 存取 Apache Airflow Webserver 的 VPC 端點 （私有網路存取）
<a name="vpc-vpe-access-endpoints"></a>

如果您已為 Apache Airflow Web 伺服器選擇**私有網路**存取模式，則需要建立機制來存取 Apache Airflow Web 伺服器的 VPC 介面端點。您必須針對這些資源使用與 Amazon MWAA 環境相同的 Amazon VPC、VPC 安全群組和私有子網路。

### 使用 AWS Client VPN
<a name="vpc-vpe-access-vpn"></a>

AWS Client VPN 是一種受管的用戶端型 VPN 服務，可用來安全地存取內部部署網路中的 AWS 資源和資源。它使用 OpenVPN 用戶端從任何位置提供安全的 TLS 連線。

建議您遵循 Amazon MWAA 教學課程來設定 Client VPN：[教學課程：使用 設定私有網路存取 AWS Client VPN](tutorials-private-network-vpn-client.md)。

### 使用 Linux 堡壘主機
<a name="vpc-vpe-access-bastion"></a>

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

我們建議您遵循 Amazon MWAA 教學課程來設定 Linux 堡壘主機：[教學課程：使用 Linux 堡壘主機設定私有網路存取](tutorials-private-network-bastion.md)。

### 使用Load Balancer （進階）
<a name="vpc-vpe-access-load-balancer"></a>

下一節顯示您需要套用至 [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/tutorial-application-load-balancer-cli.html) 的組態。

1. **目標群組**。您需要使用指向 Apache Airflow Web 伺服器及其 VPC 介面端點之私有 IP 地址的目標群組。我們建議您指定兩個私有 IP 地址做為已註冊的目標，因為只有使用一個地址可以降低可用性。如需如何識別私有 IP 地址的詳細資訊，請參閱 [識別 Apache Airflow Web 伺服器及其 VPC 端點的私有 IP 地址](#vpc-vpe-hosts)。

1. **狀態碼**。建議您在目標群組設定中使用 `200`和 `302` 狀態碼。否則，如果 Apache Airflow Webserver 的 VPC 端點回應`302 Redirect`錯誤，目標可能會標記為運作狀態不良。

1. **HTTPS 接聽程式**。您需要指定 Apache Airflow Web 伺服器的目標連接埠。例如：    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/mwaa/latest/userguide/vpc-vpe-access.html)

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

1. **ACM 憑證區域**。如果您想要在 中關聯 SSL/TLS 憑證 AWS Certificate Manager，則需要上傳到與環境 AWS 區域 相同的 。例如：

   1.   
**Example 要上傳憑證的區域**  

     ```
     aws acm import-certificate --certificate fileb://Certificate.pem --certificate-chain fileb://CertificateChain.pem --private-key fileb://PrivateKey.pem --region us-west-2
     ```