Specifica dei firmatari che possono creare URL firmati e cookie firmati - 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à.

Specifica dei firmatari che possono creare URL firmati e cookie firmati

Per creare URL firmati o cookie firmati, hai bisogno di un firmatario. Un firmatario è un gruppo di chiavi attendibile in cui CloudFront crei o un AWS account che contiene una coppia di CloudFront chiavi. Ti consigliamo di utilizzare gruppi di chiavi attendibili con URL firmati e cookie firmati. Per ulteriori informazioni, consulta Scelta tra gruppi di chiavi attendibili (scelta consigliata) e account AWS.

Il firmatario ha due scopi:

  • Non appena aggiungi il firmatario alla tua distribuzione, CloudFront inizia a richiedere che gli spettatori utilizzino URL firmati o cookie firmati per accedere ai tuoi file.

  • Quando crei URL o cookie firmati, utilizzi la chiave privata della coppia di chiavi del firmatario per firmare una parte dell'URL o del cookie. Quando qualcuno richiede un file con restrizioni, CloudFront confronta la firma nell'URL o nel cookie con l'URL o il cookie non firmato, per verificare che non sia stata manomessa. CloudFront verifica inoltre che l'URL o il cookie siano validi, vale a dire, ad esempio, che la data e l'ora di scadenza non siano trascorse.

Quando specifichi un firmatario, si specificano indirettamente anche i file che richiedono URL firmati o cookie firmati aggiungendo il firmatario a un comportamento della cache. Se la tua distribuzione ha un solo comportamento cache, i visualizzatori devono utilizzare gli URL o i cookie firmati per accedere a qualsiasi file associato alla distribuzione. Se crei più comportamenti cache e aggiungi firmatari attendibili ad alcuni comportamenti cache e non ad altri, puoi richiedere che i visualizzatori utilizzino URL o cookie firmati per accedere ad alcuni file e non ad altri.

Per specificare i firmatari (le chiavi private) autorizzati a creare URL firmati o cookie firmati e per aggiungere i firmatari alla tua CloudFront distribuzione, esegui le seguenti operazioni:

  1. Decidi se utilizzare un gruppo di chiavi attendibili o un account AWS come firmatario. Ti consigliamo di utilizzare un gruppo di chiavi attendibile. Per ulteriori informazioni, consulta Scelta tra gruppi di chiavi attendibili (scelta consigliata) e account AWS.

  2. Per il firmatario scelto nel passaggio 1, crea una coppia di chiavi pubbliche-private. Per ulteriori informazioni, consulta Creazione di coppie di chiavi per i firmatari.

  3. Se utilizzi .NET o Java per creare URL o cookie firmati, riformatta la chiave privata. Per ulteriori informazioni, consulta Riformattazione della chiave privata (solo .NET e Java).

  4. Nella distribuzione per la quale stai creando URL firmati o cookie firmati, specifica il firmatario. Per ulteriori informazioni, consulta Aggiunta di un firmatario a una distribuzione.

Scelta tra gruppi di chiavi attendibili (scelta consigliata) e account AWS

