使用 VPC 原始伺服器限制存取 - Amazon CloudFront

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

使用 VPC 原始伺服器限制存取

您可以使用 CloudFront 從虛擬私有雲端 (VPC) 私有子網路中託管的應用程式交付內容。您可以使用 Application Load Balancer (ALBs)、Network Load Balancer (NLBs) 和私有子網路中的 EC2 執行個體做為 VPC 原始伺服器。

以下是您可能想要使用 VPC 原始伺服器的一些原因:

  • 安全 – VPC 原始伺服器旨在透過將負載平衡器和 EC2 執行個體放置在私有子網路中,使 CloudFront 成為單一進入點,來增強應用程式的安全狀態。使用者請求會透過私有、安全的連線從 CloudFront 前往 VPC 原始伺服器,為您的應用程式提供額外的安全性。

  • 管理 – VPC 原始伺服器可減少 CloudFront 與原始伺服器之間安全連線所需的營運開銷。您可以將原始伺服器移至沒有公有存取權的私有子網路,而且您不需要實作存取控制清單 (ACLs) 或其他機制來限制對原始伺服器的存取。如此一來,您就不必投資未差異化的開發工作,即可使用 CloudFront 保護您的 Web 應用程式。

  • 可擴展性和效能 – VPC 原始伺服器可協助您保護 Web 應用程式,騰出時間專注於擴展關鍵業務應用程式,同時透過 CloudFront 提高安全性和維護高效能和全球可擴展性。VPC 原始伺服器可簡化安全管理並降低操作複雜性,讓您可以使用 CloudFront 做為應用程式的單一進入點。

先決條件

為 CloudFront 分佈建立 VPC 原始伺服器之前,您必須完成下列操作:

  • 在 Amazon VPC 上建立虛擬私有雲端 (VPC)。

    • 您的 VPC 必須與 AWS 帳戶 CloudFront 分佈位於相同的 中。

    • 您的 VPC 必須位於 VPC 原始伺服器 AWS 區域 支援的其中一個 中。如需詳細資訊,請參閱AWS 區域 支援 VPC 原始伺服器

    • 在 VPC 原始伺服器上啟用用戶端 IP 地址保留時,與您的 VPC 子網路相關聯的網路 ACLs 會套用至輸出 (傳出) 流量。不過,若要讓流量透過 VPC 原始伺服器結束,您必須將 ACL 設定為傳入和傳出規則。

      例如,若要允許使用暫時性來源連接埠的 TCP 和 UDP 用戶端透過 VPC 原始伺服器連線至您的端點,請將端點子網路與網路 ACL 建立關聯,以允許目的地為暫時性 TCP 或 UDP 連接埠的傳出流量 (連接埠範圍 1024-65535,目的地 0.0.0.0/0)。此外,建立相符的傳入規則 (連接埠範圍 1024-65535,來源 0.0.0.0/0)。

    如需建立 VPC 的資訊,請參閱《Amazon VPC 使用者指南》中的建立 VPC 和其他 VPC 資源

  • 在您的 VPC 中包含下列項目:

    • 網際網路閘道 – 您需要將網際網路閘道新增至具有 VPC 原始資源的 VPC。需要網際網路閘道才能表示 VPC 可以從網際網路接收流量。網際網路閘道不會用於將流量路由到子網路內的原始伺服器,而且您不需要更新路由政策。

    • 具有至少一個可用 IPv4 地址的私有子網路 – CloudFront 會使用 CloudFront 在您使用 CloudFront 定義 VPC 原始伺服器資源後建立的服務受管彈性網路界面 (ENI) CloudFront 路由到您的子網路。您的私有子網路中必須至少有一個可用的 IPv4 地址,以便 ENI 建立程序成功。IPv4 地址可以是私有的,而且無需額外費用。

      注意

      不支援IPv6-only的子網路。

  • 在私有子網路中,啟動 Application Load Balancer、Network Load Balancer 或 EC2 執行個體以做為原始伺服器。

    • 您啟動的資源必須完全部署且處於作用中狀態,才能將其用於 VPC 原始伺服器。

    • Gateway Load Balancer、雙堆疊 Network Load Balancer 和具有 TLS 接聽程式的 Network Load Balancer 無法新增為原始伺服器。

    • 若要用作 VPC 原始伺服器,Network Load Balancer 必須連接安全群組。

    • 更新 VPC 私有原始伺服器的安全群組,以明確允許 CloudFront 受管字首清單。如需詳細資訊,請參閱使用 CloudFront 受管字首清單

      • 建立 VPC 原始伺服器之後,安全群組可以進一步限制為僅允許來自 VPC 原始伺服器的流量。若要這樣做,請將允許流量來源從受管字首清單更新為 CloudFront 安全群組。

      注意

      VPC 原始伺服器不支援在 CloudFront 中使用 Lambda@Edge 進行 WebSockets、gRPC 流量和原始伺服器重寫。如需詳細資訊,請參閱 Lambda@Edge 文件使用請求和回應中的 。

