View a markdown version of this page

傳輸閘道與 Client VPN 整合 - AWS Client VPN

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

傳輸閘道與 Client VPN 整合

您可以將 Client VPN 端點原生連接至 Transit Gateway,以安全地遠端存取多個 VPCs、內部部署網路,以及連接到 Transit Gateway 的其他資源。這不需要為每個 VPC 建立單獨的 VPN 端點,或管理透過中繼 VPCs複雜路由。

概觀

當您將 Transit Gateway 與 Client VPN 端點建立關聯時,如果 Client VPN 端點中設定了適當的路由和授權規則,連線的 VPN 用戶端可以存取連線至 Transit Gateway 的所有資源。

Transit Gateway 相關端點會保留用戶端來源 IP 地址。來源網路地址轉譯 (SNAT) 不會套用,這可增強用戶端流量的可見性。

重要

您無法在單一 Client VPN 端點中混合 VPC 子網路關聯和傳輸閘道關聯。當您建立端點時,請選擇一種關聯類型。

優勢

與 Client VPN 整合的 Transit Gateway 提供下列優點:

  • 簡化管理 — 消除每個 VPC 個別 VPN 端點的需求。不需要僅為 VPN 終止建立中繼 VPCs。

  • 集中式路由 — 利用 Transit Gateway 作為中央路由中樞。簡化整個網路的路由管理。

  • 增強可見性 — 保留用戶端來源 IP 地址 (無 SNAT)。提供 Client VPN 的流程日誌支援。

  • 可擴展性 — 輕鬆將新的 VPCs 新增至您的 Transit Gateway,您可以透過 Client VPN 存取。擴展以支援大型遠端人力資源和業務單位。

  • 集中式安全 — 在所有連線網路中實作一致的安全政策。維護完整的稽核線索。

Transit Gateway 整合的運作方式

以下說明 Client VPN 如何與 Transit Gateway 搭配使用:

  1. 建立端點 — 您可以建立 Client VPN 端點並指定 Transit Gateway ID。

  2. 附件建立 — AWS client-vpn 自動為端點建立 類型的 Transit Gateway 附件。

  3. 可用區域選擇 — 您可以指定要使用的可用區域,或自動 AWS 選取 2 個可用區域。

  4. 路由組態 — 您可以將路由新增至 Client VPN 端點路由表,以透過 Transit Gateway 將用戶端流量導向目的地網路。

  5. 用戶端連線流程 — 當用戶端連線時,流量會透過 Client VPN 端點從用戶端流向 Transit Gateway,然後根據 Transit Gateway 路由表流向目的地網路。

使用 Client VPN 的傳輸閘道流量流程

先決條件

建立 Transit Gateway 關聯的 Client VPN 端點之前,請確認下列需求。

傳輸閘道需求
  • 與 Client VPN 端點位於相同區域中的現有 Transit Gateway。

  • 對於跨帳戶存取,傳輸閘道必須透過 與您的帳戶共用 AWS Resource Access Manager。

  • Transit Gateway 必須指派 IPv4 CIDR 區塊。如果您計劃使用 IPv6 或雙堆疊組態,請同時指派 IPv6 CIDR 區塊。

網路需求
  • 用戶端 CIDR 範圍不得與連接到 Transit Gateway 的 VPCs CIDR 範圍重疊。

  • 您選取的可用區域必須由 Transit Gateway 支援。

  • 傳回路由必須在 VPC 路由表中設定,將目的地為用戶端 CIDR 範圍的流量導向 Transit Gateway。

憑證需求
  • 在與 Client VPN 端點相同區域中佈建的伺服器憑證 AWS Certificate Manager (ACM)。

  • 如果您使用交互身分驗證,則會在 ACM 中佈建用戶端憑證。

建立 Transit Gateway Client VPN 端點

您可以使用 主控台或 建立與 Transit Gateway 相關聯的 Client VPN 端點 AWS CLI。