Per utilizzare URL firmati o cookie firmati, hai bisogno di un firmatario. Un firmatario è un gruppo di chiavi attendibile in cui CloudFront crei o un AWS account che contiene una coppia di CloudFront chiavi. Ti consigliamo di utilizzare i gruppi di chiavi attendibili per i seguenti motivi:

  • Con i gruppi di CloudFront chiavi, non è necessario utilizzare l'AWSaccount utente root per gestire le chiavi pubbliche degli URL CloudFront firmati e dei cookie firmati. AWSle migliori pratiche consigliano di non utilizzare l'utente root quando non è necessario.

  • Con i gruppi di CloudFront chiavi, puoi gestire chiavi pubbliche, gruppi di chiavi e firmatari affidabili utilizzando l' CloudFront API. Puoi utilizzare l'API per automatizzare la creazione e la rotazione delle chiavi. Quando si utilizza l'utente AWS root, è necessario utilizzare il per AWS Management Console gestire le coppie di CloudFront chiavi, quindi non è possibile automatizzare il processo.

  • Poiché puoi gestire i gruppi di chiavi con l' CloudFront API, puoi anche utilizzare le politiche di autorizzazione AWS Identity and Access Management (IAM) per limitare ciò che i diversi utenti sono autorizzati a fare. Ad esempio, puoi consentire agli utenti di caricare chiavi pubbliche, ma non eliminarle. In alternativa, puoi consentire agli utenti di eliminare le chiavi pubbliche, ma solo quando vengono soddisfatte determinate condizioni, ad esempio l'utilizzo dell'autenticazione a più fattori, l'invio della richiesta da una determinata rete o l'invio della richiesta entro un determinato intervallo di data e ora.

  • Con i gruppi di CloudFront chiavi, puoi associare un numero maggiore di chiavi pubbliche alla tua CloudFront distribuzione, offrendoti una maggiore flessibilità nel modo in cui utilizzi e gestisci le chiavi pubbliche. Per impostazione predefinita, puoi associare fino a quattro gruppi di chiavi a una singola distribuzione e disporre di un massimo di cinque chiavi pubbliche in un gruppo di chiavi.

    Quando si utilizza l'utente root dell'AWSaccount per gestire le coppie di CloudFront chiavi, è possibile avere solo fino a due coppie di CloudFront chiavi attive per AWS account.

Creazione di coppie di chiavi per i firmatari

Ogni firmatario utilizzato per creare URL CloudFront firmati o cookie firmati deve disporre di una coppia di key pair pubblica-privata. Il firmatario utilizza la propria chiave privata per firmare l'URL o i cookie e CloudFront utilizza la chiave pubblica per verificare la firma.

Il modo in cui si crea una coppia di chiavi dipende dal fatto che si utilizzi un gruppo di chiavi attendibile come firmatario (consigliato) o una coppia di CloudFront chiavi. Per ulteriori informazioni, consultare le sezioni indicate di seguito. La coppia di chiavi creata deve soddisfare i seguenti requisiti:

  • Deve essere una coppia di chiavi SSH-2 RSA.

  • Deve essere in formato PEM codificato in base64.

  • Deve essere una coppia di chiavi a 2048 bit.

Per proteggere le applicazioni, ti consigliamo di ruotare periodicamente le coppie di chiavi. Per ulteriori informazioni, consulta Rotazione di coppie di chiavi.

Crea una coppia di chiavi per un gruppo di chiavi attendibile (scelta consigliata)

Per creare una coppia di chiavi per un gruppo di chiavi attendibile, attieniti alla seguente procedura:

  1. Creare la coppia di chiavi pubbliche-private.

  2. Carica la chiave pubblica su CloudFront.

  3. Aggiungi la chiave pubblica a un gruppo di CloudFront chiavi.

Per ulteriori informazioni, consulta le procedure seguenti.

Per creare una coppia di chiavi
Nota

I passaggi seguenti utilizzano OpenSSL come esempio di un modo per creare una coppia di chiavi. Esistono molti altri modi per creare una coppia di chiavi RSA.

  1. Il comando di esempio seguente utilizza OpenSSL per generare una coppia di chiavi RSA con una lunghezza di 2048 bit e salvarla nel file denominato private_key.pem.

    openssl genrsa -out private_key.pem 2048
  2. Il file risultante contiene la chiave pubblica e quella privata. Il comando di esempio seguente estrae la chiave pubblica dal file denominato private_key.pem.

    openssl rsa -pubout -in private_key.pem -out public_key.pem

    Puoi caricare la chiave pubblica (nel file public_key.pem) in un secondo momento, nella procedura seguente.

