I dati secret sono immutabili e la maggior parte delle operazioni si svolge su versioni secret. Una versione secret contiene i dati secret effettivi, insieme allo stato e ai metadati del secret. Questa pagina descrive come aggiungere una versione secret.
Per saperne di più sul controllo delle versioni, guarda questo video sul controllo delle versioni.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per aggiungere una versione secret, chiedi all'amministratore di concederti i seguenti ruoli IAM per un secret:
- Secret Manager Secret Version Adder (
roles/secretmanager.secretVersionAdder) - Secret Manager Secret Version Manager (
roles/secretmanager.secretVersionManager)
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.
I ruoli IAM non possono essere concessi a una versione secret.
Aggiungi una versione del secret
Per aggiungere una versione secret, utilizza uno dei seguenti metodi:
Console
-
Nella Google Cloud console, vai alla pagina Secret Manager.
-
Nella pagina Secret Manager, individua il secret a cui vuoi aggiungere la nuova versione.
-
Fai clic sul menu Azioni associato al secret, quindi fai clic 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 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
- FILE_PATH: il percorso completo (incluso il nome del file) del file contenente i dettagli della versione
Esegui questo comando:
Linux, macOS o Cloud Shell
gcloud secrets versions add SECRET_ID --data-file="FILE_PATH"
Windows (PowerShell)
gcloud secrets versions add SECRET_ID --data-file="FILE_PATH"
Windows (cmd.exe)
gcloud secrets versions add SECRET_ID --data-file="FILE_PATH"
La risposta contiene la versione secret appena creata.
Aggiungi una versione secret direttamente nella riga di comando
Puoi anche aggiungere una versione secret direttamente nella riga di comando, ma questa operazione è sconsigliata perché viene visualizzata come testo non crittografato nell'elenco dei processi e potrebbe essere acquisita da altri utenti del sistema. Tieni presente che il comando con il testo non crittografato sarà presente anche nella cronologia della shell.
echo -n "SECRET_DATA" | \
gcloud secrets versions add SECRET_ID --data-file=-Sostituisci quanto segue:
- SECRET_DATA: i dati che vuoi archiviare nella versione secret
- SECRET_ID: l'ID del secret o l'identificatore completo del secret
(Facoltativo) Aggiungi una versione dai contenuti di un file durante la creazione di un secret
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
- SECRET_ID: l'ID del secret
- FILE_PATH: il percorso completo (incluso il nome del file) del file contenente i dettagli della versione
Esegui questo comando:
Linux, macOS o Cloud Shell
gcloud secrets create SECRET_ID --data-file="FILE_PATH"
Windows (PowerShell)
gcloud secrets create SECRET_ID --data-file="FILE_PATH"
Windows (cmd.exe)
gcloud secrets create SECRET_ID --data-file="FILE_PATH"
La risposta contiene la versione secret appena creata.
REST
Codifica i dati secret in Base64 e salvali come variabile shell.
$ SECRET_DATA=$(echo "seCr3t" | base64)
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l' Google Cloud ID progetto
- SECRET_ID: l'ID del secret
Metodo HTTP e URL:
POST https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID:addVersion
Corpo JSON della richiesta:
{"payload": {"data": "${SECRET_DATA}"}}
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 POST \
-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: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.googleapis.com/v1/projects/PROJECT_ID/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\""
}
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 innanzitutto 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.
Stati delle versioni secret
Una versione secret può avere uno dei seguenti stati in un determinato momento:
-
Attivata : in questo stato, è possibile accedere alla versione secret e descriverla. Questo è lo stato predefinito per una nuova versione secret.
-
Disattivata : in questo stato, non è possibile accedere alla versione secret, ma i contenuti del secret esistono ancora. La versione secret può essere riattivata per ripristinare l'accesso.
-
Eliminata : in questo stato, i contenuti della versione secret vengono eliminati. Non è possibile modificare lo stato della versione secret.
Ti vengono addebitati costi sia per le versioni secret attivate che per quelle disattivate. Non ti vengono addebitati costi per le versioni secret in stato eliminato.
Passaggi successivi
- Scopri come accedere a una versione secret.
- Scopri come assegnare un alias a una versione secret.
- Scopri come elencare le versioni secret e visualizzare i dettagli delle versioni.