Questa pagina descrive 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
Google Cloud CLI o l'API Secret Manager, devi specificare il relativo ID versione o
il relativo 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 di un secret,
chiedi all'amministratore di concederti il ruolo IAM
Funzione di accesso ai secret di Secret Manager (roles/secretmanager.secretAccessor
)
per 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 console Google Cloud , 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, seleziona la versione del secret a cui vuoi accedere nella scheda Versioni.
-
Fai clic sul menu
Azioni associato alla versione del secret e poi 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 o l'identificatore completo del secret
Esegui questo comando:
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 di un 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 o l'identificatore completo del secret
- PATH_TO_SECRET: il percorso completo (incluso il nome del file) in cui vuoi salvare il valore del secret recuperato
Esegui questo comando:
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"
Ottieni i byte non elaborati
Per ottenere i byte non elaborati, fai in modo che Cloud SDK stampi la risposta codificata in base64 e 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 o l'identificatore completo del secret
Esegui questo comando:
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 seguenti sostituzioni:
- PROJECT_ID: l'ID progetto Google Cloud
- SECRET_ID: l'ID del secret o l'identificatore completo 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" } }
Estrai il segreto utilizzando lo strumento jq
.
La risposta payload.data
sono i contenuti della versione del secret codificati in base64.
Il seguente comando è 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, scopri prima come utilizzare PHP su Google Cloud e installa 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 il successivo accesso immediato a questa versione del secret tramite il numero di versione è un'operazione fortemente coerente.
Le altre operazioni all'interno di Secret Manager sono coerenti alla fine. Le operazioni di coerenza finale in genere convergono in pochi minuti, ma potrebbero richiedere alcune ore.
La propagazione delle autorizzazioni IAM è a coerenza finale. Ciò significa che la concessione o la revoca dell'accesso ai secret potrebbe non avere effetto immediato. Per scoprire di più, consulta la sezione 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 una versione del secret.