Per caricare la chiave pubblica su CloudFront
  1. Accedi a AWS Management Console e apri la CloudFront console all'indirizzohttps://console.aws.amazon.com/cloudfront/v4/home.

  2. Nel menu di navigazione, scegli Public keys (Chiavi pubbliche).

  3. Scegli Add public key (Aggiungi chiave pubblica).

  4. Nella finestra Add public key (Aggiungi chiave pubblica) effettua le operazioni seguenti:

    1. In Key name (Nome chiave), digita un nome per identificare la chiave pubblica.

    2. In Key value (Valore chiave), incolla la chiave pubblica. Se hai seguito i passaggi descritti nella procedura precedente, la chiave pubblica si trova nel file denominato public_key.pem. Per copiare e incollare il contenuto della chiave pubblica, puoi procedere come segue:

      • Usa il comando cat sulla riga di comando macOS o Linux, in questo modo:

        cat public_key.pem

        Copia l'output di quel comando, quindi incollalo nel campo Key value (Valore chiave).

      • Apri il public_key.pem file con un editor di testo semplice come Notepad (su Windows) o (su macOS). TextEdit Copia il contenuto del file, quindi incollalo nel campo Key value (Valore chiave).

    3. (Facoltativo) Per Comment (Commento), aggiungi un commento per descrivere la chiave pubblica.

    Al termine, scegli Add (Aggiungi).

  5. Registra l'ID della chiave pubblica. Verrà usato in seguito quando si creano URL firmati o cookie firmati, come valore del campo Key-Pair-Id.

Per aggiungere la chiave pubblica a un gruppo di chiavi
  1. Apri la console all'indirizzo. CloudFront https://console.aws.amazon.com/cloudfront/v4/home

  2. Nel menu di navigazione, scegli Key groups (Gruppi di chiavi).

  3. Scegli Add key group (Aggiungi gruppo di chiavi).

  4. Nella pagina Create key group (Crea gruppo di chiavi) effettua le operazioni seguenti:

    1. In Key group name (Nome gruppo di chiavi), digita un nome per identificare il gruppo di chiavi.

    2. (Facoltativo) Per Comment (Commento), digita un commento per descrivere il gruppo di chiavi.

    3. Per Public keys (Chiavi pubbliche), seleziona la chiave pubblica da aggiungere al gruppo di chiavi, quindi scegli Add (Aggiungi). Ripeti questo passaggio per ogni chiave pubblica che desideri aggiungere al gruppo di chiavi.

  5. Scegli Create key group (Crea gruppo di chiavi).

  6. Registra il nome del gruppo di chiavi. La si usa in seguito per associare il gruppo di chiavi a un comportamento della cache in una CloudFront distribuzione. (Nell' CloudFront API, si utilizza l'ID del gruppo di chiavi per associare il gruppo di chiavi a un comportamento della cache.)

Importante

Ti consigliamo di creare una chiave pubblica per un gruppo di chiavi attendibili invece della seguente procedura. Circa il modo consigliato per creare chiavi pubbliche per gli URL firmati e i cookie firmati, consulta Crea una coppia di chiavi per un gruppo di chiavi attendibile (scelta consigliata).

È possibile creare una CloudFront key pair nei seguenti modi:

  • Crea una coppia di chiavi nella AWS Management Console e scarica la chiave privata. Segui la procedura descritta di seguito.

  • Crea un coppia di chiavi RSA utilizzando un'applicazione, ad esempio OpenSSL, e poi carica la chiave pubblica nella AWS Management Console. Per ulteriori informazioni sulla creazione di una coppia di chiavi RSA, consulta Crea una coppia di chiavi per un gruppo di chiavi attendibile (scelta consigliata).

