I dati secret sono immutabili e la maggior parte delle operazioni si svolge su versioni secret. Una versione del secret contiene i dati effettivi del secret, nonché lo stato e i metadati relativi al secret. Questa pagina descrive come aggiungere una versione del secret.
Per saperne di più sul controllo delle versioni, guarda questo video.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per aggiungere una versione del secret, chiedi all'amministratore di concederti i seguenti ruoli IAM su un secret:
-
Secret Manager Secret Version Adder (
roles/secretmanager.secretVersionAdder
) -
Manager versione secret di Secret Manager (
roles/secretmanager.secretVersionManager
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
I ruoli IAM non possono essere concessi a una versione del secret.
Aggiungi una versione del secret
Per aggiungere una versione segreta, utilizza uno dei seguenti metodi:
Console
-
Vai alla pagina Secret Manager nella console Google Cloud.
-
Nella pagina Secret Manager, fai clic sulla scheda Secret regionali e poi individua il secret per cui vuoi aggiungere la nuova versione.
-
Fai clic sul menu
Azioni associato al secret e poi su Aggiungi nuova versione. Viene visualizzata la finestra di dialogo Aggiungi nuova versione. -
Nel campo Valore secret, inserisci un valore per il secret, ad esempio
abcd1234
. In alternativa, puoi caricare un file contenente il valore del secret. -
Fai clic su Aggiungi nuova versione.
gcloud
Aggiungere una versione del secret dai contenuti di un file sul disco
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
- SECRET_ID: l'ID del segreto o l'identificatore completo del segreto
- LOCATION: la località di Google Cloud del segreto
- FILE_PATH: il percorso completo (incluso il nome del file) del file contenente i dettagli della versione
Esegui il seguente comando:
Linux, macOS o Cloud Shell
gcloud secrets versions add SECRET_ID --location=LOCATION --data-file="FILE_PATH"
Windows (PowerShell)
gcloud secrets versions add SECRET_ID --location=LOCATION --data-file="FILE_PATH"
Windows (cmd.exe)
gcloud secrets versions add SECRET_ID --location=LOCATION --data-file="FILE_PATH"
La risposta contiene la versione del secret appena creata.
Aggiungere una versione del secret direttamente sulla riga di comando
Puoi anche aggiungere una versione segreta direttamente sulla riga di comando, ma questa operazione è sconsigliata perché viene visualizzata in testo normale nell'elenco dei processi e potrebbe essere acquisita da altri utenti di sistema. Tieni presente che il comando con il testo non cifrato sarà presente anche nella cronologia della shell.
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
- SECRET_DATA: i dati che vuoi memorizzare nella versione segreta
- SECRET_ID: l'ID della secret o l'identificatore completo della secret
- LOCATION: la località di Google Cloud del segreto
Esegui il seguente comando:
Linux, macOS o Cloud Shell
echo -n "SECRET_DATA" | \ gcloud secrets versions add SECRET_ID --location=LOCATION --data-file=-
Windows (PowerShell)
echo -n "SECRET_DATA" | ` gcloud secrets versions add SECRET_ID --location=LOCATION --data-file=-
Windows (cmd.exe)
echo -n "SECRET_DATA" | ^ gcloud secrets versions add SECRET_ID --location=LOCATION --data-file=-
La risposta contiene la versione del secret appena creata.
(Facoltativo) Aggiungi una versione dai contenuti di un file quando crei un secret per la prima volta
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
- SECRET_ID: l'ID del segreto o l'identificatore completo del segreto
- LOCATION: la località di Google Cloud del segreto
- FILE_PATH: il percorso completo (incluso il nome del file) del file contenente i dettagli della versione
Esegui il seguente comando:
Linux, macOS o Cloud Shell
gcloud secrets create SECRET_ID --location=LOCATION --data-file="FILE_PATH"
Windows (PowerShell)
gcloud secrets create SECRET_ID --location=LOCATION --data-file="FILE_PATH"
Windows (cmd.exe)
gcloud secrets create SECRET_ID --location=LOCATION --data-file="FILE_PATH"
La risposta contiene la versione del secret appena creata.
REST
Codifica i dati segreti in base64 e salvali come variabile di shell.
$ SECRET_DATA=$(echo "seCr3t" | base64)
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION: la località di Google Cloud del segreto
- PROJECT_ID: l'ID progetto Google Cloud
- SECRET_ID: l'ID del segreto o l'identificatore completo del segreto
Metodo HTTP e URL:
POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID:addVersion
Corpo JSON della richiesta:
{"payload": {"data": "${SECRET_DATA}"}}
Per inviare la richiesta, scegli una delle seguenti opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json
,
quindi esegui il comando seguente:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID:addVersion"
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 POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID:addVersion" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/1", "createTime": "2024-03-25T08:24:13.153705Z", "state": "ENABLED", "etag": "\"161477e6071da9\"" }
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 autenticarti 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 autenticarti 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 autenticarti 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 autenticarti con l'ambito cloud-platform.
Stati delle versioni dei secret
Una versione di secret può trovarsi in uno dei seguenti stati in un determinato momento:
-
Attivato: in questo stato è possibile accedere alla versione del secret e descriverla. Questo è lo stato predefinito per una nuova versione del secret.
-
Disattivato: in questo stato non è possibile accedere alla versione del secret, ma i contenuti del secret esistono ancora. La versione del secret può essere riattivizzata per ripristinare l'accesso.
-
Eliminato: in questo stato, i contenuti della versione del secret vengono eliminati. La versione del secret non può essere modificata in un altro stato.
Ti vengono addebitate sia le versioni dei secret abilitate che quelle disattivate. Non ti viene fatturato alcun costo per le versioni di secret nello stato Eliminato.
Passaggi successivi
- Accedere a una versione del secret regionale
- Assegnare un alias a una versione del secret regionale
- Elenca le versioni dei secret regionali e visualizza i dettagli delle versioni