Questa pagina fornisce una panoramica degli URL firmati, che utilizzano le firme per fornire 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 abbia 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 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 rispettiva stringa di query, consentendo così 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 a un utente un URL firmato, che concede l'accesso in lettura, scrittura o eliminazione alla risorsa per un periodo di tempo limitato. La scadenza si specifica al momento di creare l'URL firmato. Chiunque conosca l'URL può accedere alla risorsa fino al raggiungimento della scadenza specificata o fino 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 si spostano 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 consegna a un utente è un passaggio aggiuntivo non necessario. Ti consigliamo invece di prendere in considerazione una progettazione 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 il processo 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 forniva l'accesso in lettura all'oggetto cat.jpeg nel bucket example-bucket. I parametri di ricerca che lo rendono un 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 di base ISO 8601YYYYMMDD'T'HHMMSS'Z'.X-Goog-Expires: la durata di validità dell'URL firmato, misurata in secondi dal valore inX-Goog-Date. In questo esempio, l'URL firmato scade dopo 15 minuti. Il valore di scadenza più lungo è 604800 secondi (7 giorni).X-Goog-SignedHeaders: le intestazioni che dovevano essere incluse in qualsiasi richiesta che utilizzava l'URL firmato.X-Goog-Signature: la stringa di autenticazione che consentiva alle richieste che utilizzavano questo URL firmato di accedere acat.jpeg.
Utilizzo degli URL firmati con i caricamenti ripristinabili
In genere, la creazione di URL firmati per i caricamenti ripristabili non è necessaria,
perché dopo la richiesta di avvio del caricamento, le successive PUT
richieste per caricare i dati dell'oggetto utilizzano un URI di sessione, che funge da
token di autenticazione. Ciò significa che le richieste PUT non utilizzano URL firmati.
Sebbene tu possa 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 di sessione al client per eseguire il caricamento. In questo modo si evita la complessità di far creare un URL firmato al server, nonché la complessità di far gestire l'URL firmato al client e di avviare il caricamento ripristinabile.
Come gli URL firmati, un URI di sessione può essere utilizzato da chiunque lo possieda per caricare i dati. Assicurati di trasmettere l'URI di sessione tramite HTTPS quando lo fornisci a un client.
Considerazioni sugli URL firmati
Quando lavori con gli URL firmati, tieni presente quanto segue:
Gli URL firmati possono essere utilizzati solo per accedere alle risorse Cloud Storage tramite gli endpoint API XML.
Quando specifichi le credenziali, ti consigliamo di identificare il service account utilizzando il suo indirizzo email; tuttavia, è supportato anche l'utilizzo dell'ID del account di servizio.
Richieste canoniche
Gli URL firmati utilizzano le richieste canoniche come parte delle informazioni codificate in
loro X-Goog-Signature parametro della stringa di query. Quando
crei un URL firmato con gli strumenti di Cloud Storage, la richiesta canonica richiesta
viene creata e incorporata automaticamente. Tuttavia, quando
crei un URL firmato con il tuo programma, devi definire tu stesso 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
X-Goog-Credential parametro della stringa di query.
Passaggi successivi
- Crea un URL firmato con gli strumenti di Cloud Storage, come le 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.