我透過傳輸閘道連接時發生跨帳戶連線問題,要怎麼進行疑難排解並解決問題?
我的資源無法透過傳輸閘道,在不同 AWS 帳戶的虛擬私有雲端 (VPC) 之間連線。
解決方法
**注意:**擁有傳輸閘道的帳戶是擁有者帳戶。獲得傳輸閘道存取權的帳戶是共用帳戶。
檢查您的傳輸閘道資源共用設定
**注意:**如果您在 AWS Organizations 中擁有組織,請開啟資源共用設定。開啟資源共用設定後,AWS 會自動在會員帳戶之間共用並接受傳輸閘道。
請完成下列步驟:
- 使用擁有者帳戶登入 AWS Resource Access Manager (AWS RAM) 主控台。
- 在導覽窗格中,選擇 Shared resources (共用資源)。
- 選取您的傳輸閘道。
- 檢查您是否與正確的帳戶或組織共用傳輸閘道。
- 確認 Share status (共用狀態) 顯示的是 Associated (已建立關聯),而非 Pending acceptance (等待接受)。
檢查擁有者和共用帳戶中的傳輸閘道連接狀態
請完成下列步驟:
- 開啟 Amazon Virtual Private Cloud (Amazon VPC) 主控台。
- 前往擁有者帳戶和共用帳戶,在導覽窗格中選擇 Transit Gateway Attachments (傳輸閘道連接)。
- 確認 Attachment state (連接狀態) 是否為 Available (可用)。
**注意:**每個連接至傳輸閘道的帳戶都必須具備一個處於 Available (可用) 狀態的連接。 - 確認連接在每個可用區域各使用一個子網路進行流量路由。
如果共用帳戶中的連接顯示 Pending acceptance (等待接受),請完成以下步驟:
- 從共用帳戶中選擇 Transit gateway attachments (傳輸閘道連接)。
- 選取待處理的連接。
- 選擇 Actions (動作),然後選擇 Accept (接受)。
檢查路由表設定和路由傳播
請完成下列步驟:
- 使用擁有者帳戶登入 AWS Transit Gateway 主控台。
- 在導覽窗格中,選擇 Transit gateway route tables (傳輸閘道路由表)。
- 檢查每個連接是否與正確的路由表建立關聯。
- 確認路由表中是否包含路由,可導向其他 VPC 的 CIDR 區塊。路由可以設成靜態或傳播,且都必須導向每個 VPC 對應的正確傳輸閘道連接。
- (選擇性) 如果使用安全 VPC 檢查流量,請確認防火牆和安全設備是否允許流量通過。
- 確認來源和目的地範圍沒有重疊。
**注意:**傳輸閘道無法路由重疊的 IP 位址範圍。
最佳做法是為不同環境建立分段式路由表。例如,如果您擁有開發和正式環境,使用分段式路由表可隔離兩者間的流量,因為每個環境都擁有各自獨立的路由表。
確認 VPC 路由表是否導向傳輸閘道
請完成下列步驟:
- 開啟 Amazon VPC 主控台。
- 在導覽窗格中,選擇 Route Tables (路由表)。
- 選擇與資源子網路相關聯的路由表。
- 在 Routes (路由) 索引標籤下方,確認導向其他 VPC 的 CIDR 區塊的路由,皆指向正確的傳輸閘道 ID。
**注意:**確認安全群組和網路存取控制清單 (網路 ACL) 是否允許 VPC 之間的流量通過。
確認安全群組和網路 ACL 組態
請執行下列動作:
- 檢查 Amazon Elastic Compute Cloud (Amazon EC2) 安全群組,確認已針對正確的 CIDR 區塊與連接埠允許傳入及傳出流量。
- 設定安全群組,允許工作負載之間使用所需的通訊協定。例如,檢查 TCP 連接埠 443 與 TCP 連接埠 22。
- 檢查網路 ACL 是否允許 VPC 之間的流量通過。
- 檢查網路 ACL 規則,確認不會阻擋通往傳輸閘道的流量。
**注意:**網路 ACL 為無狀態。您必須在網路 ACL 規則中同時允許傳入和傳出流量。
使用 Reachability Analyzer 分析路徑
**注意:**若要使用 VPC Reachability Analyzer 並分析跨帳戶路徑,請在 AWS Organizations 中開啟受信任存取設定。
請完成下列步驟:
- 開啟 AWS Network Manager 主控台。
- 在導覽窗格中,選擇 Network Manager。
- 選擇 Reachability Analyzer。
- 選擇 Create and analyze path (建立和分析路徑)。
- 輸入下列資訊,選擇路徑的來源和目的地:
針對 Source account (來源帳戶),請選取來源帳戶的帳戶 ID。
針對 Source type (來源類型),請選取資源類型。
針對 Source (來源),請選取特定資源。
針對 Destination account (目的地帳戶),請選取目的地帳戶的帳戶 ID。
針對 Destination type (目的地類型),請選取資源類型。
針對 Source (來源),請選擇特定資源。 - 選擇 Analyze path (分析路徑)。
- 查看結果。
若路徑顯示為 Reachable (可達),代表您的網路組態設定正確。若路徑顯示為 Not reachable (不可達),請修改路由與安全規則以允許流量通過。
使用 VPC 流量日誌檢查流量傳輸情形
在開始之前,請先建立 VPC 流量日誌。最佳做法是使用包含 pkt-srcaddr 和 pkt-dstaddr 欄位的自訂格式。VPC 流量日誌中的 pkt-srcaddr 和 pkt-dstaddr 欄位會顯示流量原始來源與目的地主機的 IP 位址。預設的 srcaddr 與 dstaddr 會顯示中間網路介面的 IP 位址。
使用 VPC 流量日誌,找出透過傳輸閘道連接的 VPC 之間,哪些流量允許通過,哪些遭到阻斷。
若要分析流量日誌,請完成以下步驟:
-
在導覽窗格中,選擇 Logs (日誌),然後選擇 Log Insights。
-
從 Query Scope (查詢範圍) 下拉式清單中,選取 VPC 流量日誌的日誌群組。然後,搜尋來源和目的地資源對應的彈性網路介面 ID。
-
執行下列範例查詢,按來源和目的地 IP 位址篩選日誌,找出 VPC 之間允許通過和遭到阻斷的流量:
parse @message " *************************" as version, accountid, interfaceid, srcaddr, dstaddr, srcport, dstport, protocol, packets, bytes, start, end, action, logstatus, vpcid, subnetid, instanceid, tcpflags, type, pktsrcaddr, pktdstaddr, pktsrcawsservice, pktdstawsservice, flowdirection, trafficpath|filter (pktsrcaddr='SOURCE-IP-ADDRESS’ and pktdstaddr=‘DESTINATION-IP-ADDRESS’)|limit 100**注意:**請替換 ************************ 和欄位名稱,以對應您建立 VPC 流量日誌時選取的格式。星號與欄位的數量會因選擇的日誌格式而異。請將 SOURCE-IP-ADDRESS 替換成您的來源 IP 位址,並將 DESTINATION-IP-ADDRESS 替換成您的目的地 IP 位址。
測試 Amazon EC2 執行個體之間的連線
執行下列命令,測試透過傳輸閘道連接的 EC2 執行個體之間的連線能力。
**注意:**在下列命令中,請將 DESTINATION-PRIVATE-IP 替換成目的地的私有 IP 位址,並將 PORT 替換成您要測試的連接埠號碼。
執行下列 ICMP ping 命令:
ping DESTINATION-PRIVATE-IP
執行下列 telnet 命令來測試 TCP 連接埠:
telnet DESTINATION-PRIVATE-IP PORT
執行下列 curl 命令以進行 HTTP 測試:
curl -v http://DESTINATION_PRIVATE_IP:PORT
如果測試失敗,請執行以下動作:
- 確認兩個 VPC 中的路由表是否都有路由項目,將目的地 CIDR 區塊範圍的流量導向傳輸閘道。
- 確認傳輸閘道路由表是否包含這兩個 VPC 的路由項目,並與正確的傳輸閘道連接建立關聯。
- 確認安全群組是否允許執行個體之間的傳入和傳出流量。
- 確認子網路中的網路 ACL 是否允許所需的流量通過。
- 如果擁有共用的傳輸閘道,請確認您是否妥善地與目標帳戶共用。
相關資訊
Transit gateway route tables in AWS Transit Gateway (AWS Transit Gateway 中的傳輸閘道路由表)
- 語言
- 中文 (繁體)

相關內容
- 已提問 10 個月前
- 已提問 3 年前
AWS 官方已更新 1 年前