Questa pagina mostra come utilizzare il metodoCloud de Confiance signBlob per creare una firma da una stringa da firmare o un documento di policy. Le firme vengono utilizzate come credenziali in determinate richieste, ad esempio gli URL firmati. Questa guida utilizza le chiavi RSA per la creazione delle firme.
Prima di iniziare
Se non è già abilitata, abilita l'API Service Account Credentials.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre dell'autorizzazione
serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore Service Usage (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.Devi disporre dell'autorizzazione
iam.serviceAccounts.signBlobper il service account che utilizzi in questa guida. L'autorizzazioneiam.serviceAccounts.signBlobè inclusa nel ruoloroles/iam.serviceAccountTokenCreator.Il account di servizio che utilizzi in questa guida deve disporre dell'autorizzazione per eseguire la richiesta codificata all'interno della firma. Ad esempio, se la firma verrà utilizzata per leggere i dati degli oggetti da un bucket, il service account deve disporre dell'autorizzazione per leggere i dati degli oggetti.
Crea una firma
Avere gcloud CLI installato e inizializzato, che ti consente di generare un token di accesso per l'intestazione
Authorization.Crea un file JSON che contenga le seguenti informazioni:
{ "payload": "REQUEST_INFORMATION" }
Dove:
REQUEST_INFORMATIONè una stringa da firmare o un documento di policy. In entrambi i casi, i contenuti devono essere codificati in base64.
Utilizza
cURLper chiamare l'API IAM con una richiestasignBlob:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/SERVICE_ACCOUNT_EMAIL:signBlob"
Dove:
JSON_FILE_NAMEè il nome del file che hai creato nel passaggio 2.SERVICE_ACCOUNT_EMAILè l'indirizzo email del account di servizio che vuoi utilizzare per creare la firma. Ad esempio,example-service-account@my-pet-project.s3ns.iam.gserviceaccount.com.
Se l'operazione ha esito positivo, nel campo
signedBlobdella risposta viene restituito un digest del messaggio, con codifica in base64.Per completare la firma, assicurati che il digest del messaggio sia decodificato in base64, quindi codifica in esadecimale il digest del messaggio.
Passaggi successivi
- Consulta la pagina di riferimento per la firma dei blob con Google Cloud CLI.
- Crea manualmente un URL firmato utilizzando la firma che hai creato.
- Crea un URL firmato con gli strumenti Cloud de Confiance .
- Scopri di più sulle firme.