建立 VPC 原始伺服器 (新分佈)

下列程序說明如何在 CloudFront 主控台中為新的 CloudFront 分佈建立 VPC CloudFront 原始伺服器。或者,您可以使用 CreateVpcOriginCreateDistribution API 操作搭配 AWS CLI 或 AWS SDK。

為新的 CloudFront 分佈建立 VPC 原始伺服器
  1. https://console.aws.amazon.com/cloudfront/v4/home 中開啟 CloudFront 主控台。

  2. 選擇 VPC 原始伺服器、建立 VPC 原始伺服器

  3. 填妥必要的欄位。針對原始伺服器 ARN,選取 Application Load Balancer、Network Load Balancer 或 EC2 執行個體的 ARN。如果您沒有看到 ARN,您可以複製特定資源 ARN 並將其貼到這裡。

  4. 選擇建立 VPC 原始伺服器。

  5. 等待您的 VPC 原始伺服器狀態變更為已部署。這最多可能需要 15 分鐘。

  6. 選擇分佈建立分佈

  7. 對於原始網域,從下拉式清單中選取您的 VPC 原始伺服器資源。

    如果您的 VPC 原始伺服器是 EC2 執行個體,請將執行個體的私有 IP DNS 名稱複製並貼到原始網域欄位中。

  8. 完成建立分佈。如需詳細資訊,請參閱在主控台中建立 CloudFront 分佈

建立 VPC 原始伺服器 (現有分佈)

下列程序說明如何在 CloudFront 主控台中為現有的 CloudFront 分佈建立 VPC 原始伺服器,這有助於確保應用程式的持續可用性。或者,您可以使用 CreateVpcOriginUpdateDistributionWithStagingConfig API 操作搭配 AWS CLI 或 AWS SDK。

或者,您可以選擇將 VPC 原始伺服器新增至現有的分佈,而無需建立預備分佈。

為現有的 CloudFront 分佈建立 VPC 原始伺服器
  1. https://console.aws.amazon.com/cloudfront/v4/home 中開啟 CloudFront 主控台。

  2. 選擇 VPC 原始伺服器,建立 VPC 原始伺服器

  3. 填妥必要的欄位。針對原始伺服器 ARN,選取 Application Load Balancer、Network Load Balancer 或 EC2 執行個體的 ARN。如果您沒有看到 ARN,您可以複製特定資源 ARN 並將其貼到這裡。

  4. 選擇建立 VPC 原始伺服器

  5. 等待您的 VPC 原始伺服器狀態變更為已部署。這最多可能需要 15 分鐘。

  6. 在導覽窗格中,選擇 Distributions (分佈)

  7. 選擇分佈的 ID。

  8. 一般索引標籤的持續部署下,選擇建立預備分佈。如需詳細資訊,請參閱使用 CloudFront 持續部署安全地測試 CDN 組態變更

  9. 依照建立預備分佈精靈中的步驟來建立預備分佈。包含下列步驟:

    • 針對原始伺服器,選擇建立原始伺服器

    • 對於原始網域,請從下拉式功能表中選取您的 VPC 原始伺服器資源。

      如果您的 VPC 原始伺服器是 EC2 執行個體,請將執行個體的私有 IP DNS 名稱複製並貼到原始網域欄位中。

    • 選擇 Create Origin (建立原始伺服器)

  10. 在您的預備分佈中,測試 VPC 原始伺服器。

  11. 將預備分佈組態提升為主要分佈。如需詳細資訊,請參閱提升預備分佈組態

  12. 將子網路設為私有,移除對 VPC 原始伺服器的公開存取。執行此操作後,將無法透過網際網路探索 VPC 原始伺服器,但 CloudFront 仍然可以進行私有存取。如需詳細資訊,請參閱《Amazon VPC 使用者指南》中的將子網路與路由表建立關聯或取消關聯

