VCL personalizzato per consentire le richieste

Puoi utilizzare un elenco Fastly Edge ACL con uno snippet di codice VCL personalizzato per filtrare le richieste in ingresso e consentire l’accesso per indirizzo IP. L'elenco ACL specifica gli indirizzi IP da consentire.

Crea un inserisco nell'elenco Consentiti di per limitare l’accesso all’ambiente di staging in modo che siano consentite solo le richieste da indirizzi IP specifici per sviluppatori interni e servizi esterni approvati. Puoi anche creare un inserisco nell'elenco Consentiti di per proteggere l’accesso all’amministratore negli ambienti di staging e produzione.

Nell'esempio seguente viene illustrato come utilizzare uno snippet VCL personalizzato con un elenco di controllo di accesso Fastly per proteggere l'accesso all'amministratore per un ambiente di progetto Adobe Commerce su infrastruttura cloud. Quando aggiungi lo snippet VCL personalizzato all’ambiente Cloud, Fastly consente solo le richieste di indirizzi IP inclusi nell’ACL.

TIP
Per gli ambienti di gestione temporanea e integrazione che non devono essere accessibili pubblicamente, utilizzare l'opzione di controllo dell'accesso HTTP disponibile in Cloud Console per gestire l'accesso all'intero sito in base all'indirizzo IP.

Prerequisiti:

  • L’ambiente deve essere configurato per utilizzare la rete CDN Fastly. Vedere Configurare Fastly Services.

  • Assicurati di eseguire la versione più recente del modulo CDN Fastly per il Magento 2. Consulta Aggiornare il modulo Fastly.

  • Verifica la configurazione dell’ambiente per il servizio Fastly. Vedi Controlla Fastly caching.

  • Per accedere agli ambienti di staging e produzione è necessario disporre delle credenziali di amministratore.

  • Elenco di indirizzi IP client da includere nel inserisco nell'elenco Consentiti di

Creare un ACL di Edge per consentire gli indirizzi IP client

Gli elenchi di indirizzi IP creati dagli ACL di Edge consentono di gestire l’accesso al sito. In questo esempio, puoi creare un ACL di Edge e aggiungere l’elenco di indirizzi IP client autorizzati ad accedere all’Admin per l’ambiente del progetto.

  1. Accedi all'amministratore.

  2. Fai clic su Archivi > Impostazioni > Configurazione > Avanzate > Sistema.

  3. Espandi Cache a pagina intera > Configurazione rapida > ACL Edge.

  4. Crea il contenitore ACL:

    • Fare clic su Aggiungi ACL.

    • Nella pagina Contenitore ACL immettere un nome ACLallowlist.

    • Seleziona Attiva dopo la modifica per distribuire le modifiche alla versione della configurazione del servizio Fastly che stai modificando.

    • Fai clic su Carica per allegare l'ACL alla configurazione del servizio Fastly.

  5. Aggiungi l’elenco di indirizzi IP consentiti per accedere all’Admin:

    • Fare clic sull'icona Impostazioni per l'ACL allowlist.

    • Aggiungi e salva il valore IP per ogni indirizzo IP del client.

    • Fai clic su Annulla per tornare alla pagina di configurazione del sistema.

  6. Fai clic su Salva configurazione.

  7. Aggiorna la cache in base alla notifica nella parte superiore della pagina.

Crea lo snippet VCL personalizzato per proteggere l’accesso amministratore

Il seguente codice snippet VCL personalizzato (formato JSON) mostra la logica per filtrare le richieste all'amministratore e consentire l'accesso se l'indirizzo IP del client corrisponde a un indirizzo nell'ACL allowlist.

{
  "name": "allowlist",
  "dynamic": "0",
  "type": "recv",
  "priority": "5",
  "content": "if ((req.url ~ \"^/admin\") && !(client.ip ~ allowlist) && !req.http.Fastly-FF) { error 403 \"Forbidden\"; }"
}