建立 Transit Gateway Client VPN 端點 (主控台)
  1. https://console.aws.amazon.com/vpc/ 開啟 Amazon VPC 主控台。

  2. 在導覽窗格中,選擇 Client VPN Endpoints (Client VPN 端點),然後選擇 Create Client VPN Endpoint (建立 Client VPN 端點)

  3. (選用) 針對名稱標籤描述,輸入端點的名稱和描述。

  4. 針對流量 IP 地址類型,選擇下列其中一項:

    • IPv4 — 指定用戶端 IPv4 CIDR 範圍 (例如 10.0.0.0/22)。

    • IPv6 — AWS 自動指派用戶端 IPv6 CIDR 範圍。

    • 雙堆疊 — 指定用戶端 IPv4 CIDR 範圍。 AWS 會自動指派用戶端 IPv6 CIDR 範圍。

  5. 對於伺服器憑證 ARN,請為在 ACM 中佈建的 TLS 憑證指定 ARN。

  6. 選擇您的身分驗證方法。如需詳細資訊,請參閱中的用戶端身分驗證 AWS Client VPN

  7. (選用) 對於連線記錄,開啟在用戶端連線上啟用日誌詳細資訊,並指定 CloudWatch Logs 日誌群組和日誌串流。

  8. 針對網路基礎設施,選擇傳輸閘道

  9. 對於傳輸閘道 ID,從下拉式清單中選取傳輸閘道。

  10. (選用) 針對可用區域,選取最多 5 個可用區域。如果您未選取可用區域, AWS 會自動選取 2。

  11. (選用) 設定其他設定,例如 DNS 伺服器、傳輸通訊協定、分割通道、VPN 連接埠、工作階段逾時和登入橫幅。

  12. 選擇 Create Client VPN Endpoint (建立 Client VPN 端點)。

注意

建立之後,端點狀態為 pending-associate。Transit Gateway 附件會自動建立。用戶端可以在附件可用後進行連線。

建立 Transit Gateway Client VPN 端點 (AWS CLI)

使用 create-client-vpn-endpoint 命令搭配 --transit-gateway-id 參數。

下列範例會建立具有特定可用區域的 Client VPN 端點:

aws ec2 create-client-vpn-endpoint \
    --client-cidr-block 10.0.0.0/22 \
    --server-certificate-arn arn:aws:acm:us-east-1:123456789012:certificate/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE \
    --authentication-options Type=certificate-authentication,MutualAuthentication={ClientRootCertificateChainArn=arn:aws:acm:us-east-1:123456789012:certificate/a1b2c3d4-5678-90ab-cdef-22222EXAMPLE} \
    --connection-log-options Enabled=false \
    --transit-gateway-id tgw-0a1b2c3d4e5f6EXAMPLE \
    --availability-zone-list us-east-1a us-east-1b us-east-1c

輸出範例:

{
    "ClientVpnEndpointId": "cvpn-endpoint-0a1b2c3d4e5f6EXAMPLE",
    "Status": {
        "Code": "pending-associate"
    },
    "DnsName": "cvpn-endpoint-0a1b2c3d4e5f6EXAMPLE.prod.clientvpn.us-east-1.amazonaws.com"
}

若要讓 AWS 自動選取 2 個可用區域,請省略 --availability-zone-list 參數:

aws ec2 create-client-vpn-endpoint \
    --client-cidr-block 10.0.0.0/22 \
    --server-certificate-arn arn:aws:acm:us-east-1:123456789012:certificate/a1b2c3d4-5678-90ab-cdef-11111EXAMPLE \
    --authentication-options Type=certificate-authentication,MutualAuthentication={ClientRootCertificateChainArn=arn:aws:acm:us-east-1:123456789012:certificate/a1b2c3d4-5678-90ab-cdef-22222EXAMPLE} \
    --connection-log-options Enabled=false \
    --transit-gateway-id tgw-0a1b2c3d4e5f6EXAMPLE

驗證 Transit Gateway 連接

建立端點之後,請確認已建立 Transit Gateway 附件。

驗證 Transit Gateway 連接 (主控台)
  1. https://console.aws.amazon.com/vpc/ 開啟 Amazon VPC 主控台。

  2. 在導覽窗格中,選擇 Transit Gateway Attachments (傳輸閘道連接)。

  3. 尋找資源類型 = client-vpn資源 ID 符合您 Client VPN 端點 ID 的附件。

  4. 確認狀態available

驗證 Transit Gateway 連接 (AWS CLI)

使用 describe-transit-gateway-attachments 命令。

aws ec2 describe-transit-gateway-attachments \
    --filters Name=transit-gateway-id,Values=tgw-0a1b2c3d4e5f6EXAMPLE Name=resource-type,Values=client-vpn

若要檢視端點的 Transit Gateway 組態,請使用 describe-client-vpn-endpoints 命令:

aws ec2 describe-client-vpn-endpoints \
    --client-vpn-endpoint-ids cvpn-endpoint-0a1b2c3d4e5f6EXAMPLE

