Questa pagina fornisce una panoramica degli URL firmati, che utilizzano firme per concedere l'accesso a tempo limitato a una risorsa Cloud Storage specifica. Chiunque sia in possesso dell'URL firmato può utilizzarlo finché è attivo, indipendentemente dal fatto che disponga di un account valido. Per scoprire come creare un URL firmato, consulta Processo di firma V4 con strumenti di Cloud Storage e Processo di firma V4 con il tuo programma. Per scoprire altri modi per controllare l'accesso a bucket e oggetti, consulta la panoramica del controllo dell'accesso.
Panoramica
Un URL firmato è un URL che fornisce autorizzazioni e tempo limitati per effettuare una richiesta. Gli URL firmati contengono informazioni di autenticazione, inclusa una firma, nella stringa di query, il che consente agli utenti senza credenziali di eseguire azioni specifiche su una risorsa.
Quando generi un URL firmato, devi specificare un account con autorizzazioni sufficienti per effettuare la richiesta che l'URL firmato effettuerà.
Nella maggior parte dei casi, l'account è un service account.
Nei casi in cui crei il tuo programma per generare URL firmati, è possibile utilizzare un account utente, se ha una chiave HMAC associata.
Dopo aver generato un URL firmato, chiunque lo possieda può utilizzarlo per eseguire azioni specifiche, ad esempio leggere un oggetto, entro un periodo di tempo specificato.
Quando è consigliabile utilizzare un URL firmato?
In alcuni scenari, potresti non voler richiedere agli utenti di avere un proprio account per accedere a Cloud Storage, ma vuoi comunque controllare l'accesso utilizzando la logica specifica dell'applicazione. Il modo tipico per risolvere questo caso d'uso è fornire un URL firmato a un utente, che gli concede l'accesso in lettura, scrittura o eliminazione a quella risorsa per un periodo di tempo limitato. Specifichi un tempo di scadenza quando crei l'URL firmato. Chiunque conosca l'URL può accedere alla risorsa fino al raggiungimento dell'ora di scadenza dell'URL o alla rotazione della chiave utilizzata per firmare l'URL.
Gli utilizzi più comuni degli URL firmati sono i caricamenti e i download, perché in queste richieste i dati degli oggetti vengono spostati tra i richiedenti e Cloud Storage. Nella maggior parte degli altri casi, ad esempio la copia, la composizione o l'eliminazione di oggetti o la modifica dei metadati, la creazione di un URL firmato e la sua condivisione con qualcuno è un passaggio aggiuntivo non necessario. Ti consigliamo invece di adottare un design in cui l'entità responsabile della creazione dell'URL firmato effettua direttamente la richiesta desiderata a Cloud Storage.
Esempio di URL firmato
Di seguito è riportato un esempio di URL firmato creato seguendo la procedura di firma V4 con l'autenticazione del account di servizio:
https://storage.googleapis.com/example-bucket/cat.jpeg?X-Goog-Algorithm= GOOG4-RSA-SHA256&X-Goog-Credential=example%40example-project.iam.gserviceaccount.com %2F20181026%2Fus-central1%2Fstorage%2Fgoog4_request&X-Goog-Date=20181026T18 1309Z&X-Goog-Expires=900&X-Goog-SignedHeaders=host&X-Goog-Signature=247a2aa45f16 9edf4d187d54e7cc46e4731b1e6273242c4f4c39a1d2507a0e58706e25e3a85a7dbb891d62afa849 6def8e260c1db863d9ace85ff0a184b894b117fe46d1225c82f2aa19efd52cf21d3e2022b3b868dc c1aca2741951ed5bf3bb25a34f5e9316a2841e8ff4c530b22ceaa1c5ce09c7cbb5732631510c2058 0e61723f5594de3aea497f195456a2ff2bdd0d13bad47289d8611b6f9cfeef0c46c91a455b94e90a 66924f722292d21e24d31dcfb38ce0c0f353ffa5a9756fc2a9f2b40bc2113206a81e324fc4fd6823 a29163fa845c8ae7eca1fcf6e5bb48b3200983c56c5ca81fffb151cca7402beddfc4a76b13344703 2ea7abedc098d2eb14a7
Questo URL firmato ha fornito l'accesso in lettura all'oggetto cat.jpeg
nel bucket
example-bucket
. I parametri di ricerca che rendono questo URL firmato sono:
X-Goog-Algorithm
: L'algoritmo utilizzato per firmare l'URL.X-Goog-Credential
: Informazioni sulle credenziali utilizzate per creare l'URL firmato.X-Goog-Date
: la data e l'ora in cui l'URL firmato è diventato utilizzabile, nel formato ISO 8601 di baseYYYYMMDD'T'HHMMSS'Z'
.X-Goog-Expires
: il periodo di tempo in cui l'URL firmato è rimasto valido, misurato in secondi dal valore inX-Goog-Date
. In questo esempio, l'URL firmato scade tra 15 minuti. Il valore di scadenza più lungo è 604.800 secondi (7 giorni).X-Goog-SignedHeaders
: Intestazioni che dovevano essere incluse in qualsiasi richiesta che utilizzava l'URL firmato.X-Goog-Signature
: La stringa di autenticazione che ha consentito alle richieste che utilizzano questo URL firmato di accedere acat.jpeg
.
Utilizzo degli URL firmati con caricamenti ripristinabili
In genere, la creazione di URL firmati per i caricamenti ripristinabili non è necessaria,
perché dopo la richiesta di avvio del caricamento, le successive richieste PUT
di caricamento dei dati dell'oggetto utilizzano un URI di sessione, che funge da
token di autenticazione. Ciò significa che le richieste PUT
non utilizzano URL firmati.
Anche se puoi creare e utilizzare un URL firmato per la richiesta POST
iniziale per avviare il caricamento, nella maggior parte dei casi il server può avviare il caricamento ripristinabile. Il server invia quindi l'URI della sessione al client per eseguire il caricamento. In questo modo si evita la complessità di far creare al server un URL firmato, nonché la complessità di far gestire al client l'URL firmato e avviare il caricamento ripristinabile.
Come gli URL firmati, un URI di sessione può essere utilizzato da chiunque lo possieda per caricare dati. Assicurati di trasmettere l'URI della sessione tramite HTTPS quando lo fornisci a un client.
Considerazioni sugli URL firmati
Quando utilizzi gli URL firmati, tieni presente quanto segue:
Gli URL firmati possono essere utilizzati solo per accedere alle risorse Cloud Storage tramite endpoint API XML.
Quando specifichi le credenziali, ti consigliamo di identificare il service account utilizzando il relativo indirizzo email. Tuttavia, è supportato anche l'utilizzo dell'ID account di servizio.
Richieste canoniche
Gli URL firmati utilizzano le richieste canoniche come parte delle informazioni codificate nel
parametro della stringa di query X-Goog-Signature
. Quando crei un URL firmato con gli strumenti Cloud Storage, la richiesta canonica richiesta viene creata e incorporata automaticamente. Tuttavia, quando crei un URL firmato con il tuo programma, devi definire autonomamente la richiesta canonica e utilizzarla per creare una firma.
Ambito delle credenziali
L'ambito delle credenziali viene visualizzato sia nella stringa da firmare sia nel
parametro della stringa di query X-Goog-Credential
.
Passaggi successivi
- Crea un URL firmato con gli strumenti Cloud Storage, ad esempio librerie client o Google Cloud CLI.
- Crea un URL firmato con il tuo programma.
- Scopri di più sulle richieste canoniche.
- Scopri di più sulle firme.