Share via


快速入門:建立 Azure Front Door 標準/進階版 - Azure CLI

在本快速入門中,您將了解如何使用 Azure CLI 建立 Azure Front Door 標準/進階版設定檔。 您將使用兩個 Web 應用程式作為來源,建立此設定檔,並新增 WAF 安全性原則。 接著便可使用 Azure Front Door 端點主機名稱,以確認與 Web 應用程式的連線。

Diagram of Front Door deployment environment using the Azure CLI.

注意

針對 Web 工作負載,強烈建議使用 Azure DDoS 保護Web 應用程式防火牆 來防範新興的 DDoS 攻擊。 另一個選項是運用 Azure Front Door 和 Web 應用程式防火牆。 Azure Front Door 提供平台層級保護來防範網路層級 DDoS 攻擊。 如需詳細資訊,請參閱 Azure 服務的安全性基準

如果您沒有 Azure 訂閱,請在開始之前,先建立 Azure 免費帳戶

必要條件

建立資源群組

在 Azure 中,您可以將相關資源配置到資源群組。 您可以使用現有的資源群組,或建立一個新的群組。

執行 az group create 以建立資源群組。

az group create --name myRGFD --location centralus

建立 Azure Front Door 設定檔

在此步驟中,您會建立兩個應用程式服務用來作為來源的 Azure Front Door 設定檔。

執行 az afd profile create 以建立 Azure Front Door 設定檔。

注意

如果您想要部署 Azure Front Door 標準版而非進階版,請將 sku 參數的值取代為 Standard_AzureFrontDoor。 如果您選擇 [標準 SKU],您將無法使用 WAF 原則部署受控規則。 如需詳細比較,請檢視 Azure Front Door 階層比較

az afd profile create \
    --profile-name contosoafd \
    --resource-group myRGFD \
    --sku Premium_AzureFrontDoor

建立 Web 應用程式的兩個執行個體

在此步驟中,您會建立兩個 Web 應用程式執行個體,以在不同的 Azure 區域中執行本教學課程。 這兩個 Web 應用程式執行個體都會以「主動/主動」模式執行,因此其中任一個都可以服務流量。 此組態不同於「主動/待命」組態,也就是其中一個執行個體會用來作為容錯移轉。

建立 App Service 方案

建立 Web 應用程式前,您需要兩個應用程式服務方案,一個在美國中部,另一個在美國東部

使用 az appservice plan create 建立應用程式方案。

az appservice plan create \
    --name myAppServicePlanCentralUS \
    --resource-group myRGFD \
    --location centralus
az appservice plan create \
    --name myAppServicePlanEastUS \
    --resource-group myRGFD \
    --location eastus

建立 Web 應用程式

建立 App Service 方案之後,請執行 az webapp create 以在上一個步驟的每個 App Service 方案中建立 Web 應用程式。 Web 應用程式名稱必須是全域唯一的。

az webapp create \
    --name WebAppContoso-01 \
    --resource-group myRGFD \
    --plan myAppServicePlanCentralUS
az webapp create \
    --name WebAppContoso-02 \
    --resource-group myRGFD \
    --plan myAppServicePlanEastUS

記下每個 Web 應用程式的預設主機名稱,讓您可以在下一個步驟中部署 Front Door 時定義後端位址。

建立 Azure Front Door

建立 Front Door 設定檔

執行 az afd profile create 以建立 Azure Front Door 設定檔。

注意

如果您想要部署 Azure Front Door 標準版而非進階版,請將 sku 參數的值取代為 Standard_AzureFrontDoor。 如果您選擇 [標準 SKU],您將無法使用 WAF 原則部署受控規則。 如需詳細比較,請檢視 Azure Front Door 階層比較

az afd profile create \
    --profile-name contosoafd \
    --resource-group myRGFD \
    --sku Premium_AzureFrontDoor

新增端點

