如何針對閘道和界面 VPC 端點的連線能力問題進行疑難排解?

上次更新日期:2022 年 4 月 5 日

如何針對閘道和界面 Amazon Virtual Private Cloud (Amazon VPC) 端點的連線能力問題進行疑難排解?

解決方案

下列解決方案涵蓋各種參數,這些參數對於透過 VPC 端點建立端對端連線非常重要。此外,還包括針對連線能力進行疑難排解的步驟。

閘道 VPC 端點

閘道 VPC 端點可讓您從 VPC 私自連線到 Amazon Simple Storage Service (Amazon S3) 和 Amazon DynamoDB。

使用閘道端點時,有四個因素會影響各自服務的連線能力:

  • 端點政策、
  • VPC 子網路的網路存取控制清單 (ACL)、
  • 來源子網路路由表、
  • 來源 Amazon Elastic Compute Cloud (Amazon EC2) 或 AWS Lambda 安全群組、

端點政策

使用自訂端點政策時,請確保與端點相關聯的策略允許必要的存取,以針對服務執行動作。預設端點政策允許對服務進行完全存取。

如需詳細資訊,請參閲閘道端點的端點政策

VPC 子網路的網路存取控制清單

子網路的網絡 ACL 必須允許 AWS 區域內 S3 和 DynamoDB CIDR 的入站和出站 TCP 連線。藉由從 AWS Command Line Interface (AWS CLI) 執行下列命令,您可以在給定 AWS 區域中檢視 S3 和 DynamoDB 的 IP CIDR。

注意:如果您在執行 AWS CLI 命令時收到錯誤,請確認您使用的是最新版 AWS CLI

aws ec2 describe-prefix-lists --region <AWS Region>

注意:AWS 服務的公有 IP 地址 CIDR 可能會變更。若要確保您具有網路存取控制清單規則上允許的所有 CIDR,請間歇性地重新執行上述命令,以檢查新的 CIDR 範圍。

來源 EC2 或 Lambda 安全群組

與啟動 S3 和 DynamoDB 端點連線之來源相關聯的安全群組必須允許以下項目:

  • 公有 IP CIDR 的輸出 (出站) 連線。
    -或-
  • 各自相關 AWS 區域中 S3 和 DynamoDB 的前綴清單 ID

注意:設定安全群組和網路 ACL 規則時,請參閲 Amazon S3 端點DynamoDB 端點文件,以檢查支援的通訊協定。使用此資訊作為流量限制的基礎。

子網路路由表

建立閘道端點時,選取服務的路由將在其上安裝的路由表。確保來源路由表具有的路由含有指向閘道 VPC 端點之所需服務的前綴清單 ID

確認流量透過閘道端點流動

使用閘道 VPC 端點時,您可以對連接埠 80 或 443 執行 tcptrace-route,以確認流量透過端點流動:

sudo tcptraceroute s3.us-east-1.amazonaws.com 80

traceroute to s3.us-east-1.amazonaws.com (52.217.85.238), 30 hops max, 60 byte packets
 1  * * *
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  s3-1.amazonaws.com (52.217.85.238) <syn,ack>  0.797 ms  1.298 ms  0.821 ms

在上述輸出中,除 S3 端點目的地之外,沒有任何躍點。這表明流量正在透過 VPC 閘道端點移動。如果您在 TCP 追蹤路由上看到多個公有躍點,則流量正在透過網際網路移動。

如需詳細資訊,請參閱為什麼我無法使用閘道 VPC 端點連線到 S3 儲存貯體?

界面 VPC 端點 (AWS PrivateLink)

使用界面 VPC 端點時,請檢查以下項目:

DNS 名稱解析

若為 AWS 服務:

開啟私有 DNS 名稱後,您可以針對服務端點 (例如,ec2.us-east-1.amazonaws.com) 執行 AWS API 呼叫。這些會解析為端點界面的私有 IP。

如果您沒有開啟私有 DNS 名稱,則可以明確地指定區域 VPC 端點 DNS 名稱來執行 API 呼叫。

如需詳細資訊,請參閲為什麼我無法解析界面 VPC 端點的服務網域名稱?

使用 dignslookup 命令,驗證您嘗試連線至其中之界面VPC 端點名稱的 DNS 解析。

端點服務 (合作夥伴或客户管理的服務)

確保在提供者端為 Network Load Balancer 啟用的所有可用區域中,有目標位於後端。如需詳細資訊,請參閲為什麼我無法從 Amazon VPC 中的界面端點連線到端點服務?

例如,假設 Network Load Balancer 佈建為在兩個可用區域 (us-east-1a 和 us-east-1b) 中提供服務。在兩個可用區域上佈建目標。如果可用區域中沒有目標,則開啟跨區域負載平衡,為所有請求提供服務。

端點政策

預設政策允許對服務進行完全存取。使用自訂政策時,請確保該政策允許存取,以針對服務執行必要的動作。

VPC 端點安全群組

使用界面 VPC 端點,您可與安全群組建立關聯以控制存取。確保安全群組的入站規則允許端點網路界面與存取服務的資源 (VPC 或內部部署) 之間的通訊。

根據服務接受連線所在的連接埠,允許該連接埠的連線和通訊協定。

範例:

端點 Network Load Balancer 正在接聽 TCP 連接埠 6169 和 8443。在此情況下,允許 TCP 流量從 VPC 端點安全群組入站規則上的適當來源位址流至連接埠 6169 和 8443。

系統不會針對界面端點評估安全群組的出站規則。因此,您可以將這些留白或加以限制。

子網路的網路 ACL

從 VPC 外部連線時,子網路的網路 ACL 需要允許從來源網路到界面端點彈性網路界面的入站和出站連線。

如需詳細資訊,請參閱如何在針對端點服務建立 VPC 界面端點時設定安全群組和網路 ACL?

建立路徑

界面 VPC 端點可以用來從 AWS 內或從內部部署網路中私自存取服務。

從與界面端點相同的 VPC 內連線時,子網路路由表中的本機路由會處理路由。因此,不需要額外的路由組態。

如果是從 VPC 外部 (跨區域 VPC 或內部部署網路) 連線到端點,請確保可以建立從一個或多個來源網路到界面 VPC 端點彈性網路界面子網路的連線。

測試 VPC 端點界面的連線

若要測試您是否可以使用界面端點聯繫服務,您可以針對適當的連接埠使用網路連線工具。

以下是測試 AWS 服務之界面端點連線的範例:

telnet ec2.us-east-1.amazonaws.com 443
telnet PrivateIPofInterfaceEndpointENI 443

以下是測試界面端點連線的範例,假設要連線的提供者正在接聽連接埠 6169:

telnet vpce-aaaabbbbcccc-dddd.vpce-svc-12345678.us-east-1.vpce.amazonaws.com 6169
telnet PrivateIPofInterfaceEndpointENI 6169

如果您使用的是網域名稱,請確保正在對正確的 IP 進行連線,以及連線是否成功。對於 SSL 驗證,您可以使用 curl 或 OpenSSL 工具進行測試。

對於端點服務,您可以聯絡提供商,針對 Network Load Balancer 進行疑難排解


此文章是否有幫助?


您是否需要帳單或技術支援?