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 ulteriori informazioni sul controllo delle versioni, guarda questo video sul controllo delle versioni.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per aggiungere una versione del secret, chiedi all'amministratore di concederti seguenti ruoli IAM su un secret:
-
Adder versione secret di Secret Manager (
roles/secretmanager.secretVersionAdder
) -
Secret Manager 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.
Non è possibile concedere ruoli IAM su 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
Aggiungi una versione del secret dai contenuti di un file su disco
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
- SECRET_ID: l'ID del secret o dell'identificatore completo del secret
- 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.
Aggiungi una versione del secret direttamente nella 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 archiviare nella versione del secret
- SECRET_ID: l'ID del secret o dell'identificatore completo del 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 uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:
- SECRET_ID: l'ID del secret o dell'identificatore completo del secret
- LOCATION: la località Google Cloud del secret
- FILE_PATH: il percorso completo (incluso il nome 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 in Base64 i dati secret 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 del progetto Google Cloud
- SECRET_ID: l'ID della secret o l'identificatore completo della secret
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
.
ed esegui questo comando:
$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 prima configurare un ambiente di sviluppo Go e installa l'SDK Secret Manager Go. 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. In Compute Engine o GKE, devi eseguire l'autenticazione con l'ambito cloud-platform.
Node.js
Per eseguire questo codice, devi prima configurare un ambiente di sviluppo Node.js e installare l'SDK Node.js di Secret Manager. In Compute Engine o GKE, devi eseguire l'autenticazione con l'ambito cloud-platform.
Python
Per eseguire questo codice, configura prima un ambiente di sviluppo Python e installare l'SDK per Python di Secret Manager. In Compute Engine o GKE, devi eseguire l'autenticazione con l'ambito cloud-platform.
Stati della versione del 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 riattivati 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
- Accedi a una versione del secret regionale
- Assegnare un alias a una versione di un secret regionale
- Elenca le versioni dei secret regionali e visualizza i dettagli delle versioni