在此步驟中,您會在 Front Door 設定檔中建立端點。 在 Azure Front Door 標準版/進階版中,端點 是與網域名稱相關聯的一個或多個路由所屬的邏輯群組。 Front Door 會指派網域名稱給每個端點,而且您可以使用路由建立端點與自訂網域的關聯。 Front Door 設定檔也可以包含多個端點。

執行 az afd endpoint create 在設定檔中建立端點。

az afd endpoint create \
    --resource-group myRGFD \
    --endpoint-name contosofrontend \
    --profile-name contosoafd \
    --enabled-state Enabled

如需 Front Door 中端點的詳細資訊,請參閱 Azure Front Door 中的端點

新增來源群組

建立來源群組,以定義應用程式執行個體的流量和預期回應。 來源群組也會定義健康情況探查評估來源的方式,您可以在此步驟中定義。

執行 az afd origin-group create,以建立包含兩個 Web 應用程式的來源群組。

az afd origin-group create \
    --resource-group myRGFD \
    --origin-group-name og \
    --profile-name contosoafd \
    --probe-request-type GET \
    --probe-protocol Http \
    --probe-interval-in-seconds 60 \
    --probe-path / \
    --sample-size 4 \
    --successful-samples-required 3 \
    --additional-latency-in-milliseconds 50

將來源新增至群組

將稍早建立為來源的兩個應用程式執行個體新增至新的來源群組。 Front Door 的來源是指 Front Door 在未啟用快取或遺漏快取時擷取內容的應用程式。

執行 az afd origin create 以將您的第一個應用程式執行個體新增至來源群組作爲來源。

az afd origin create \
    --resource-group myRGFD \
    --host-name webappcontoso-01.azurewebsites.net \
    --profile-name contosoafd \
    --origin-group-name og \
    --origin-name contoso1 \
    --origin-host-header webappcontoso-01.azurewebsites.net \
    --priority 1 \
    --weight 1000 \
    --enabled-state Enabled \
    --http-port 80 \
    --https-port 443

重複此步驟,並將第二個應用程式執行個體新增至來源群組作爲來源。

az afd origin create \
    --resource-group myRGFD \
    --host-name webappcontoso-02.azurewebsites.net \
    --profile-name contosoafd \
    --origin-group-name og \
    --origin-name contoso2 \
    --origin-host-header webappcontoso-02.azurewebsites.net \
    --priority 1 \
    --weight 1000 \
    --enabled-state Enabled \
    --http-port 80 \
    --https-port 443

如需來源、來源群組和健康情況探查的詳細資訊,請參閱 Azure Front Door 中的來源和來源群組

新增路由

新增路由,以將您稍早建立的端點對應至來源群組。 此路由會將要求從端點轉送至來源群組。

執行 az afd route create,將您的端點對應至原始群組。

az afd route create \
    --resource-group myRGFD \
    --profile-name contosoafd \
    --endpoint-name contosofrontend \
    --forwarding-protocol MatchRequest \
    --route-name route \
    --https-redirect Enabled \
    --origin-group og \
    --supported-protocols Http Https \
    --link-to-default-domain Enabled 

若要深入了解 Azure Front Door 中的路由,請參閱 到來源的流量路由方法

建立新的安全性原則

Front Door 上的 Azure Web 應用程式防火牆 (WAF) 可為 Web 應用程式提供集中式保護,使其免於遭遇常見的攻擊和弱點。

在本教學課程中,您會建立一個 WAF 原則,以新增兩個受控規則。 您也可以使用自訂規則建立 WAF 原則

建立 WAF 原則

執行 az network front-door waf-policy create,以建立 Front Door 的新 WAF 原則。 此範例建立的原則已啟用且處於防止模式。

注意

受控規則僅適用於 Front Door 進階層。 您可以選擇下方標準層只使用自訂規則。

az network front-door waf-policy create \
    --name contosoWAF \
    --resource-group myRGFD \
    --sku Premium_AzureFrontDoor \
    --disabled false \
    --mode Prevention

注意

若選取 Detection 模式,WAF 不會封鎖任何要求。