Per creare coppie di CloudFront chiavi in AWS Management Console
  1. Accedi alla AWS Management Console utilizzando le credenziali dell'utente root dell'account AWS.

    Importante

    Gli utenti IAM non possono creare coppie di CloudFront chiavi. Devi accedere utilizzando le credenziali utente root per creare coppie di chiavi.

  2. Scegli il nome dell'account, quindi scegli My Security Credentials (Le mie credenziali di sicurezza).

  3. Scegli coppie di CloudFront chiavi.

  4. Conferma di non avere più di una coppia di chiavi attiva. Non puoi creare una coppia di chiavi se hai già due coppie di chiavi attive.

  5. Scegli Create New Key Pair (Crea nuova coppia di chiavi).

    Nota

    Puoi anche scegliere di creare la tua coppia di chiavi e caricare la chiave pubblica. CloudFront le coppie di chiavi supportano chiavi a 1024, 2048 o 4096 bit.

  6. Nella finestra di dialogo Create Key Pair (Crea coppia di chiavi) scegli Download Private Key File (Scarica il file della chiave privata), quindi salva il file nel computer.

    Importante

    Salva la chiave privata per la tua coppia di CloudFront chiavi in una posizione sicura e imposta le autorizzazioni sul file in modo che solo gli amministratori desiderati possano leggerlo. Se qualcuno ottiene la chiave privata, può generare URL e cookie firmati validi e scaricare il tuo contenuto. Non è possibile recuperare nuovamente la chiave privata, quindi se la si perde o la si elimina, è necessario creare una nuova coppia di CloudFront chiavi.

  7. Registra l'ID per la tua coppia di chiavi. (NellaAWS Management Console , questo ID è detto ID chiave di accesso.) Lo utilizzerai nella creazione di URL o cookie firmati.

Riformattazione della chiave privata (solo .NET e Java)

Se utilizzi .NET o Java per creare URL o cookie firmati, non puoi utilizzare la chiave privata della coppia di chiavi nel formato PEM di default per creare la firma: Effettua invece le seguenti operazioni:

  • .NET Framework: converti la chiave privata nel formato XML utilizzato da .NET Framework. Sono disponibili vari strumenti per eseguire la conversione.

  • Java: converti la chiave privata nel formato DER. Un modo per farlo è con il seguente comando OpenSSL. Nel comando seguente, private_key.pem è il nome del file che contiene la chiave privata con formattazione PEM e private_key.der è il nome del file che contiene la chiave privata con formattazione DER dopo l'esecuzione del comando.

    openssl pkcs8 -topk8 -nocrypt -in private_key.pem -inform PEM -out private_key.der -outform DER

    Per garantire un corretto funzionamento del codificatore, aggiungi il file JAR per le API di crittografia Bouncy Castle Java al tuo progetto e quindi aggiungi il provider Bouncy Castle.

Aggiunta di un firmatario a una distribuzione

Un firmatario è il gruppo di chiavi affidabile (consigliato) o la coppia di CloudFront chiavi che può creare URL firmati e cookie firmati per una distribuzione. Per utilizzare URL firmati o cookie firmati con una CloudFront distribuzione, devi specificare un firmatario.

I firmatari sono associati ai comportamenti cache. Ciò ti consente di richiedere URL o cookie firmati solo per alcuni dei file in una distribuzione. Una distribuzione richiede URL o cookie firmati solo per i file associati ai comportamenti cache corrispondenti.

Analogamente, un firmatario può firmare solo URL o cookie per i file associati ai comportamenti cache corrispondenti. Ad esempio, se disponi di un firmatario per un comportamento cache e di un altro firmatario per un altro comportamento cache, nessuno dei due firmatari attendibili può creare URL o cookie firmati per file associati all'altro comportamento cache.

Importante

Prima di aggiungere un firmatario alla distribuzione, effettua le seguenti operazioni:

  • Definisci con attenzione i pattern di percorso nei comportamenti cache e la sequenza dei comportamenti cache in modo da non concedere agli utenti l'accesso non intenzionale al contenuto o impedisca loro di accedere ai contenuti che desideri essere disponibili per tutti.

    Ad esempio, supponiamo che una richiesta corrisponda al modello di percorso per due comportamenti cache. Il primo comportamento cache, contrariamente al secondo, non richiede URL o cookie firmati. Gli utenti saranno in grado di accedere ai file senza utilizzare URL o cookie firmati in quanto CloudFront elabora il comportamento cache associato alla prima corrispondenza.

    Per ulteriori informazioni sui modelli di percorso, consulta Modello di percorso.

  • Per una distribuzione che stai già utilizzando per distribuire contenuti, assicurati di essere pronto per iniziare a generare URL firmati e cookie firmati prima di aggiungere un firmatario. Quando aggiungi un firmatario, CloudFront rifiuta le richieste che non includono un URL firmato o un cookie firmato valido.

Puoi aggiungere firmatari alla tua distribuzione utilizzando la CloudFront console o l'API. CloudFront

