In questa pagina viene descritto come accedere a una versione del secret. L'accesso a una versione del secret restituisce i contenuti del secret e metadati aggiuntivi sulla versione del secret. Per accedere a una versione del secret utilizzando il
Google Cloud CLI o l'API Secret Manager, devi specificare l'ID versione o
l'alias, se assegnato. Puoi anche accedere all'ultima versione di un secret specificando latest come ID versione.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per accedere a una versione del secret,
chiedi all'amministratore di concederti il
ruolo IAM Secret Manager Secret Accessor (roles/secretmanager.secretAccessor) su un secret.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Accedere a una versione del secret
Per accedere a un secret, utilizza uno dei seguenti metodi:
Console
-
Nella Google Cloud console, vai alla pagina Secret Manager.
-
Nella pagina Secret Manager, fai clic su un secret per accedere alle relative versioni.
-
Nella pagina dei dettagli del secret, nella scheda Versioni, seleziona la versione del secret a cui vuoi accedere.
-
Fai clic sul menu Azioni associato alla versione del secret, quindi fai clic su Visualizza valore secret.
-
Viene visualizzata una finestra di dialogo che mostra il valore della versione del secret. Fai clic su Fine per uscire dalla finestra di dialogo.
gcloud
Accedere a una versione del secret
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
- VERSION_ID: il nome della risorsa della versione del secret
- SECRET_ID: l'ID del secret
Esegui il comando seguente:
Linux, macOS o Cloud Shell
gcloud secrets versions access VERSION_ID --secret=SECRET_ID
Windows (PowerShell)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID
Windows (cmd.exe)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID
Accedere a una versione del secret binario
Per scrivere byte non elaborati in un file, utilizza il flag --out-file:
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
- VERSION_ID: l'ID della versione del secret
- SECRET_ID: l'ID del secret
- PATH_TO_SECRET: il percorso completo (incluso il nome del file) in cui vuoi salvare il valore del secret recuperato
Esegui il comando seguente:
Linux, macOS o Cloud Shell
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --out-file="PATH_TO_SECRET"
Windows (PowerShell)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --out-file="PATH_TO_SECRET"
Windows (cmd.exe)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --out-file="PATH_TO_SECRET"
Recuperare i byte non elaborati
Per recuperare i byte non elaborati, fai in modo che Cloud SDK stampi la risposta come codificata in base64 e la decodifichi:
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
- VERSION_ID: l'ID della versione del secret
- SECRET_ID: l'ID del secret
Esegui il comando seguente:
Linux, macOS o Cloud Shell
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --format='get(payload.data)' | tr '_-' '/+' | base64 -d
Windows (PowerShell)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --format='get(payload.data)' | tr '_-' '/+' | base64 -d
Windows (cmd.exe)
gcloud secrets versions access VERSION_ID --secret=SECRET_ID --format='get(payload.data)' | tr '_-' '/+' | base64 -d
La risposta contiene la versione del secret.
REST
Accedere a una versione del secret
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l' Google Cloud ID progetto
- SECRET_ID: l'ID del secret
- VERSION_ID: l'ID della versione del secret
Metodo HTTP e URL:
GET https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:access
Corpo JSON della richiesta:
{}
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json,
quindi esegui il comando seguente:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:access"
PowerShell
Salva il corpo della richiesta in un file denominato request.json,
quindi esegui il comando seguente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:access" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{
"name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/VERSION_ID",
"payload": {
"data": "c2VDcjN0Cg==",
"dataCrc32c": "3131222104"
}
}
Estrarre il secret utilizzando lo strumento jq
La risposta payload.data è il contenuto della versione del secret codificato in base64.
Il comando seguente è un esempio di estrazione del secret utilizzando lo strumento jq.
$ curl "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:access" \
--request "GET" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
| jq -r ".payload.data" | base64 --decode
C#
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo C# e installare l'SDK C# di Secret Manager. Su Compute Engine o GKE, devi eseguire l'autenticazione con l'ambito cloud-platform.
Go
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Go e installare l'SDK Go di Secret Manager. Su Compute Engine o GKE, devi eseguire l'autenticazione con l'ambito cloud-platform.
Java
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Java e installare l'SDK Java di Secret Manager. Su Compute Engine o GKE, devi eseguire l'autenticazione con l'ambito cloud-platform.
Node.js
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Node.js e installare l'SDK Node.js di Secret Manager. Su Compute Engine o GKE, devi eseguire l'autenticazione con l'ambito cloud-platform.
PHP
Per eseguire questo codice, devi prima scoprire come utilizzare PHP su Google Cloud e installare l'SDK PHP di Secret Manager. Su Compute Engine o GKE, devi eseguire l'autenticazione con l'ambito cloud-platform.
Python
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Python e installare l'SDK Python di Secret Manager. Su Compute Engine o GKE, devi eseguire l'autenticazione con l'ambito cloud-platform.
Ruby
Per eseguire questo codice, devi innanzitutto configurare un ambiente di sviluppo Ruby e installare l'SDK Ruby di Secret Manager. Su Compute Engine o GKE, devi eseguire l'autenticazione con l'ambito cloud-platform.
Coerenza delle risorse
In Secret Manager, l'aggiunta di una versione del secret e l'accesso immediato a questa versione del secret tramite il numero di versione è un'operazione con coerenza elevata.
Le altre operazioni all'interno di Secret Manager sono coerenti a livello di coerenza finale. In genere, le operazioni con coerenza finale convergono in pochi minuti, ma potrebbero richiedere alcune ore.
La propagazione delle autorizzazioni IAM è coerente a livello di coerenza finale. Ciò significa che la concessione o la revoca dell'accesso ai secret potrebbe non avere effetto immediatamente. Per scoprire di più, consulta Propagazione della modifica di accesso.
Passaggi successivi
- Scopri come assegnare un alias a una versione del secret.
- Scopri come disattivare una versione del secret.
- Scopri come eliminare definitivamente una versione del secret.