若要深入了解 Front Door 的 WAF 原則設定,請參閱 Azure Front Door 上的 Web 應用程式防火牆原則設定

將受控規則指派給 WAF 原則

Azure 管理的規則集可讓您以簡單的方式部署防護,以抵禦常見的安全性威脅。

執行 az network front-door waf-policy managed-rules add,以將受控規則新增至 WAF 原則。 此範例會將 Microsoft_DefaultRuleSet_2.1 和 Microsoft_BotManagerRuleSet_1.0 新增至您的原則。

az network front-door waf-policy managed-rules add \
    --policy-name contosoWAF \
    --resource-group myRGFD \
    --type Microsoft_DefaultRuleSet \
    --action Block \
    --version 2.1 
az network front-door waf-policy managed-rules add \
    --policy-name contosoWAF \
    --resource-group myRGFD \
    --type Microsoft_BotManagerRuleSet \
    --version 1.0

若要深入了解 Front Door 中的受控規則,請參閱 Web 應用程式防火牆 DRS 規則群組和規則

建立安全性原則

現在,建立安全性原則,將這兩個 WAF 原則套用至 Front Door。 此設定會將 Azure 管理的規則套用至您稍早定義的端點。

執行 az afd security-policy create,將您的 WAF 原則套用至端點的預設網域。

注意

將 'mysubscription' 取代為網域和 waf-policy 參數中的 Azure 訂用帳戶識別碼。 執行 az account subscription list 以取得訂用帳戶識別碼詳細資料。

az afd security-policy create \
    --resource-group myRGFD \
    --profile-name contosoafd \
    --security-policy-name contososecurity \
    --domains /subscriptions/mysubscription/resourcegroups/myRGFD/providers/Microsoft.Cdn/profiles/contosoafd/afdEndpoints/contosofrontend \
    --waf-policy /subscriptions/mysubscription/resourcegroups/myRGFD/providers/Microsoft.Network/frontdoorwebapplicationfirewallpolicies/contosoWAF

測試 Front Door

建立 Azure Front Door 標準/進階版設定檔時,全域性部署組態需要幾分鐘的時間。 完成後,即可存取所建立的前端主機。

執行 az afd endpoint show 以取得 Front Door 端點的主機名稱。

az afd endpoint show --resource-group myRGFD --profile-name contosoafd --endpoint-name contosofrontend

在瀏覽器中,移至端點主機名稱:contosofrontend-<hash>.z01.azurefd.net。 您的要求將會自動路由傳送至來源群組中潛伏期最低的 Web 應用程式。

Screenshot of the message: Your web app is running and waiting for your content

若要測試即時全域容錯移轉,請使用下列步驟:

  1. 開啟瀏覽器,移至端點主機名稱: contosofrontend-<hash>.z01.azurefd.net

  2. 執行 az webapp stop 以停止其中一個 Web 應用程式

    az webapp stop --name WebAppContoso-01 --resource-group myRGFD
    
  3. 重新整理您的瀏覽器。 您應該會看到相同的資訊頁面。

提示

這些動作會有一些延遲。 您可能需要再次重新整理。

  1. 尋找其他 Web 應用程式,並將其停止。

    az webapp stop --name WebAppContoso-02 --resource-group myRGFD
    
  2. 重新整理您的瀏覽器。 此時,您應該會看到一則錯誤訊息。

    Screenshot of the message: Both instances of the web app stopped

  3. 執行 az webapp start 以重新啟動其中一個 Web 應用程式。 重新整理瀏覽器,頁面便會回到正常狀態。

    az webapp start --name WebAppContoso-01 --resource-group myRGFD
    

清除資源

不需要 Front Door 的資源時,請刪除這兩個資源群組。 刪除資源群組時也會刪除 Front Door 及其所有相關資源。

執行 az group delete

az group delete --name myRGFD

下一步

前往下一篇文章,以了解如何將自訂網域新增至您的 Front Door。