Share via


Tutorial: Adición y personalización de reglas de entrega para Azure Front Door Estándar o Premium (versión preliminar) con la CLI de Azure

Azure Front Door Estándar/Premium (versión preliminar) es una red de entrega de contenido en la nube segura y moderna. Azure Front Door usa la red perimetral global de Microsoft y se integra con la protección contra amenazas inteligente. Azure Front Door Estándar se centra en la entrega de contenido. Azure Front Door Premium agrega amplias funcionalidades de seguridad y personalización. Este tutorial se centra en crear un perfil de Azure Front Door y, a continuación, agregar reglas de entrega para un control más específicos sobre los comportamientos de la aplicación web.

Nota

Esta documentación trata sobre Azure Front Door Estándar/Prémium (versión preliminar). ¿Busca información sobre Azure Front Door? Vea la documentación sobre Azure Front Door.

En este tutorial, aprenderá a:

  • Crear un perfil de Azure Front Door.
  • Crear dos instancias de una aplicación web.
  • Crear una nueva directiva de seguridad.
  • Comprobar la conectividad con las aplicaciones web.
  • Crear un conjunto de reglas.
  • Cree una regla y agregarla al conjunto de reglas.
  • Agregar acciones o condiciones a las reglas.

Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.

Requisitos previos

Crear una instancia de Azure Front Door

Crear un grupo de recursos

Para este inicio rápido, necesitará dos grupos de recursos. Uno en Centro de EE. UU. y el segundo en Este de EE. UU.

Ejecute az group create para crear grupos de recursos.

az group create \
    --name myRGFDCentral \
    --location centralus

az group create \
    --name myRGFDEast \
    --location eastus

Creación de un perfil de Azure Front Door

Ejecute az afd profile create para crear un perfil de Azure Front Door.

az afd profile create \
    --profile-name contosoafd \
    --resource-group myRGFDCentral \
    --sku Premium_AzureFrontDoor \
    --subscription mysubscription

Creación de dos instancias de una aplicación web

Necesita dos instancias de una aplicación web que se ejecuten en diferentes regiones de Azure para este tutorial. Las dos instancias de la aplicación web se ejecutan en modo Activo/Activo, por lo que cualquiera de ellas puede atender el tráfico.

Si aún no tiene una aplicación web, use el siguiente script para configurar dos aplicaciones web de ejemplo.

Creación de planes de App Service

Para poder crear las aplicaciones web, necesitará dos planes de App Service, uno en Centro de EE. UU. y el segundo en Este de EE. UU.

Ejecute az appservice plan create para crear sus planes de App Service.

az appservice plan create \
    --name myAppServicePlanCentralUS \
    --resource-group myRGFDCentral

az appservice plan create \
    --name myAppServicePlanEastUS \
    --resource-group myRGFDEast

Creación de aplicaciones web

Ejecute az webapp create para crear una aplicación web en cada uno de los planes de App Service del paso anterior. Los nombres de las aplicaciones web tienen que ser únicos globalmente.

Ejecute az webapp list-runtimes para ver una lista de pilas integradas para aplicaciones web.

az webapp create \
    --name WebAppContoso-001 \
    --resource-group myRGFDCentral \
    --plan myAppServicePlanCentralUS \
    --runtime "DOTNETCORE|2.1"

az webapp create \
    --name WebAppContoso-002 \
    --resource-group myRGFDEast \
    --plan myAppServicePlanEastUS \
    --runtime "DOTNETCORE|2.1"

Anote el nombre de host predeterminado de cada aplicación web, con el fin de que pueda definir las direcciones de back-end al implementar la instancia de Front Door en el paso siguiente.

Agregación de un extremo

Ejecute az afd endpoint create para crear un punto de conexión en el perfil. Puede crear varios puntos de conexión en el perfil después de finalizar la experiencia de creación.

az afd endpoint create \
    --resource-group myRGFDCentral \
    --endpoint-name contoso-frontend \
    --profile-name contosoafd \
    --origin-response-timeout-seconds 60 \
    --enabled-state Enabled

Creación de un grupo de origen

Ejecute az afd origin-group create para crear un grupo de origen que contenga las dos aplicaciones web.

az afd origin-group create \
    --resource-group myRGFDCentral \
    --origin-group-name og1 \
    --profile-name contosoafd \
    --probe-request-type GET \
    --probe-protocol Http \
    --probe-interval-in-seconds 120 \
    --probe-path /test1/azure.txt \
    --sample-size 4 \
    --successful-samples-required 3 \
    --additional-latency-in-milliseconds 50

Adición de orígenes al grupo

Ejecute az afd origin create para agregar un origen al grupo de origen.

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

Repita este paso y agregue el segundo origen.

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

Agregar una ruta

Ejecute az afd route create para asignar el punto de conexión de front-end al grupo de orígenes. Esta ruta reenvía las solicitudes del punto de conexión a og1.

