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.
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.
-
Accedi all'amministratore.
-
Fai clic su Archivi > Impostazioni > Configurazione > Avanzate > Sistema.
-
Espandi Cache a pagina intera > Configurazione rapida > ACL Edge.
-
Crea il contenitore ACL:
-
Fare clic su Aggiungi ACL.
-
Nella pagina Contenitore ACL immettere un nome ACL—
allowlist
. -
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.
-
-
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.
-
-
Fai clic su Salva configurazione.
-
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 snippetrecv
che aggiunge il codice del snippet alla subroutinevcl_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'ACLallowlist
. Se l'indirizzo non corrisponde, la richiesta viene bloccata con un errore403 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:
-
Aggiungi lo snippet VCL personalizzato dall'amministratore. Questo metodo è consigliato se puoi accedere all’Admin. (Richiede il modulo CDN Fastly per il Magento 2 versione 1.2.58 o successiva.)
-
Salva l'esempio di codice JSON in un file (ad esempio,
allowlist.json
) e caricalo utilizzando l'API Fastly. Utilizza questo metodo se non riesci ad accedere all’Admin.
Aggiungere lo snippet VCL personalizzato
-
Accedi all'amministratore.
-
Fai clic su Archivi > Impostazioni > Configurazione > Avanzate > Sistema.
-
Espandi Cache a pagina intera > Configurazione rapida > Snippet VCL personalizzati.
-
Fare clic su Crea snippet personalizzato.
-
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";}
-
-
Fai clic su Crea per generare il file snippet VCL con il modello nome
type_priority_name.vcl
, ad esempiorecv_5_allowlist.vcl
-
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.
-
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
-
Accedi all'amministratore.
-
Fai clic su Archivi > Impostazioni > Configurazione > Avanzate > Sistema.
-
Espandi Cache a pagina intera > Configurazione rapida > Snippet VCL personalizzati.
-
Nella colonna Azione fare clic sull'icona delle impostazioni accanto al frammento da modificare.
-
Dopo il ricaricamento della pagina, fai clic su Carica VCL in Fastly nella sezione Fastly Configuration.
-
Al termine del caricamento, aggiorna la cache in base alla notifica nella parte superiore della pagina.
Elimina lo snippet VCL personalizzato
-
Accedi all'amministratore.
-
Fai clic su Archivi > Impostazioni > Configurazione > Avanzate > Sistema.
-
Espandi Cache a pagina intera > Configurazione rapida > Snippet VCL personalizzati.
-
Nella colonna Azione, fai clic sull'icona del cestino accanto allo snippet da eliminare.
-
Nella finestra modale successiva, fai clic su DELETE e attiva una nuova versione.