Processo di firma V4 con gli strumenti di Cloud Storage (original) (raw)
Scopri
Per iniziare
Creare bucket
Modificare la classe di archiviazione predefinita di un bucket
Gestire i bucket
Caricare e scaricare oggetti
Carica oggetti
Gestire gli oggetti
Ottieni informazioni sui dati archiviati
Memorizzare nella cache gli oggetti
Organizzare gli oggetti
Controlla i cicli di vita dei dati
Inviare richieste
Dati protetti
Controllo dell'accesso
- Panoramica
- Filtro IP dei bucket
* Panoramica
* Crea un bucket con regole di filtro IP
* Creare o aggiornare le regole di filtro IP in un bucket esistente
* Ottenere le regole di filtro dei bucket IP
* Elenca le regole di filtro IP del bucket
* Disattivare il filtro IP dei bucket
* Ignora le regole di filtro IP del bucket - Scenari di condivisione e collaborazione
Monitorare i dati e l'utilizzo
Protezione, backup e ripristino
Eliminazione temporanea
- Panoramica
- Impostare e gestire i criteri di eliminazione temporanea
- Utilizzare gli oggetti eliminati temporaneamente
- Utilizzare i bucket eliminati temporaneamente
- Impostare una durata di conservazione predefinita per l'eliminazione temporanea
- Utilizzare i consigli per l'eliminazione temporanea
- Disabilita l'eliminazione temporanea
Montare i bucket con Cloud Storage FUSE
Lavorare su prodotti, cloud e piattaforme
Integrazione con servizi e strumenti di Google Cloud Platform
Risolvere i problemi
Processo di firma V4 con gli strumenti di Cloud Storage
Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.
La firma V4 è un processo che puoi utilizzare per generare firme per l'autenticazione nelle richieste dell'API XML di Cloud Storage. Questa pagina descrive come utilizzare Google Cloud CLI e le librerie client Cloud Storage per creare URL firmati utilizzando le credenziali dell'account di servizio. Gli URL firmati consentono di accedere con limitazioni di tempo in lettura o in scrittura a una risorsa Cloud Storage specifica. Se vuoi creare il tuo programma per la creazione di URL firmati, consultaFirma V4 con il tuo programma.
Prima di iniziare
Prima di eseguire le attività in questa pagina, completa i seguenti passaggi:
- Enable the Service Account Credentials API.
Enable the API - Crea un account di servizio. Se hai già un account di servizio che vuoi utilizzare per firmare gli URL, puoi saltare questo passaggio.
- Assegna all'account di servizio autorizzazioni sufficienti in modo che possa eseguire la richiesta effettuata dall'URL firmato. Ad esempio, se l'URL firmato consente a un utente di leggere i dati dell'oggetto, l'account di servizio deve avere l'autorizzazione per leggere i dati dell'oggetto.
Per le attività descritte in questa guida, chiedi all'amministratore di concedere all'account di servizio uno dei seguenti ruoli IAM:- Utente oggetto archiviazione (
roles/storage.objectUser
): utilizza questo ruolo per creare URL firmati per il caricamento e il download di oggetti. Questo ruolo è obbligatorio anche se l'URL firmato potrebbe sovrascrivere un oggetto esistente. - Visualizzatore oggetti Storage (
roles/storage.objectViewer
): utilizza questo ruolo se vuoi solo creare URL firmati per il download di oggetti. - Storage Object Creator (
roles/storage.objectCreator
): utilizza questo ruolo se vuoi creare solo URL firmati per il caricamento di oggetti e l'oggetto caricato non sovrascriverà un oggetto esistente nel bucket.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per creare URL firmati che scaricano e caricano oggetti. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:
- Utente oggetto archiviazione (
Autorizzazioni obbligatorie
storage.objects.get
(non obbligatorio se vuoi solo caricare oggetti)storage.objects.create
(non obbligatorio se vuoi solo scaricare oggetti)storage.objects.delete
(non obbligatorio se non devi sovrascrivere gli oggetti durante il caricamento)
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti. Per sapere quali ruoli sono associati a quali autorizzazioni, consulta Ruoli IAM per Cloud Storage.
- Disporre dell'autorizzazione sufficiente per firmare i blob con l'account di servizio. Chiedi all'amministratore di concedere il ruolo Creatore token account di servizio (
roles/iam.serviceAccountTokenCreator
).- Se utilizzi le credenziali utente per l'autenticazione, devi essere il principale a cui è stato assegnato questo ruolo, che deve essere concesso all'account di servizio che verrà utilizzato per creare gli URL firmati.
- Se utilizzi un account di servizio collegato a un'istanza di calcolo per l'autenticazione, l'account di servizio deve essere l'entità principale per questo ruolo per poter rubare l'identità e questo ruolo deve essere concesso nel progetto che contiene l'account di servizio.
Questo ruolo predefinito contiene l'autorizzazione richiesta per firmare i blob con un account di servizio. Per visualizzare l'autorizzazione esatta richiesta, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
iam.serviceAccounts.signBlob
Potresti anche ottenere questa autorizzazione con ruoli personalizzati o altri ruoli predefiniti. Per sapere quali ruoli sono associati a quali autorizzazioni, consulta Ruoli IAM per Cloud Storage.
Per istruzioni su come concedere i ruoli ai progetti, consultaGestire l'accesso ai progetti.
Creare un URL firmato per scaricare un oggetto
Per creare un URL firmato che possa recuperare un oggetto da un bucket, completa i seguenti passaggi:
Riga di comando
- Utilizza il comando gcloud storage sign-url. Ad esempio, il seguente comando crea un URL firmato che consente agli utenti di scaricare un oggetto per 10 minuti:
gcloud storage sign-url gs://BUCKET_NAME/OBJECT_NAME --impersonate-service-account=SERVICE_ACCOUNT_EMAIL --duration=10m
Dove:BUCKET_NAME
è il nome del bucket in cui si trova l'oggetto. Ad esempio,example-bucket
.OBJECT_NAME
è il nome dell'oggetto da scaricare. Ad esempio,cat.jpeg
.SERVICE_ACCOUNT_EMAIL
è l'indirizzo email di un account di servizio la cui chiave eseguirà la firma. Ad esempio,signed-url-account@my-project.iam.gserviceaccount.com
.
Se l'operazione ha esito positivo, la risposta dovrebbe essere simile alla seguente:
expiration: '2023-07-14 23:19:35'
http_verb: GET
resource: gs://example-bucket/cat.jpeg
signed_url: https://storage.googleapis.com/example-bucket/cat.jpeg?
x-goog-signature=11ae9c61ca84dd0bec319f7d52a38029e5873caa2eeced0568
ef96076258cfc1a925a9683cc907d210036b61af9e06a13bf4a15b15fab3916669b
e2f4c9f66ea6be822bec5858af519a6da705415b5768721197be213103fa09b8a18
8a143be77a24351517ff208a2c62cfebb78040daf1f953907080bd98f9462739d11
1355b1d9bcf54705b862f37392c031fde0d52add1a4d3bbb98a22e8b7023f6a1623
2e0a2dd56e524d410624d28663e557fafaf4ba0a04290a1066f894713857b429258
d14f056066c7622baf114c124e645688e19b4df3c4a7925f580693c93fa9c1dae7f
dff0edff7259c72f3f0eadc5a9f9f556c83c9c8dc02ee3af8d20ab634bad&x-goog
-algorithm=GOOG4-RSA-SHA256&x-goog-credential=signed-url-account%40
my-project.iam.gserviceaccount.com%2F20230714%2Fus%2Fstorage%2Fgoog
4_request&x-goog-date=20230714T221935Z&x-goog-expires=600&x-goog-si
gnedheaders=host
Questo URL può essere utilizzato da chiunque per accedere alla risorsa associata (in questo caso cat.jpeg
) per il periodo di tempo specificato (in questo caso 10 minuti).
Librerie client
C++
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Cloud Storage C++.
Per autenticarti a Cloud Storage, configura le credenziali predefinite dell'applicazione. Per saperne di più, consultaConfigurare l'autenticazione per le librerie client.
C#
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Cloud Storage C#.
Per autenticarti a Cloud Storage, configura le credenziali predefinite dell'applicazione. Per saperne di più, consultaConfigurare l'autenticazione per le librerie client.
Go
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Cloud Storage Go.
Per autenticarti a Cloud Storage, configura le credenziali predefinite dell'applicazione. Per saperne di più, consultaConfigurare l'autenticazione per le librerie client.
Java
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Cloud Storage Java.
Per autenticarti a Cloud Storage, configura le credenziali predefinite dell'applicazione. Per saperne di più, consultaConfigurare l'autenticazione per le librerie client.
Node.js
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Cloud Storage Node.js.
Per autenticarti a Cloud Storage, configura le credenziali predefinite dell'applicazione. Per saperne di più, consultaConfigurare l'autenticazione per le librerie client.
PHP
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Cloud Storage PHP.
Per autenticarti a Cloud Storage, configura le credenziali predefinite dell'applicazione. Per saperne di più, consultaConfigurare l'autenticazione per le librerie client.
Python
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Cloud Storage Python.
Per autenticarti a Cloud Storage, configura le credenziali predefinite dell'applicazione. Per saperne di più, consultaConfigurare l'autenticazione per le librerie client.
Ruby
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Cloud Storage Ruby.
Per autenticarti a Cloud Storage, configura le credenziali predefinite dell'applicazione. Per saperne di più, consultaConfigurare l'autenticazione per le librerie client.
Creare un URL firmato per caricare un oggetto
Per creare un URL firmato che può caricare un oggetto in un bucket, completa i seguenti passaggi:
Riga di comando
- Utilizza il comando gcloud storage sign-url. Ad esempio, il comando seguente crea un URL firmato che consente agli utenti di caricare un file per un'ora:
gcloud storage sign-url gs://BUCKET_NAME/OBJECT_NAME --impersonate-service-account=SERVICE_ACCOUNT_EMAIL --http-verb=PUT --duration=1h --headers=content-type=CONTENT_TYPEBUCKET_NAME
è il nome del bucket dove viene caricato l'oggetto. Ad esempio,example-bucket
.OBJECT_NAME
è il nome da assegnare all'oggetto caricato. Ad esempio,cat.png
.SERVICE_ACCOUNT_EMAIL
è l'indirizzo email di un account di servizio la cui chiave eseguirà la firma. Ad esempio,signed-url-account@my-project.iam.gserviceaccount.com
.CONTENT_TYPE
è il tipo di contenuto dell'oggetto caricato. Ad esempio,image/png
.
Se l'operazione ha esito positivo, la risposta dovrebbe essere simile alla seguente:
expiration: '2023-07-14 23:35:47'
http_verb: PUT
resource: gs://example-bucket/cat.png
signed_url: https://storage.googleapis.com/example-bucket/cat.png?
x-goog-signature=2f670a686102963e0574f3c1a3b4d29ee4aa406c1528d42d2
30195d17fef73834b254314de7d7990afd48538a84b66f20010e7ecd90a900490e
6119b7e56a912f71c8d64285c40e86f31b8fec51cf8c7a61ded81de3cedac9c1ca
b92474b7371740fdac20b2d8d092b15396f79443bbde954a4174ed11aef6c2cf5f
a4d72a84ff60fd6003ed0a505b0e40b6207ddbaec2a15778f715c3ec7537a1b14f
b6661b2abaa5736f1670a412ca7e2555c830591f0595c01ff95af7f2206abe2e27
41948c16d4bd4c7cbb25f41277ece59236c06e00ca6c63ae2eb3efc22c216bb24c
e1b8b3801d07fd3a7ed3f2df3db6e59c6fc3cc76a002335dd936efd0237cf584e3
6&x-goog-algorithm=GOOG4-RSA-SHA256&x-goog-credential=signed-url-a
ccount%40my-project.iam.gserviceaccount.com%2F20230714%2Fus%2Fstor
age%2Fgoog4_request&x-goog-date=20230714T223547Z&x-goog-expires=36
00&x-goog-signedheaders=content-type%3Bhost
Questo URL può essere utilizzato da chiunque per caricare una risorsa (in questo caso cat.png
) nel bucket Cloud Storage specificato per il periodo di tempo designato (in questo caso 1 ora).
Librerie client
C++
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Cloud Storage C++.
Per autenticarti a Cloud Storage, configura le credenziali predefinite dell'applicazione. Per saperne di più, consultaConfigurare l'autenticazione per le librerie client.
C#
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Cloud Storage C#.
Per autenticarti a Cloud Storage, configura le credenziali predefinite dell'applicazione. Per saperne di più, consultaConfigurare l'autenticazione per le librerie client.
Go
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Cloud Storage Go.
Per autenticarti a Cloud Storage, configura le credenziali predefinite dell'applicazione. Per saperne di più, consultaConfigurare l'autenticazione per le librerie client.
Java
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Cloud Storage Java.
Per autenticarti a Cloud Storage, configura le credenziali predefinite dell'applicazione. Per saperne di più, consultaConfigurare l'autenticazione per le librerie client.
Node.js
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Cloud Storage Node.js.
Per autenticarti a Cloud Storage, configura le credenziali predefinite dell'applicazione. Per saperne di più, consultaConfigurare l'autenticazione per le librerie client.
PHP
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Cloud Storage PHP.
Per autenticarti a Cloud Storage, configura le credenziali predefinite dell'applicazione. Per saperne di più, consultaConfigurare l'autenticazione per le librerie client.
Python
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Cloud Storage Python.
Per autenticarti a Cloud Storage, configura le credenziali predefinite dell'applicazione. Per saperne di più, consultaConfigurare l'autenticazione per le librerie client.
Ruby
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Cloud Storage Ruby.
Per autenticarti a Cloud Storage, configura le credenziali predefinite dell'applicazione. Per saperne di più, consultaConfigurare l'autenticazione per le librerie client.
Passaggi successivi
- Scopri come firmare gli URL con il tuo programma.
- Scopri di più sugli URL firmati.
- Scopri come caricare un oggetto con l'API XML.
- Scopri di più sul caricamento degli oggetti.
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-05-06 UTC.