輸出包含具有 Transit Gateway ID 和相關聯可用區域的TransitGatewayConfiguration物件。

管理路由

重要

對於 Transit Gateway 相關端點,您在建立路由時不會指定目標子網路 ID。流量會自動導向 Transit Gateway 連接。

新增路由 (主控台)
  1. https://console.aws.amazon.com/vpc/ 開啟 Amazon VPC 主控台。

  2. 在導覽窗格中,選擇 Client VPN Endpoints (Client VPN 端點)。

  3. 選取 Client VPN 端點,選擇路由表,然後選擇建立路由

  4. 對於路由目的地,輸入目的地 CIDR 範圍 (例如,10.1.0.0/16VPC 或0.0.0.0/0所有流量)。

  5. (選用) 針對描述,輸入路由的描述。

  6. 選擇 Create route (建立路由)

新增路由 (AWS CLI)

使用 create-client-vpn-route 命令,而不使用 --target-vpc-subnet-id 參數。

aws ec2 create-client-vpn-route \
    --client-vpn-endpoint-id cvpn-endpoint-0a1b2c3d4e5f6EXAMPLE \
    --destination-cidr-block 10.1.0.0/16

若要新增多個路由,請為每個目的地 CIDR 範圍執行 命令:

# Route to VPC 1
aws ec2 create-client-vpn-route \
    --client-vpn-endpoint-id cvpn-endpoint-0a1b2c3d4e5f6EXAMPLE \
    --destination-cidr-block 10.1.0.0/16

# Route to VPC 2
aws ec2 create-client-vpn-route \
    --client-vpn-endpoint-id cvpn-endpoint-0a1b2c3d4e5f6EXAMPLE \
    --destination-cidr-block 10.2.0.0/16

# Route to on-premises network
aws ec2 create-client-vpn-route \
    --client-vpn-endpoint-id cvpn-endpoint-0a1b2c3d4e5f6EXAMPLE \
    --destination-cidr-block 192.168.0.0/16
刪除路由 (主控台)
  1. https://console.aws.amazon.com/vpc/ 開啟 Amazon VPC 主控台。

  2. 在導覽窗格中,選擇 Client VPN Endpoints (Client VPN 端點)。

  3. 選取 Client VPN 端點,選擇路由表,選取路由,然後選擇刪除路由

  4. 選擇刪除路由進行確認。

刪除路由 (AWS CLI)

使用 delete-client-vpn-route 命令。

aws ec2 delete-client-vpn-route \
    --client-vpn-endpoint-id cvpn-endpoint-0a1b2c3d4e5f6EXAMPLE \
    --destination-cidr-block 10.1.0.0/16

設定授權

重要

Transit Gateway 關聯的 Client VPN 端點不支援安全群組型授權。您必須使用網路型授權規則來控制用戶端存取。

新增授權規則 (主控台)
  1. https://console.aws.amazon.com/vpc/ 開啟 Amazon VPC 主控台。

  2. 在導覽窗格中,選擇 Client VPN Endpoints (Client VPN 端點)。

  3. 選取 Client VPN 端點,選擇授權規則,然後選擇新增授權規則

  4. 若要讓目的地網路啟用存取,請輸入目的地 CIDR 範圍 (例如 10.1.0.0/16)。

  5. 針對授予存取權,請選擇下列其中一項:

    • 允許所有使用者存取 — 所有已驗證的用戶端都可以存取目的地網路。

    • 允許特定存取群組中的使用者存取 — 在存取群組 ID 中輸入 Active Directory 群組 SID 或 IdP 群組名稱。

  6. 選擇 Add authorization rule (新增授權規則)。

新增授權規則 (AWS CLI)

使用 authorize-client-vpn-ingress 命令。

下列範例授權所有使用者存取10.1.0.0/16網路:

aws ec2 authorize-client-vpn-ingress \
    --client-vpn-endpoint-id cvpn-endpoint-0a1b2c3d4e5f6EXAMPLE \
    --target-network-cidr 10.1.0.0/16 \
    --authorize-all-groups

下列範例授權特定的 Active Directory 群組:

aws ec2 authorize-client-vpn-ingress \
    --client-vpn-endpoint-id cvpn-endpoint-0a1b2c3d4e5f6EXAMPLE \
    --target-network-cidr 10.1.0.0/16 \
    --access-group-id S-1-2-34-1234567890-1234567890-1234567890-1234

管理可用區域

您可以在建立後修改 Transit Gateway 相關 Client VPN 端點的可用區域。

