管理私有端點 - AWS App Runner

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

管理私有端點

使用下列其中一種方法管理內送流量的私人端點:

注意

如果您的應用程式執行器應用程式需要來源 IP/CIDR 傳入流量控制規則,您必須針對私有端點使用安全群組規則,而不是 WAF Web ACL。這是因為我們目前不支援將要求來源 IP 資料轉送至與 WAF 相關聯的 App Runner 私人服務。因此,與 WAF Web ACL 相關聯的應用程式執行器私有服務的來源 IP 規則不會遵守 IP 型規則。

若要進一步了解基礎設施安全和安全群組 (包括最佳實務),請參閱 Amazon VPC 使用者指南中的以下主題:使用安全群組控制網路流量和控制 AWS 資源的流量。

應用程式執行器

當您使用 App Runner 主控台建立服務時,或稍後更新其組態時,您可以選擇設定傳入流量。

若要設定傳入流量,請選擇下列其中一項。

  • 公共端點:使您的服務可以通過互聯網訪問所有服務。依預設,會選取公用端點

  • 私有端點:讓您的應用程式執行器服務只能在 Amazon VPC 內存取。

注意

目前,應用程式執行器僅針對公用端點支援 IPv6。在 Amazon 虛擬私有雲端 (Amazon VPC) 中託管的應用程式執行器服務不支援 IPv6 端點。如果您將使用雙堆疊公用端點的服務更新到私有端,則 App Runner 服務將預設為僅支援來自 IPv4 端點的流量,且無法從 IPv6 端點接收流量。

啟用私有端點

私有端點與您要存取之 Amazon VPC 的虛擬私人雲端界面端點相關聯,以啟用私有端點。您可以建立新的 VPC 介面端點,也可以選擇現有的端點。

若要建立 VPC 介面端點
  1. 開啟應用程式執行器主控台,然後在 [區域] 清單中選取您的 AWS 區域.

  2. 轉到配置服務下的網絡部分。

  3. 針對 [內送網路流量] 選擇 [私人端點]。開啟使用 VPC 介面端點連線至 VCP 的選項。

  4. 選擇 [建立新端點]。建立新的 VPC 介面端點對話方塊隨即開啟。

  5. 輸入 VPC 介面端點的名稱。

  6. 從可用的下拉式清單中選擇所需的 VPC 介面端點。

  7. 從下拉式清單中選擇安全性群組。新增安全群組可為 VPC 介面端點提供額外的安全層。建議您選擇兩個以上的安全性群組。如果您未選擇安全性群組,App Runner 會將預設安全群組指派給 VPC 介面端點。確定安全性群組規則不會封鎖想要與 App Runner 服務通訊的資源。安全性群組規則必須允許與您的應用程式執行器服務互動的資源。

    注意

    如果您的應用程式執行器應用程式需要來源 IP/CIDR 傳入流量控制規則,您必須針對私有端點使用安全群組規則,而不是 WAF Web ACL。這是因為我們目前不支援將要求來源 IP 資料轉送至與 WAF 相關聯的 App Runner 私人服務。因此,與 WAF Web ACL 相關聯的應用程式執行器私有服務的來源 IP 規則不會遵守 IP 型規則。

    若要進一步了解基礎設施安全和安全群組 (包括最佳實務),請參閱 Amazon VPC 使用者指南中的以下主題:使用安全群組控制網路流量和控制 AWS 資源的流量。

  8. 從下拉式清單中選擇所需的子網路。建議您針對從中存取 App Runner 服務的每個可用區域選取至少兩個子網路。

  9. (選擇性) 選擇「新增標籤」,然後輸入標籤關鍵字和標籤值。

  10. 選擇建立[設定服務] 頁面隨即開啟,並在頂端列顯示成功建立 VPC 介面端點的訊息。

選擇現有的 VPC 介面端點
  1. 開啟應用程式執行器主控台,然後在 [區域] 清單中選取您的 AWS 區域.

  2. 轉到配置服務下的網絡部分。

  3. 針對 [內送網路流量] 選擇 [私人端點]。開啟使用 VPC 介面端點連線至 VPC 的選項。顯示可用的 VPC 介面端點清單。

  4. 選擇 VPC 介面端點下列出的必要 VPC 介面端點。

  5. 選擇 [下一步] 建立您的服務。應用程序運行器啟用私有端點。

    注意

    建立服務之後,您可以視需要選擇編輯與 VPC 介面端點關聯的安全性群組和子網路。

    若要檢查私人端點的詳細資料,請移至您的服務,然後展開組態索引標籤下的 [網路] 區段。它會顯示與有端點相關聯的 VPC 和 VPC 介面端點的詳細資料。