az afd route create \
    --resource-group myRGFDCentral \
    --endpoint-name contoso-frontend \
    --profile-name contosoafd \
    --route-name route1 \
    --https-redirect Enabled \
    --origin-group og1 \
    --supported-protocols Https \
    --link-to-default-domain Enabled \
    --forwarding-protocol MatchRequest

Creación de una directiva de seguridad

Creación de una directiva WAF

Ejecute az network front-door waf-policy create para crear una directiva de WAF para uno de los grupos de recursos.

Cree una nueva directiva de WAF para su perfil de Front Door. En este ejemplo se crea una directiva habilitada y en modo de prevención.

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

Nota:

Si selecciona el modo Detection, WAF no bloquea ninguna solicitud.

Creación de la directiva de seguridad

Ejecute az afd security-policy create para aplicar la directiva de WAF al dominio predeterminado del punto de conexión.

az afd security-policy create \
    --resource-group myRGFDCentral \
    --profile-name contosoafd \
    --security-policy-name contososecurity \
    --domains /subscriptions/mysubscription/resourcegroups/myRGFDCentral/providers/Microsoft.Cdn/profiles/contosoafd/afdEndpoints/contoso-frontend.z01.azurefd.net \
    --waf-policy /subscriptions/mysubscription/resourcegroups/myRGFDCentral/providers/Microsoft.Network/frontdoorwebapplicationfirewallpolicies/contosoWAF

Comprobación de Azure Front Door

Cuando se crea el perfil de Azure Front Door Estándar/Premium, la configuración tarda unos minutos en implementarse globalmente. Cuando haya finalizado, puede acceder al host de front-end que ha creado. Vaya a contoso-frontend.z01.azurefd.net en un explorador. La solicitud se enrutará automáticamente al servidor más cercano de entre los servidores especificados en el grupo de orígenes.

Para probar la conmutación por error global instantánea, siga estos pasos:

  1. Abra un explorador como se indica más arriba y vaya a la dirección de front-end: contoso-frontend.azurefd.net.

  2. En Azure Portal, busque y seleccione App Services. Desplácese hacia abajo hasta encontrar una de sus aplicaciones web, WebAppContoso-1 en este ejemplo.

  3. Seleccione la aplicación web y, a continuación, seleccione Detener y para confirmar.

  4. Actualice el explorador. Debería aparecer la misma página de información.

    Sugerencia

    Hay algo de retraso en estas acciones. Puede que tenga que actualizar de nuevo.

  5. Busque la otra aplicación web y deténgala también.

  6. Actualice el explorador. Esta vez debería aparecer un mensaje de error.

    Both instances of the web app stopped

Creación de un conjunto de reglas

Cree un conjunto de reglas para personalizar cómo se administran las solicitudes HTTP en el perímetro. Las reglas de entrega agregadas al conjunto de reglas proporcionan más control sobre los comportamientos de las aplicaciones web. Ejecute az afd rule-set create para crear un conjunto de reglas en el perfil de Azure Front Door.

az afd rule-set create \
    --profile-name contosoafd \
    --resource-group myRGFDCentral \
    --rule-set-name contosorules

Creación de una regla de entrega y adición al conjunto de reglas

Cree una nueva regla de entrega dentro del conjunto de reglas. Ejecute az afd rule create para crear una regla de entrega en el conjunto de reglas. En este ejemplo, crearemos una regla para un redireccionamiento http a https.

az afd rule create \
    --resource-group myRGFDCentral \
    --rule-set-name contosorules \
    --profile-name contosoafd \
    --order 1 \
    --match-variable RequestScheme \
    --operator Equal \
    --match-values HTTP \
    --rule-name "redirect" \
    --action-name "UrlRedirect" \
    --redirect-protocol Https \
    --redirect-type Moved

Adición de una acción o condición a la regla de entrega

Es posible que necesite personalizar aún más la nueva regla de entrega. Puede agregar acciones o condiciones según sea necesario después de la creación. Ejecute az afd rule action add o az afd rule condition add para actualizar la regla.

Agregar una acción

az afd rule action add \
    --resource-group myRGFDCentral \
    --rule-set-name contosorules \
    --profile-name contosoafd \
    --rule-name redirect \
    --action-name "CacheExpiration" \
    --cache-behavior BypassCache

Agregar una condición

az afd rule condition add \
    --resource-group myRGFDCentral \
    --rule-set-name contosorules \
    --profile-name contosoafd \
    --rule-name redirect \
    --match-variable RemoteAddress \
    --operator GeoMatch \
    --match-values "TH"

Limpieza de recursos

Cuando no necesite los recursos para Front Door, elimine ambos grupos de recursos. Al eliminar los grupos de recursos también se elimina Front Door y todos sus recursos relacionados.

Ejecute az group delete:

az group delete \
    --name myRGFDCentral

az group delete \
    --name myRGFDEast