Panoramica e flusso di lavoro - Amazon CloudFront

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Panoramica e flusso di lavoro

CloudFront Le funzioni di connessione sono un tipo specializzato di CloudFront funzioni che vengono eseguite durante l'handshake TLS quando un client tenta di stabilire una connessione mTLS. La funzione di connessione può accedere alle informazioni sul certificato del client, ai parametri di configurazione MTLS, ai risultati del controllo della revoca del certificato e all'indirizzo IP del client.

Le funzioni di connessione vengono richiamate dopo aver CloudFront eseguito la convalida standard dei certificati (catena di fiducia, scadenza, verifica della firma), ma possono essere eseguite anche se i controlli di revoca dei certificati falliscono. Ciò consente di implementare una logica personalizzata per la gestione dei certificati revocati o l'aggiunta di criteri di convalida aggiuntivi.

Dopo aver creato e pubblicato una funzione di connessione, assicuratevi di aggiungere un'associazione per il tipo di evento di richiesta di connessione con una distribuzione abilitata per MTLS. In questo modo la funzione viene eseguita ogni volta che un client tenta di stabilire una connessione MTLS con. CloudFront

CloudFront Le funzioni di connessione seguono un ciclo di vita in due fasi che consente di sviluppare e testare le funzioni prima di implementarle in produzione. Questo flusso di lavoro garantisce il corretto funzionamento delle funzioni di connessione prima che influiscano sul traffico in tempo reale.

Fasi della funzione

Le funzioni di connessione esistono in una delle due fasi seguenti:

  • SVILUPPO — Le funzioni in questa fase possono essere modificate, testate e aggiornate. Utilizzate questa fase per scrivere ed eseguire il debug del codice della funzione.

  • LIVE: le funzioni in questa fase sono di sola lettura e gestiscono il traffico di produzione. Non è possibile modificare direttamente le funzioni nella fase LIVE.

Quando si crea una nuova funzione di connessione, questa inizia nella fase DI SVILUPPO. Dopo il test e la convalida, pubblicate la funzione per spostarla nella fase LIVE.

Flusso di lavoro di sviluppo

Segui questo flusso di lavoro per sviluppare e implementare le funzioni di connessione:

  1. Crea: crea una nuova funzione di connessione nella fase di SVILUPPO con il codice e la configurazione iniziali.

  2. Test: utilizza la funzionalità di test per convalidare la funzione con eventi di connessione di esempio prima della distribuzione.

  3. Aggiornamento: modifica il codice e la configurazione della funzione secondo necessità in base ai risultati del test.

  4. Pubblicazione: quando è pronta per la produzione, pubblica la funzione per spostarla dalla fase DI SVILUPPO alla fase LIVE.

  5. Associa: associa la funzione pubblicata alla tua distribuzione abilitata per MTLS per gestire le connessioni live.

Per apportare modifiche a una funzione LIVE, è necessario aggiornare la versione DEVELOPMENT e pubblicarla nuovamente. Questo crea una nuova versione nella fase LIVE.

Differenze rispetto ad altri tipi di funzioni

Le funzioni di connessione differiscono dalle funzioni di richiesta e risposta del visualizzatore in diversi modi importanti:

  • Le funzioni di connessione vengono eseguite dopo l'handshake MTLS, prima che avvenga qualsiasi elaborazione HTTP

  • Le funzioni di connessione hanno accesso alle informazioni del certificato TLS anziché ai dati HTTP request/response

  • Le funzioni di connessione possono solo consentire o negare la connessione, non modificare i dati HTTP

  • Le funzioni di connessione vengono richiamate solo per nuove connessioni TLS, non per il riutilizzo della connessione

  • La ripresa della sessione TLS non è supportata con MTLS per garantire che la convalida del certificato avvenga su ogni connessione

  • Le funzioni di connessione vengono eseguite in aggiunta alle funzioni standard di richiesta e risposta del visualizzatore

  • Le funzioni di connessione vengono associate a livello di distribuzione, anziché a livello di comportamento della cache.

  • Le funzioni di connessione supportano solo il JavaScript runtime 2.0.