更新 VPC 介面端點

建立 App Runner 服務之後,您可以編輯與私有端點相關聯的 VPC 介面端點。

注意

您無法更新端點名稱VPC 欄位。

若要更新 VPC 介面端點
  1. 開啟應用程式執行器主控台,然後在 [區域] 清單中選取您的 AWS 區域.

  2. 轉到您的服務,然後在左側面板上選擇網絡配置

  3. 選擇 [內送流量] 以檢視與個別服務相關聯的 VPC 介面端點。

  4. 選擇您要編輯的 VPC 介面端點。

  5. 選擇編輯。開啟用於編輯 VPC 介面端點的對話方塊。

  6. 選擇所需的安全性群組子網路,然後按一下更新。顯示 VPC 介面端點詳細資料的頁面隨即開啟,頂端列上顯示成功更新 VPC 介面端點的訊息。

    注意

    如果您的應用程式執行器應用程式需要來源 IP/CIDR 傳入流量控制規則,您必須針對私有端點使用安全群組規則,而不是 WAF Web ACL。這是因為我們目前不支援將要求來源 IP 資料轉送至與 WAF 相關聯的 App Runner 私人服務。因此,與 WAF Web ACL 相關聯的應用程式執行器私有服務的來源 IP 規則不會遵守 IP 型規則。

    若要進一步了解基礎設施安全和安全群組 (包括最佳實務),請參閱 Amazon VPC 使用者指南中的以下主題:使用安全群組控制網路流量和控制 AWS 資源的流量。

刪除 VPC 介面端點

如果您不希望您的 App Runner 服務可以私人訪問,則可以將傳入流量設置為「公共」。變更為用會移除私有端點,但不會刪除 VPC 介面端點

若要刪除 VPC 介面端點
  1. 開啟應用程式執行器主控台,然後在 [區域] 清單中選取您的 AWS 區域.

  2. 轉到您的服務,然後在左側面板上選擇網絡配置

  3. 選擇 [內送流量] 以檢視與個別服務相關聯的 VPC 介面端點。

    注意

    刪除 VPC 介面端點之前,請透過更新服務將其從其連線的所有服務中移除。

  4. 選擇刪除

    如果有服務連線至 VPC 介面端點,則您會收到無法刪除 VPC 介面端點訊息。如果沒有服務連線至 VPC 介面端點,您會收到確認刪除的訊息。

  5. 選擇刪除。[網路組態] 頁面會針對 [內送] 流量開啟,頂端列上顯示成功刪除 VPC 介面端點的訊息。

應用程序運行器 API 或 AWS CLI

您可以在只能從 Amazon VPC 內存取的應用程式執行器上部署應用程式。

如需將服務設為私人所需權限的資訊,請參閱許可

注意

目前,應用程式執行器僅針對公用端點支援 IPv6。在 Amazon 虛擬私有雲端 (Amazon VPC) 中託管的應用程式執行器服務不支援 IPv6 端點。如果您將使用雙堆疊公用端點的服務更新到私有端,則 App Runner 服務將預設為僅支援來自 IPv4 端點的流量,且無法從 IPv6 端點接收流量。

