共用方式為


快速入門:使用 Azure CLI 建立 Azure Front Door

在本快速入門中,您將瞭解如何使用 Azure CLI 建立 Azure Front Door。 您已將具有兩個 Azure Web Apps 的配置檔設定為來源,並新增 WAF 安全策略。 最後,您可以使用 Azure Front Door 端點主機名來確認 Web Apps 的連線能力。

使用 Azure CLI 的 Azure Front Door 部署環境圖表。

注意

針對 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 設定檔

接下來,建立兩個 App Services 作為來源使用的 Azure Front Door 配置檔。

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

注意

如果您想要部署 Azure Front Door Standard 而非 Premium,請將 sku 參數的值取代為 Standard_AzureFrontDoor。 使用 WAF 原則的受控規則不適用於標準 SKU。 如需詳細的比較,請參閱 Azure Front Door 層比較

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

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

在此步驟中,您會建立兩個在不同 Azure 區域中執行的 Web 應用程式實例。 這兩個實例都以主動/主動模式運作,這表示兩者都可以處理流量。 此設定與 Active/Stand-By 組態不同,其中一個實例可作為故障轉移。

建立 App Service 方案

首先,建立兩個應用程式服務方案:一個在美國 中部 ,另一個在美國 東部

執行下列命令來建立 App Service 方案:

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 方案中建立 Web 應用程式。 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 應用程式的預設主機名,因為您在下一個步驟中部署 Azure Front Door 時需要它們來定義後端位址。

建立 Azure Front Door

建立 Azure Front Door 設定檔

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

注意

若要部署 Azure Front Door Standard 而非 Premium,請將 參數設定 skuStandard_AzureFrontDoor。 使用 WAF 原則的受控規則不適用於標準 SKU。 如需詳細的比較,請參閱 Azure Front Door 層比較

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

新增端點

在 Azure Front Door 配置檔中建立端點。 端點是與域名相關聯的一或多個路由的邏輯群組。 每個端點都會由 Azure Front Door 指派功能變數名稱,而且您可以使用路由將端點與自定義網路域產生關聯。 Azure Front Door 配置檔可以包含多個端點。

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

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

如需 Azure 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

將原始來源新增至原始群組

將稍早建立為來源的兩個應用程式執行個體新增至新的來源群組。 Azure Front Door 中的來源是指 Azure 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 中的路由,請參閱 到來源的流量路由方法

建立新的安全性原則

Azure Front Door 上的 Azure Web 應用程式防火牆 (WAF) 可為 Web 應用程式提供集中式保護,以防範常見的惡意探索和弱點。

在本教學課程中,您會建立包含兩個受控規則的 WAF 原則。 您也可以使用自定義規則來建立 WAF 原則。

建立 WAF 原則

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

注意

受控規則僅適用於 Azure Front Door 進階層。 您可以搭配標準層使用自訂規則。

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

注意

如果您選取 Detection 模式,您的 WAF 將不會封鎖任何要求。

若要深入瞭解 Azure 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

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

套用安全策略

現在,藉由建立安全策略,將 WAF 原則套用至您的 Azure 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

測試 Azure Front Door

建立 Azure Front Door 配置文件之後,需要幾分鐘的時間才能全域部署設定。 完成後,即可存取所建立的前端主機。

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

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

在瀏覽器中,移至端點主機名稱:contosofrontend-<hash>.z01.azurefd.net。 您的要求會路由傳送至原始群組中最不晚的 Web 應用程式。

訊息的螢幕快照:您的 Web 應用程式正在執行並等候您的內容

若要測試立即全域故障轉移,請遵循下列步驟:

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

  2. 執行 az webapp stop 以停止其中一個 Web Apps:

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

提示

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

  1. 同時停止其他 Web 應用程式:

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

    訊息的螢幕快照:Web 應用程式的兩個實例都已停止

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

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

清除資源

當您不再需要為 Azure Front Door 建立的資源時,您可以刪除資源群組。 此動作會移除 Azure Front Door 和所有相關聯的資源。

執行下列命令以刪除資源群組:

az group delete --name myRGFD

下一步

請繼續進行下一篇文章,瞭解如何將自定義網域新增至您的 Azure Front Door。