Aggiungere un firmatario a una distribuzione utilizzando la console CloudFront

La procedura seguente illustra come aggiungere un gruppo di chiavi attendibili come firmatario. Puoi anche aggiungere un account AWS come firmatario attendibile, ma non è consigliabile.

Per aggiungere un firmatario a una distribuzione utilizzando la console
  1. Registra l'ID gruppo di chiavi del gruppo di chiavi che desideri utilizzare come firmatario attendibile. Per ulteriori informazioni, consulta Crea una coppia di chiavi per un gruppo di chiavi attendibile (scelta consigliata).

  2. Apri la CloudFront console all'indirizzohttps://console.aws.amazon.com/cloudfront/v4/home.

  3. Scegli la distribuzione di cui desideri proteggere i file con URL firmati o cookie firmati.

    Nota

    Per aggiungere un firmatario a una nuova distribuzione, specifica le stesse impostazioni descritte nel passaggio 6 per la creazione della distribuzione.

  4. Scegli la scheda Behaviors (Comportamenti).

  5. Seleziona il comportamento cache il cui modello di percorso corrisponde ai file che desideri proteggere con URL firmati o cookie firmati, quindi scegli Edit (Modifica).

  6. Nella pagina Edit Behavior (Modifica comportamento) effettua le operazioni seguenti:

    1. Per Restrict Viewer Access (Use Signed URLs or Signed Cookies) (Limita accesso visualizzatore (usa URL o cookie firmati)), seleziona Yes (Sì).

    2. Per Trusted Key Groups or Trusted Signer (Gruppi di chiavi attendibili o Firmatari attendibili), scegli Trusted Key Groups (Gruppi di chiavi attendibili)

    3. Per Trusted Key Groups (Gruppi di chiavi attendibili), scegli il gruppo di chiavi da aggiungere, quindi scegli Add (Aggiungi). Ripeti l'operazione se desideri aggiungere più di un gruppo di chiavi.

  7. Scegli Yes, Edit (Sì, Modifica) per aggiornare il comportamento cache.

Aggiungere un firmatario a una distribuzione utilizzando l'API CloudFront

Puoi utilizzare l' CloudFront API per aggiungere un gruppo di chiavi attendibile come firmatario. Puoi aggiungere un firmatario a una distribuzione esistente o a una nuova distribuzione. In entrambi i casi, specifica i valori nell'elemento TrustedKeyGroups.

Puoi anche aggiungere un account AWS come firmatario attendibile, ma non è consigliabile.

Consulta i seguenti argomenti nell'Amazon CloudFront API Reference:

Rotazione di coppie di chiavi

Ti consigliamo di ruotare periodicamente (modificare) le coppie di chiavi per gli URL e i cookie firmati. Per ruotare le coppie di chiavi che utilizzi per creare URL o cookie firmati senza invalidare URL o cookie non ancora scaduti, procedi come segue:

  1. Crea una nuova coppia di chiavi e aggiungi la chiave pubblica a un gruppo di chiavi. Per ulteriori informazioni, consulta Crea una coppia di chiavi per un gruppo di chiavi attendibile (scelta consigliata).

  2. Se nel passaggio precedente hai creato un nuovo gruppo di chiavi, aggiungi il gruppo di chiavi alla distribuzione come firmatario.

    Importante

    Non rimuovere le chiavi pubbliche esistenti dal gruppo di chiavi o i gruppi di chiavi dalla distribuzione. Aggiungi solo nuovi elementi.

  3. Aggiorna la tua applicazione per creare firme utilizzando la chiave privata della nuova coppia di chiavi. Verifica che gli URL firmati o i cookie firmati con le nuove chiavi private funzionino.

  4. Attendi che la data di scadenza sia trascorsa negli URL o cookie che sono stati firmati utilizzando la chiave privata precedente. Quindi rimuovi la vecchia chiave pubblica dal gruppo di chiavi. Se hai creato un nuovo gruppo di chiavi nel passaggio 2, rimuovi il vecchio gruppo di chiavi dalla distribuzione.