Questa pagina spiega come configurare l'eliminazione ritardata delle versioni dei secret, aggiornare o rimuovere la durata del ritardo per l'eliminazione e ripristinare le versioni dei secret pianificate per l'eliminazione.
Quando elimini una versione del secret, il materiale del secret viene eliminato immediatamente e definitivamente. In qualità di amministratore di Secret Manager, puoi configurare l'eliminazione ritardata delle versioni dei secret in modo che la versione del secret non venga eliminata immediatamente al richiesta e rimanga recuperabile per una durata configurabile.
Quando l'eliminazione ritardata è attivata per il secret ed elimini una versione del secret, si verifica quanto segue:
- La versione è disabilitata, quindi non può essere utilizzata.
- Il sistema pianifica l'eliminazione permanente della versione al termine del periodo di ritardo.
- Al termine del periodo di ritardo, la versione del secret viene eliminata in modo permanente e irrevocabile.
Vantaggi
Questa funzionalità offre i seguenti vantaggi:
Un ulteriore livello di protezione contro la distruzione accidentale o dannosa di materiale segreto critico. Qualsiasi utente con il ruolo Manager versione secret di Secret Manager può eliminare una versione del secret. Questa azione è irreversibile. Configurando l'eliminazione ritardata, puoi evitare l'eliminazione immediata delle versioni dei secret. Puoi concedere agli utenti l'accesso minimo necessario per gestire il ciclo di vita delle versioni dei secret perché puoi monitorare e prevenire la distruzione accidentale di dati sensibili.
L'eliminazione di una versione del secret attiva una notifica SECRET_VERSION_DESTROY_SCHEDULED agli argomenti Pub/Sub configurati sul secret. In qualità di amministratore di Secret Manager, puoi annullare l'eliminazione pianificata e ripristinare la versione del secret attivandola o disattivandola.
Prima di iniziare
Enable the Secret Manager API.
Configurare l'autenticazione.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
REST
Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Per ulteriori informazioni, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per configurare la distruzione differita delle versioni del secret, chiedi all'amministratore di concederti il ruolo IAM Amministratore di Secret Manager (
roles/secretmanager.admin
) per il secret. 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.
Configurare l'eliminazione ritardata
Puoi attivare l'eliminazione ritardata di una versione del secret quando crei il secret o lo aggiorni.
Console
Nella console Google Cloud, vai alla pagina Secret Manager.
Segui i passaggi necessari per creare un segreto.
Vai alla sezione Ritarda eliminazione versione secret.
Seleziona la casella di controllo Imposta la durata per l'eliminazione ritardata.
Nel campo Durata del ritardo per l'eliminazione, inserisci la durata in giorni. Il valore minimo che puoi inserire è 1 giorno, mentre il valore massimo è 1000 giorni.
Fai clic su Crea secret.
Per attivare questa funzionalità su un secret esistente, vai alla pagina Modifica secret e configura la durata del ritardo di distruzione.
gcloud
Per configurare la durata del ritardo di distruzione del secret, utilizza il comando gcloud secrets create.
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
- SECRET_ID: l'ID del secret o l'identificatore completo del secret.
- TTL_DURATION: la durata del ritardo per l'eliminazione delle versioni del secret. Puoi inserire la durata in qualsiasi formato, ad esempio giorni, ore o secondi. La durata minima richiesta è 1 giorno, mentre la durata massima può essere impostata su 1000 giorni.
Esegui il seguente comando:
Linux, macOS o Cloud Shell
gcloud secrets create SECRET_ID --version-destroy-ttl=TTL_DURATION
Windows (PowerShell)
gcloud secrets create SECRET_ID --version-destroy-ttl=TTL_DURATION
Windows (cmd.exe)
gcloud secrets create SECRET_ID --version-destroy-ttl=TTL_DURATION
La risposta contiene il secret appena creato.
REST
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.
- TTL_DURATION: la durata del ritardo per l'eliminazione delle versioni del secret. Inserisci la durata in secondi. Tieni presente che la durata minima richiesta è 1 giorno, mentre la durata massima può essere impostata su 1000 giorni.
Metodo HTTP e URL:
POST https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets?secretId=SECRET_ID
Corpo JSON della richiesta:
{"replication": {"automatic": {}}, "version_destroy_ttl":"TTL_DURATION"}
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.googleapis.com/v1/projects/PROJECT_ID/secrets?secretId=SECRET_ID"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?secretId=SECRET_ID" | Select-Object -Expand ContentDovresti ricevere una risposta JSON simile alla seguente:
{ "name":"projects/PROJECT_ID/secrets/SECRET_ID", "replication":{ "automatic":{ } }, "createTime":"2023-10-16T17:10:16.345401Z", "etag":"\"1607d90ee3d84c\"", "versionDestroyTtl":"TTL_DURATION" }
L'eliminazione ritardata non si applica nei seguenti scenari:
- Quando un secret viene eliminato, tutto il materiale del secret e le versioni del secret correlate vengono eliminate immediatamente.
- Quando per il secret viene impostata una data di scadenza e il secret scade, tutte le sue versioni vengono eliminate immediatamente, anche se per il secret è attivata l'eliminazione ritardata.
Aggiorna la durata del ritardo per l'eliminazione
Console
Nella console Google Cloud, vai alla pagina Secret Manager.
Modifica il segreto utilizzando una delle seguenti opzioni:
- Fai clic su Altre azioni associato al secret che vuoi modificare e poi seleziona Modifica dal menu.
- Fai clic sul nome del segreto per andare alla pagina Dettagli segreto. Nella pagina Dettagli del secret, fai clic su Modifica secret.
Vai alla sezione Ritarda eliminazione versione secret.
Nel campo Durata del ritardo per l'eliminazione, inserisci la durata aggiornata.
Fai clic su Aggiorna secret.
gcloud
Per aggiornare la durata del ritardo di distruzione, utilizza il comando gcloud secrets update.
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
- SECRET_ID: l'ID della secret o l'identificatore completo della secret
- TTL_DURATION: la durata del ritardo di eliminazione per le versioni del secret
Esegui il seguente comando:
Linux, macOS o Cloud Shell
gcloud secrets update SECRET_ID --version-destroy-ttl=TTL_DURATION
Windows (PowerShell)
gcloud secrets update SECRET_ID --version-destroy-ttl=TTL_DURATION
Windows (cmd.exe)
gcloud secrets update SECRET_ID --version-destroy-ttl=TTL_DURATION
La risposta contiene il secret appena creato.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID progetto Google Cloud
- SECRET_ID: l'ID della secret o l'identificatore completo della secret
- TTL_DURATION: la durata del ritardo di eliminazione per le versioni del secret
Metodo HTTP e URL:
PATCH https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=version_destroy_ttl
Corpo JSON della richiesta:
{ "version_destroy_ttl":"TTL_DURATION" }
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 PATCH \
-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?updateMask=version_destroy_ttl"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 PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=version_destroy_ttl" | Select-Object -Expand ContentDovresti ricevere una risposta JSON simile alla seguente:
{ "name":"projects/PROJECT_ID/secrets/SECRET_ID", "replication":{ "automatic":{ } }, "createTime":"2023-10-16T17:10:16.345401Z", "etag":"\"1607d90ee3d84c\"", "versionDestroyTtl":"TTL_DURATION" }
Le versioni del secret interessate dalla durata del ritardo per l'eliminazione dipendono da quanto segue:
- Quando l'eliminazione ritardata viene impostata per la prima volta sul secret, la durata del ritardo dell'eliminazione influisce su tutte le versioni attive (abilitate e disattivate) del secret.
- Quando la durata del ritardo dell'eliminazione viene aggiornata o rimossa, le modifiche si riflettono solo sulle nuove versioni del secret su cui viene tentata l'azione di eliminazione. Le versioni del secret per le quali è già stata pianificata l'eliminazione continueranno a essere eliminate all'ora pianificata.
Disattivare l'eliminazione ritardata
Console
Nella console Google Cloud, vai alla pagina Secret Manager.
Modifica il segreto utilizzando una delle seguenti opzioni:
- Fai clic su Altre azioni associato al secret che vuoi modificare e poi seleziona Modifica dal menu.
- Fai clic sul nome del segreto per andare alla pagina Dettagli segreto. Nella pagina Dettagli del secret, fai clic su Modifica secret.
Vai alla sezione Ritarda eliminazione versione secret.
Deseleziona la casella di controllo Imposta la durata per l'eliminazione ritardata.
Fai clic su Aggiorna secret.
gcloud
Per rimuovere la durata del ritardo di distruzione, utilizza il comando gcloud secrets update.
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
Esegui il seguente comando:
Linux, macOS o Cloud Shell
gcloud secrets update SECRET_ID --remove-version-destroy-ttl
Windows (PowerShell)
gcloud secrets update SECRET_ID --remove-version-destroy-ttl
Windows (cmd.exe)
gcloud secrets update SECRET_ID --remove-version-destroy-ttl
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID progetto Google Cloud
- SECRET_ID: l'ID della secret o l'identificatore completo della secret
Metodo HTTP e URL:
PATCH https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=version_destroy_ttl
Corpo JSON della richiesta:
{}
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 PATCH \
-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?updateMask=version_destroy_ttl"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 PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=version_destroy_ttl" | Select-Object -Expand ContentDovresti ricevere una risposta JSON simile alla seguente:
{ "name":"projects/PROJECT_ID/secrets/SECRET_ID", "replication":{ "automatic":{ } }, "createTime":"2023-10-16T17:10:16.345401Z", "etag":"\"1607d90ee3d84c\"" }
Testare l'eliminazione ritardata delle versioni dei secret
Console
Nella console Google Cloud, vai alla pagina Secret Manager.
Fai clic sul nome del secret. Viene visualizzata la pagina Dettagli secret.
Nella tabella Versioni della pagina Dettagli secret, seleziona una versione del secret.
Nella colonna Azioni, fai clic su
Mostra altro, poi su Elimina.Nella finestra di dialogo visualizzata, fai clic su Pianifica l'eliminazione delle versioni selezionate.
gcloud
Per eliminare una versione del secret, utilizza il comando gcloud secrets versions destroy.
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
- SECRET_VERSION_ID: l'ID della versione o l'identificatore completo della versione
- SECRET_ID: l'ID del segreto o l'identificatore completo del segreto
Esegui il seguente comando:
Linux, macOS o Cloud Shell
gcloud secrets versions destroy SECRET_VERSION_ID --secret=SECRET_ID
Windows (PowerShell)
gcloud secrets versions destroy SECRET_VERSION_ID --secret=SECRET_ID
Windows (cmd.exe)
gcloud secrets versions destroy SECRET_VERSION_ID --secret=SECRET_ID
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID progetto Google Cloud
- SECRET_ID: l'ID del segreto o l'identificatore completo del segreto
- VERSION_ID: l'ID della versione o l'identificatore completo della versione
Metodo HTTP e URL:
POST https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:destroy
Corpo JSON della richiesta:
{}
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.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:destroy"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/versions/VERSION_ID:destroy" | Select-Object -Expand ContentDovresti ricevere una risposta JSON simile alla seguente:
{ "name":"projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID", "createTime":"2023-10-16T17:21:55.920036Z", "state":"DISABLED", "replicationStatus":{ "automatic":{ } }, "etag":"\"1607d8b2fc1cf4\"", "scheduledDestroyTime":"2023-10-16T17:26:57.459395960Z" }
La versione del secret viene immediatamente disattivata e ne viene pianificata l'eliminazione al termine della durata del ritardo per l'eliminazione. Puoi vedere la data e l'ora esatte in cui la versione verrà eliminata nella colonna Pianificata per l'eliminazione il giorno della tabella Versioni.
Ripristina le versioni dei secret
Puoi ripristinare una versione del secret per la quale è stata pianificata l'eliminazione attivando o disattivando la versione del secret.
Attivare una versione di un secret di cui è stata pianificata l'eliminazione
Console
Nella console Google Cloud, vai alla pagina Secret Manager.
Fai clic sul nome del secret. Viene visualizzata la pagina Dettagli secret.
Nella tabella Versioni della pagina Dettagli secret, seleziona una versione del secret per la quale è pianificata la distruzione.
Nella colonna Azioni, fai clic su
Mostra altro, poi su Attiva.Nella finestra di dialogo visualizzata, fai clic su Attiva le versioni selezionate.
gcloud
Per attivare una versione del secret per la quale è pianificata l'eliminazione, utilizza il comando gcloud secrets versions enable.
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
- SECRET_VERSION_ID: l'ID della versione o l'identificatore completo della versione
- SECRET_ID: l'ID del segreto o l'identificatore completo del segreto
Esegui il seguente comando:
Linux, macOS o Cloud Shell
gcloud secrets versions enable SECRET_VERSION_ID --secret=SECRET_ID
Windows (PowerShell)
gcloud secrets versions enable SECRET_VERSION_ID --secret=SECRET_ID
Windows (cmd.exe)
gcloud secrets versions enable SECRET_VERSION_ID --secret=SECRET_ID
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID progetto Google Cloud
- SECRET_ID: l'ID del segreto o l'identificatore completo del segreto
- VERSION_ID: l'ID della versione o l'identificatore completo della versione
Metodo HTTP e URL:
POST https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:enable
Corpo JSON della richiesta:
{}
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.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:enable"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/versions/VERSION_ID:enable" | Select-Object -Expand ContentDovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID", "createTime": "2024-09-04T06:41:57.859674Z", "state": "ENABLED", "etag": "\"1621457b3c1459\"" }
Disattivare una versione di un secret con eliminazione programmata
Console
Nella console Google Cloud, vai alla pagina Secret Manager.
Fai clic sul nome del secret. Viene visualizzata la pagina Dettagli secret.
Nella tabella Versioni della pagina Dettagli secret, seleziona una versione del secret per la quale è pianificata la distruzione.
Nella colonna Azioni, fai clic su
Mostra altro, poi su Disattiva.Nella finestra di dialogo visualizzata, fai clic su Disattiva le versioni selezionate.
gcloud
Per disattivare una versione del secret per la quale è pianificata l'eliminazione, utilizza il comando gcloud secrets versions disable.
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
- SECRET_VERSION_ID: l'ID della versione o l'identificatore completo della versione
- SECRET_ID: l'ID del segreto o l'identificatore completo del segreto
Esegui il seguente comando:
Linux, macOS o Cloud Shell
gcloud secrets versions disable SECRET_VERSION_ID --secret=SECRET_ID
Windows (PowerShell)
gcloud secrets versions disable SECRET_VERSION_ID --secret=SECRET_ID
Windows (cmd.exe)
gcloud secrets versions disable SECRET_VERSION_ID --secret=SECRET_ID
La risposta contiene la versione disabilitata del secret.
REST
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID progetto Google Cloud
- SECRET_ID: l'ID del segreto o l'identificatore completo del segreto
- VERSION_ID: l'ID della versione o l'identificatore completo della versione
Metodo HTTP e URL:
POST https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:disable
Corpo JSON della richiesta:
{}
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.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:disable"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/versions/VERSION_ID:disable" | Select-Object -Expand ContentDovresti ricevere una risposta JSON simile alla seguente:
{ "name":"projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID", "createTime":"2023-10-16T17:21:55.920036Z", "state":"DISABLED", "replicationStatus":{ "automatic":{ } }, "etag":"\"1607d8b3e8e1bc\"" }
Passaggi successivi
- Scopri come garantire l'integrità dei dati.
- Scopri le best practice.
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2024-12-22 UTC.