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

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

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

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

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

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

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

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

提示

CloudFront 支援跨 共用 VPC 原始伺服器 AWS 帳戶,無論它們是否在您的組織中。您可以從 CloudFront 主控台共用 VPC 原始伺服器或使用 AWS Resource Access Manager (AWS RAM)。如需詳細資訊,請參閱在 CloudFront 中使用共享的資源

先決條件

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

VPC 組態

VPC 原始伺服器支援的其中一個 中,在 Amazon VPC 上建立虛擬私有雲端 (VPC)。 AWS 區域 如需有關建立 VPC 的資訊,請參閱《Amazon VPC 使用者指南》中的建立 VPC 和其他 VPC 資源。如需支援的區域的清單,請參閱 AWS 區域 支援 VPC 原始伺服器

您的 VPC 必須包含下列項目:

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

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

原始伺服器資源

在私有子網路中,啟動 Application Load Balancer、Network Load Balancer 或 EC2 執行個體以做為原始伺服器。您啟動的資源必須完全部署且處於作用中狀態,才能將其用於 VPC 原始伺服器。

原始伺服器限制:

  • Gateway Load Balancer 無法新增為原始伺服器

  • 雙堆疊 Network Load Balancer 無法新增為原始伺服器

  • 具有 TLS 接聽程式的網路負載平衡器無法新增為原始伺服器

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

安全群組設定

您的 VPC 原始伺服器資源 (Application Load Balancer、Network Load Balancer 或 EC2 執行個體) 必須連接安全群組。當您建立 VPC 原始伺服器時,CloudFront 會自動建立命名模式為 的服務受管安全群組CloudFront-VPCOrigins-Service-SG。此安全群組完全由 管理 AWS,不應編輯。

若要允許來自 CloudFront 的流量到達 VPC 原始伺服器,請更新連接至原始資源 (ALB、NLB 或 EC2 執行個體) 的安全群組,以使用下列其中一種方法允許傳入流量:

  • 選項 1:允許來自 CloudFront 受管字首清單的流量。如需詳細資訊,請參閱使用 CloudFront 受管字首清單。這也可以在建立 VPC 原始伺服器之前完成。

  • 選項 2:允許來自 CloudFront 服務受管安全群組 () 的流量CloudFront-VPCOrigins-Service-SG。這只能在建立 VPC 原始伺服器並建立服務受管安全群組之後完成。此組態會進一步限制,因為它只會將流量限制在您的 CloudFront 分佈。

重要

請勿建立名稱開頭為 的自有安全群組CloudFront-VPCOrigins-Service-SG。這是服務受管安全群組的 AWS 預留命名模式。如需詳細資訊,請參閱建立安全群組

通訊協定和功能限制

VPC 原始伺服器不支援下列項目:

  • WebSockets

  • gRPC 流量

  • 使用 Lambda@Edge 的原始伺服器請求和原始伺服器回應觸發條件

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

下列程序說明如何在 CloudFront 主控台中為新的 CloudFront 分佈建立 VPC 原始伺服器。或者,您可以使用 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 原始伺服器。或者,您可以使用 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
亞太地區 (孟買) 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)
亞太區域 (泰國) ap-southeast-7
亞太地區 (馬來西亞) ap-southeast-5
亞太區域 (台北) ap-east-2
加拿大 (中部) 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
墨西哥 (中部) mx-central-1