更新 VPC 原始伺服器

下列程序說明如何在 CloudFront 主控台中更新 CloudFront 分佈的 VPC CloudFront 原始伺服器。或者,您可以使用 UpdateDistributionUpdateVpcOrigin API 操作搭配 AWS CLI 或 AWS SDK。

更新 CloudFront 分佈的現有 VPC 原始伺服器
  1. https://console.aws.amazon.com/cloudfront/v4/home 中開啟 CloudFront 主控台。

  2. 在導覽窗格中,選擇 Distributions (分佈)

  3. 選擇分佈的 ID。

  4. 選擇 Behaviors (動作) 索引標籤。

  5. 請確定 VPC 原始伺服器不是快取行為的預設原始伺服器。

  6. 選擇 Origins (原始伺服器) 索引標籤。

  7. 選取您要更新的 VPC 原始伺服器,然後選擇刪除。這會取消 VPC 原始伺服器與分佈的關聯。重複步驟 2-7 以取消 VPC 原始伺服器與任何其他分佈的關聯。

  8. 選擇 VPC 原始伺服器。

  9. 選取 VPC 原始伺服器,然後選擇編輯

  10. 進行更新,然後選擇更新 VPC 原始伺服器

  11. 等待您的 VPC 原始伺服器狀態變更為已部署。這最多可能需要 15 分鐘。

  12. 在導覽窗格中,選擇 Distributions (分佈)

  13. 選擇分佈的 ID。

  14. 選擇 Origins (原始伺服器) 索引標籤。

  15. 選擇 Create Origin (建立原始伺服器)

  16. 對於原始網域,請從下拉式功能表中選取您的 VPC 原始伺服器資源。

    如果您的 VPC 原始伺服器是 EC2 執行個體,請將執行個體的私有 IP DNS 名稱複製並貼到原始網域欄位中。

  17. 選擇 Create Origin (建立原始伺服器)。這會再次將 VPC 原始伺服器與您的分佈建立關聯。重複步驟 12-17,將更新的 VPC 原始伺服器與任何其他分佈建立關聯。

AWS 區域 支援 VPC 原始伺服器

下列商業商品目前支援 VPC 原始伺服器 AWS 區域。會記下可用區域 (AZ) 例外狀況。

區域名稱 區域
美國東部 (俄亥俄) us-east-2
美國東部 (維吉尼亞北部) us-east-1 (except AZ use1-az3)
美國西部 (加利佛尼亞北部) us-west-1 (except AZ usw1-az2)
美國西部 (奧勒岡) us-west-2
非洲 (開普敦) af-south-1
亞太區域 (香港) ap-east-1
Asia Pacific (Mumbai) ap-south-1
亞太區域 (海德拉巴) ap-south-2
亞太區域 (雅加達) ap-southeast-3
亞太區域 (墨爾本) ap-southeast-4
亞太區域 (大阪) ap-northeast-3
亞太區域 (新加坡) ap-southeast-1
亞太區域 (雪梨) ap-southeast-2
亞太區域 (東京) ap-northeast-1 (except AZ apne1-az3)
亞太區域 (首爾) ap-northeast-2 (except AZ apne2-az1)
加拿大 (中部) ca-central-1 (except AZ cac1-az3)
加拿大西部 (卡加利) ca-west-1
歐洲 (法蘭克福) eu-central-1
歐洲 (愛爾蘭) eu-west-1
歐洲 (倫敦) eu-west-2
歐洲 (米蘭) eu-south-1
Europe (Paris) eu-west-3
歐洲 (西班牙) eu-south-2
歐洲 (斯德哥爾摩) eu-north-1
歐洲 (蘇黎世) eu-central-2
以色列 (特拉維夫) il-central-1
Middle East (Bahrain) me-south-1
中東 (阿拉伯聯合大公國) me-central-1
南美洲 (聖保羅) sa-east-1