建立到 Amazon VPC 的私有服務連接
  1. 建立 VPC 介面端點 ( AWS PrivateLink 資源) 以連線至應用程式執行器。若要這麼做,請指定要與應用程式產生關聯的子網路和安全群組。以下是建立 VPC 介面端點的範例。

    注意

    如果您的應用程式執行器應用程式需要來源 IP/CIDR 傳入流量控制規則,您必須針對私有端點使用安全群組規則,而不是 WAF Web ACL。這是因為我們目前不支援將要求來源 IP 資料轉送至與 WAF 相關聯的 App Runner 私人服務。因此,與 WAF Web ACL 相關聯的應用程式執行器私有服務的來源 IP 規則不會遵守 IP 型規則。

    若要進一步了解基礎設施安全和安全群組 (包括最佳實務),請參閱 Amazon VPC 使用者指南中的以下主題:使用安全群組控制網路流量和控制 AWS 資源的流量。

    aws ec2 create-vpc-endpoint --vpc-endpoint-type: Interface --service-name: com.amazonaws.us-east-1.apprunner.requests --subnets: subnet1, subnet2 --security-groups: sg1
  2. 透過 CLI 使用CreateServiceUpdateService應用程式執行器 API 動作來參考 VPC 介面端點。將您的服務設定為不可公開存取。FalseIsPubliclyAccessibleNetworkConfiguration數成IngressConfiguration員中設定為。以下是參考 VPC 介面端點的範例。

    aws apprunner create-service --network-configuration: ingress-configuration=<ingress_configuration> --service-name: com.amazonaws.us-east-1.apprunner.requests --source-configuration: <source_configuration> # Ingress Configuration { "IsPubliclyAccessible": False }
  3. 呼叫 create-vpc-ingress-connection API 動作,為應用程式執行器建立 VPC 入口連線資源,並將其與您在上一步中建立的 VPC 介面端點建立關聯。它會傳回用來存取指定 VPC 中服務的網域名稱。以下是建立 VPC 輸入連線資源的範例。

    範例 請求
    aws apprunner create-vpc-ingress-connection --service-arn: <apprunner_service_arn> --ingress-vpc-configuration: {"VpcId":<vpc_id>, "VpceId": <vpce_id>} --vpc-ingress-connection-name: <vic_connection_name>
    範例 回應
    { "VpcIngressConnectionArn": <vpc_ingress_connection_arn>, "VpcIngressConnectionName": <vic_connection_name>, "ServiceArn": <apprunner_service_arn>, "Status": "PENDING_CREATION", "AccountId": <connection_owner_id>, "DomainName": <domain_name_associated_with_vpce>, "IngressVpcConfiguration": {"VpcId":<vpc_id>, "VpceId":<vpce_id>}, "CreatedAt": <date_created> }

更新 VPC 輸入連線

您可以更新 VPC 輸入連線資源。VPC 輸入連線必須處於下列其中一種狀態,才能更新:

  • AVAILABLE

  • 失敗 (_C) 建立

  • 失敗 (_U) 更新

以下是更新 VPC 輸入連線資源的範例。

範例 請求
aws apprunner update-vpc-ingress-connection --vpc-ingress-connection-arn: <vpc_ingress_connection_arn>
範例 回應
{ "VpcIngressConnectionArn": <vpc_ingress_connection_arn>, "VpcIngressConnectionName": <vic_connection_name>, "ServiceArn": <apprunner_service_arn>, "Status": "FAILED_UPDATE", "AccountId": <connection_owner_id>, "DomainName": <domain_name_associated_with_vpce>, "IngressVpcConfiguration": {"VpcId":<vpc_id>, "VpceId":<vpce_id>}, "CreatedAt": <date_created> }

刪除 VPC 輸入連線

如果您不再需要 Amazon VPC 的私有連線,可以刪除 VPC 入口連線資源。

VPC 輸入連線必須處於下列其中一種狀態才能刪除:

  • AVAILABLE

  • 建立失敗

  • 更新失敗

  • 刪除失敗

以下是刪除 VPC 輸入連線的範例

範例 請求
aws apprunner delete-vpc-ingress-connection --vpc-ingress-connection-arn: <vpc_ingress_connection_arn>
範例 回應
{ "VpcIngressConnectionArn": <vpc_ingress_connection_arn>, "VpcIngressConnectionName": <vic_connection_name>, "ServiceArn": <apprunner_service_arn>, "Status": "PENDING_DELETION", "AccountId": <connection_owner_id>, "DomainName": <domain_name_associated_with_vpce>, "IngressVpcConfiguration": {"VpcId":<vpc_id>, "VpceId":<vpce_id>}, "CreatedAt": <date_created>, "DeletedAt": <date_deleted> }

使用下列應用程式執行器 API 動作來管理服務的私人入埠流量。

有關使用應用程序運行器 API 的更多信息,請參閱應用運行器 API 參考指南