新增單一可用區域 (AWS CLI)

使用 associate-client-vpn-target-network 命令搭配 --availability-zone 參數。

aws ec2 associate-client-vpn-target-network \
    --client-vpn-endpoint-id cvpn-endpoint-0a1b2c3d4e5f6EXAMPLE \
    --availability-zone us-east-1c
移除單一可用區域 (AWS CLI)

首先,使用 describe-client-vpn-target-networks 命令來尋找可用區域的關聯 ID。

aws ec2 describe-client-vpn-target-networks \
    --client-vpn-endpoint-id cvpn-endpoint-0a1b2c3d4e5f6EXAMPLE

然後使用 disassociate-client-vpn-target-network 命令搭配關聯 ID。

aws ec2 disassociate-client-vpn-target-network \
    --client-vpn-endpoint-id cvpn-endpoint-0a1b2c3d4e5f6EXAMPLE \
    --association-id cvpn-assoc-0a1b2c3d4e5f6EXAMPLE

跨帳戶傳輸閘道存取

您可以建立與不同 AWS 帳戶擁有的 Transit Gateway 相關聯的 Client VPN 端點。若要這樣做,傳輸閘道擁有者必須透過您的帳戶共用傳輸閘道 AWS Resource Access Manager。

先決條件
  • Transit Gateway 擁有者帳戶 — 現有的 Transit Gateway 和在其中建立資源共用的許可 AWS Resource Access Manager。

  • Client VPN 端點帳戶 — 建立 Client VPN 端點並接受 AWS Resource Access Manager 資源共用的許可。

在 Client VPN 端點帳戶中,使用 accept-resource-share-invitation 命令在 AWS Resource Access Manager 主控台中接受資源共用。接受共享後,當您建立 Client VPN 端點時,傳輸閘道 ID 下拉式清單中會顯示傳輸閘道。

考量和限制

當您使用 Transit Gateway 與 Client VPN 整合時,請考慮下列事項:

  • 關聯限制

    • 您無法在單一端點中混合 VPC 子網路關聯和 Transit Gateway 關聯。

    • 每個端點只能使用一種關聯類型。

  • 安全群組

    • Transit Gateway 端點不支援安全群組型授權。

    • 僅使用網路型授權規則。

  • 路由管理

    • 不支援來自 Transit Gateway 的自動路由傳播。

    • 您必須手動定義目的地網路的路由。

  • CIDR 重疊

    • Client VPN CIDR 區塊不應與其他 Transit Gateway 附件或 Transit Gateway CIDR 區塊重疊。

    • Transit Gateway 不支援跨連接的 VPCs 重疊 CIDR 範圍。

  • 區域限制

    • Client VPN 端點和 Transit Gateway 必須位於相同的 AWS 區域。

    • Client VPN 不支援跨區域傳輸閘道對等互連。

  • 可用區域

    • 每個端點最多可以指定 5 個可用區域。

    • 如果未指定, AWS 會自動指派 2 個可用區域。

    • Client VPN 和 Transit Gateway 必須同時支援所有指定的可用區域。

  • 傳回路由

    • 連接到 Transit Gateway 的 VPCs 必須設定傳回路由,以將目的地為 Client VPN CIDR 的流量路由回 Transit Gateway。

    • 如果沒有適當的傳回路由,VPN 用戶端無法存取 VPCs中的資源。

      • 對於 IPv4:Client VPN CIDR 在端點建立時已知。

      • 對於 IPv6:您必須描述傳輸閘道路由表,以判斷指派給 Client VPN 端點的 IPv6 CIDR 範圍 (與 Client VPN 端點相關聯的傳輸閘道路由表中的最大 CIDR 範圍),因為 IPv6 用戶端 CIDR 範圍會自動指派 AWS Client VPN。

  • 連線和流程日誌

    • 您可以啟用傳輸閘道流量日誌,以擷取進出傳輸閘道之 IP 流量的相關資訊。您可以啟用 Client VPN 連線日誌,以擷取 Client VPN 連線事件的相關資訊。

    • 您可以比較 Transit Gateway 流量日誌事件中的用戶端 IP 和時間戳記與 Client VPN 連線日誌中的相同用戶端 IP 和期間,將 Transit Gateway 流量日誌事件與 Client VPN 連線關聯。

  • 網際網路連線

    • 若要透過具有 Transit Gateway 的 Client VPN 存取網際網路,而不需要分割通道,連接的 VPC 必須設定 NAT。