Prima di creare uno snippet personalizzato da questo esempio, controlla i valori per determinare se è necessario apportare modifiche. Immettere quindi ogni valore nei rispettivi campi, ad esempio type nel campo Tipo e content nel campo Contenuto.

  • name — Nome dello snippet VCL. Per questo esempio, allowlist.

  • priority — Determina quando viene eseguito lo snippet VCL. La priorità è 5 per l'esecuzione immediata e verificare se le richieste dell'amministratore provengono da un indirizzo IP consentito. Il frammento viene eseguito prima che a uno dei frammenti VCL di Magento predefiniti (magentomodule_*) sia assegnata una priorità di 50. Impostare la priorità per ogni frammento personalizzato su un valore maggiore o minore di 50 a seconda di quando si desidera eseguire il frammento. I frammenti con numeri di priorità inferiore vengono eseguiti per primi.

  • type — Specifica una posizione in cui inserire lo snippet nel codice VCL con versione. Questo VCL è un tipo di snippet recv che aggiunge il codice del snippet alla subroutine vcl_recv sotto il codice VCL Fastly predefinito e sopra qualsiasi oggetto.

  • content — Frammento di codice VCL da eseguire. In questo esempio, il codice filtra le richieste all'amministratore e consente l'accesso se l'indirizzo IP del client corrisponde a un indirizzo nell'ACL allowlist. Se l'indirizzo non corrisponde, la richiesta viene bloccata con un errore 403 Forbidden.

    Se l'URL per l'amministratore è stato modificato, sostituire il valore di esempio /admin con l'URL per l'ambiente. Ad esempio, /company-admin.

Nell'esempio di codice, la condizione !req.http.Fastly-FF è importante quando si utilizza Origin Shielding. Non rimuovere o modificare questo codice.

Dopo aver esaminato e aggiornato il codice per l’ambiente, utilizza uno dei metodi seguenti per aggiungere lo snippet VCL personalizzato alla configurazione del servizio Fastly:

Aggiungere lo snippet VCL personalizzato

  1. Accedi all'amministratore.

  2. Fai clic su Archivi > Impostazioni > Configurazione > Avanzate > Sistema.

  3. Espandi Cache a pagina intera > Configurazione rapida > Snippet VCL personalizzati.

  4. Fare clic su Crea snippet personalizzato.

  5. Aggiungi i valori dello snippet VCL:

    • Nome - allowlist

    • Tipo - recv

    • Priorità - 5

    • Aggiungi il contenuto dello snippet VCL:

      code language-conf
      if ((req.url ~ "^/admin") && !(client.ip ~ allowlist) && !req.http.Fastly-FF) { error 403 "Forbidden";}
      
  6. Fai clic su Crea per generare il file snippet VCL con il modello nome type_priority_name.vcl, ad esempio recv_5_allowlist.vcl

  7. Dopo il ricaricamento della pagina, fare clic su Carica VCL in Fastly nella sezione Fastly Configuration per aggiungere il file alla configurazione del servizio Fastly.

  8. Al termine del caricamento, aggiorna la cache in base alla notifica nella parte superiore della pagina.

Convalida infine la versione aggiornata del codice VCL durante il processo di caricamento. Se la convalida non riesce, modifica lo snippet VCL personalizzato per risolvere il problema. Quindi, carica nuovamente il file VCL.

Modificare lo snippet VCL personalizzato

  1. Accedi all'amministratore.

  2. Fai clic su Archivi > Impostazioni > Configurazione > Avanzate > Sistema.

  3. Espandi Cache a pagina intera > Configurazione rapida > Snippet VCL personalizzati.

    Gestione snippet VCL personalizzati

  4. Nella colonna Azione fare clic sull'icona delle impostazioni accanto al frammento da modificare.

  5. Dopo il ricaricamento della pagina, fai clic su Carica VCL in Fastly nella sezione Fastly Configuration.

  6. Al termine del caricamento, aggiorna la cache in base alla notifica nella parte superiore della pagina.

WARNING
L'opzione dell'interfaccia utente Snippet VCL personalizzati mostra solo i frammenti aggiunti tramite l'amministratore Adobe Commerce. Se aggiungi snippet utilizzando l'API Fastly, utilizza l'API per gestirli.

Elimina lo snippet VCL personalizzato

  1. Accedi all'amministratore.

  2. Fai clic su Archivi > Impostazioni > Configurazione > Avanzate > Sistema.

  3. Espandi Cache a pagina intera > Configurazione rapida > Snippet VCL personalizzati.

    Gestione snippet VCL personalizzati

  4. Nella colonna Azione, fai clic sull'icona del cestino accanto allo snippet da eliminare.

  5. Nella finestra modale successiva, fai clic su DELETE e attiva una nuova versione.

WARNING
L'opzione dell'interfaccia utente Snippet VCL personalizzati mostra solo i frammenti aggiunti tramite l'amministratore Adobe Commerce. Se aggiungi snippet utilizzando l'API Fastly, utilizza l'API per gestirli.
recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26