Questa pagina fornisce una panoramica degli URL firmati, che offrono accesso limitato nel tempo risorsa di Cloud Storage specifica. Chiunque sia in possesso di URL può utilizzarlo mentre è attivo, a prescindere dal fatto che abbia o meno un . Per scoprire come creare un URL firmato, visita la pagina Processo di firma V4 con gli strumenti di Cloud Storage e Procedura di firma V4 con il proprio programma. Per scoprire altri modi di per controllare l'accesso a bucket e oggetti, consulta Panoramica del controllo dell'accesso.
Panoramica
Un URL firmato è un URL che offre autorizzazioni e tempo limitati per effettuare una richiesta. Gli URL firmati contengono informazioni di autenticazione nella stringa di query, consentendo 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 effettuata dall'URL firmato.
Nella maggior parte dei casi, si tratta di un account di servizio.
Nel caso in cui crei un tuo programma per generare URL firmati, è possibile utilizzare un account utente, se è associato a una chiave HMAC.
Dopo aver generato un URL firmato, chiunque lo possiede può utilizzarlo. eseguire azioni specifiche, come la lettura di un oggetto, all'interno di un un periodo di tempo.
Quando conviene utilizzare un URL firmato?
In alcuni scenari, potresti non voler richiedere agli utenti di avere un account per accedere a Cloud Storage, ma vuoi comunque controllare l'accesso utilizzando la logica specifica dell'applicazione. Il modo tipico per risolvere questo problema nel caso d'uso consiste nel fornire a un utente un URL firmato, che consente all'utente di leggere, l'accesso in scrittura o eliminazione alla risorsa per un periodo di tempo limitato. Devi specificare e scadenza al momento della creazione dell'URL firmato. Chiunque conosca l'URL può accedere alla risorsa fino a quando non viene raggiunta la scadenza dell'URL o per indicare che l'URL viene ruotato.
Gli URL firmati vengono utilizzati più spesso per caricamenti e download, perché richieste, i dati degli oggetti si spostano tra i richiedenti e Cloud Storage. Nella nella maggior parte degli altri casi, come la copia e la composizione di oggetti, l'eliminazione di oggetti o la modifica di metadati, la creazione di un URL firmato e la relativa assegnazione a qualcuno per l'utilizzo è una passaggio aggiuntivo non necessario. Dovresti invece considerare una struttura in cui responsabile della creazione dell'URL firmato rende direttamente a Cloud Storage.
Opzioni per la generazione di un URL firmato
Cloud Storage supporta diversi metodi per generare un URL firmato:
Firma V4 con autenticazione dell'account di servizio: questo meccanismo di firma. è descritto di seguito.
Firma con l'autenticazione HMAC: se sei un utente Amazon Simple Storage Service (Amazon S3), puoi usare i flussi di lavoro esistenti per generare URL firmati per Cloud Storage. È sufficiente specificare le risorse Cloud Storage e puntare l'host
storage.googleapis.com
e utilizza le credenziali HMAC di Cloud Storage durante il processo di generazione dell'URL firmato.
Esempio di URL firmato
Di seguito è riportato un esempio di un URL firmato creato a seguito della versione V4 di firma con l'autenticazione dell'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 fornisce 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'elemento 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
: il periodo di tempo durante il quale l'URL firmato è rimasto valido, misurato in secondi dal valore inX-Goog-Date
. In questo esempio, l'URL firmato scade dopo 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 le richieste utilizzando questo URL firmato per accedere acat.jpeg
.
Utilizzo di URL firmati con caricamenti ripristinabili
Quando utilizzi i caricamenti ripristinabili, crei e utilizzi solo un URL firmato
per la richiesta POST
che avvia il caricamento. Questa richiesta iniziale
restituisce un URI sessione che utilizzi nelle richieste PUT
successive di caricamento
i dati. Poiché l'URI della sessione funge da token di autenticazione, PUT
richieste non utilizzano URL firmati.
Un vantaggio dei caricamenti ripristinabili è che consentono di eseguire la richiesta di avvio dal server, evitando la necessità per i clienti di dover gestire URL firmati. Tuttavia, occorre tenere a mente alcune considerazioni:
L'URI della sessione può essere utilizzato da chiunque ne sia in possesso per caricare i dati. Essere assicurati di trasmettere l'URI di sessione tramite HTTPS quando lo fornisci a un client.
I caricamenti ripristinabili vengono bloccati all'area geografica della richiesta iniziale. Per evitare caricamenti lenti, se il server e il client si trovano geograficamente distanti luoghi, la richiesta iniziale
POST
deve essere creata e firmata dal server ma poi fornisci l'URL firmato al client per avviare il caricamento. dalla loro posizione.
Considerazioni sugli URL firmati
Quando lavori con URL firmati, tieni presente quanto segue:
Gli URL firmati possono essere utilizzati solo per accedere alle risorse Cloud Storage tramite Endpoint API XML.
In genere, gli URL firmati possono essere creati per qualsiasi richiesta API XML; tuttavia, esistono due eccezioni:
Gli URL firmati che utilizzano le firme V4 non possono essere utilizzati in richieste il cui corpo utilizza la codifica a blocchi.
Le librerie client di Cloud Storage di Node.js attualmente possono creare per i singoli oggetti. Ad esempio, non può essere utilizzata per per elencare gli oggetti in un bucket.
Quando specifichi le credenziali, è consigliabile identificare il servizio account utilizzando il proprio indirizzo email; ma l'uso dell'account di servizio È supportato anche l'ID.
Assicurati di omettere l'intestazione di autorizzazione dalle richieste che utilizzano un URL. Se vengono utilizzati entrambi, Cloud Storage può eseguire l'autenticazione le credenziali fornite nell'intestazione anziché nell'URL firmato. Ciò potrebbe e consentire un accesso alle risorse maggiore del previsto.
Richieste canoniche
Gli URL firmati utilizzano le richieste canoniche come parte delle informazioni codificate
il parametro della stringa di query X-Goog-Signature
. Quando
creare un URL firmato con gli strumenti di Cloud Storage, il contenuto canonico richiesto
di Google Cloud viene creata e incorporata automaticamente. Tuttavia, quando
creare un URL firmato con il tuo programma, devi definire la versione canonica
richiederti e utilizzarlo per creare una firma.
Ambito delle credenziali
L'ambito delle credenziali compare sia nella stringa string-to-sign che nella
Parametro della stringa di query X-Goog-Credential
.
Passaggi successivi
- Crea un URL firmato con gli strumenti di Cloud Storage come il client tramite librerie o tramite Google Cloud CLI.
- Crea un URL firmato con il tuo programma.
- Scopri di più sulle richieste canoniche.
- Scopri di più sulle firme.