Ritarda l'eliminazione delle versioni dei secret

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 è abilitata l'eliminazione ritardata del secret e tu distruggi un 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.
  • Alla scadenza del periodo di ritardo, la versione del secret sarà permanente e irrevocabile distrutte.

Vantaggi

Questa funzionalità offre i seguenti vantaggi:

  • Un ulteriore livello di protezione contro la distruzione accidentale o intenzionale 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 impedire 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.

    Enable the 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.

    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, vedi Esegui l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per configurare l'eliminazione ritardata delle versioni del secret, chiedi all'amministratore di concederti Ruolo IAM Amministratore Secret Manager (roles/secretmanager.admin) nel 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 abilitare l'eliminazione ritardata di una versione del secret quando crei il secret o quando aggiorni il secret.

Console

  1. Nella console Google Cloud, vai alla pagina Secret Manager.

    Vai a Secret Manager

  2. Segui i passaggi necessari per creare un segreto.

  3. Vai alla sezione Ritarda eliminazione versione secret.

  4. Seleziona la casella di controllo Imposta la durata per l'eliminazione ritardata.

  5. 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.

  6. 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 segreto, utilizza il comando gcloud beta secrets create.

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.
  • TTL_DURATION: la durata del ritardo per l'eliminazione dell'elemento le 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. 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.googleapis.com/v1/projects/PROJECT_ID/secrets?secretId=SECRET_ID" | Select-Object -Expand Content

Dovresti 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 viene impostata una data di scadenza sul secret, che scade, vengono le versioni del secret vengono eliminate immediatamente anche se è abilitata l'eliminazione ritardata sul secret.

Durata del ritardo per l'eliminazione degli aggiornamenti

Console

  1. Nella console Google Cloud, vai alla pagina Secret Manager.

    Vai a Secret Manager

  2. Modifica il secret utilizzando una delle seguenti opzioni:

    • Fai clic su Altre azioni associate a il secret che vuoi modificare, quindi 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.
  3. Vai alla sezione Posticipa l'eliminazione della versione del secret.

  4. Nel campo Durata del ritardo per l'eliminazione, inserisci la durata aggiornata.

  5. Fai clic su Aggiorna secret.

gcloud

Per aggiornare la durata del ritardo per l'eliminazione, utilizza il metodo Comando gcloud beta secrets update.

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
  • TTL_DURATION: la durata del ritardo di eliminazione per le versioni del secret

Esegui la persone che seguo :

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, effettua 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 per l'eliminazione delle 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. ed esegui questo comando:

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. ed esegui questo comando:

$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 Content

Dovresti 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 viene impostata per la prima volta l'eliminazione ritardata del secret, la durata del ritardo per l'eliminazione influisce su tutte le versioni attive (attivate e disabilitate) dei il secret.
  • Quando la durata del ritardo per l'eliminazione viene aggiornata o rimossa, le modifiche si riflettono solo sulle nuove versioni del secret su cui si tenta l'azione di eliminazione. Le versioni del secret per le quali è già stata pianificata l'eliminazione continueranno a essere eliminate all'ora pianificata.

Disabilita eliminazione ritardata

Console

  1. Nella console Google Cloud, vai alla pagina Secret Manager.

    Vai a Secret Manager

  2. Modifica il secret utilizzando una delle seguenti opzioni:

    • Fai clic su Altre azioni associate a il secret che vuoi modificare, quindi 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.
  3. Vai alla sezione Posticipa l'eliminazione della versione del secret.

  4. Deseleziona la casella di controllo Imposta la durata per l'eliminazione ritardata.

  5. Fai clic su Aggiorna secret.

gcloud

Per rimuovere la durata del ritardo per l'eliminazione, utilizza il metodo Comando gcloud beta 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 la persone che seguo :

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, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID progetto Google Cloud
  • SECRET_ID: l'ID del secret o dell'identificatore completo 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:

{}

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 Content

Dovresti 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 del secret

Console

  1. Nella console Google Cloud, vai alla pagina Secret Manager.

    Vai a Secret Manager

  2. Fai clic sul nome del secret. Viene visualizzata la pagina Dettagli secret.

  3. Nella tabella Versioni della pagina Dettagli secret, seleziona una versione del secret.

  4. Nella colonna Azioni, fai clic su Mostra altro, poi su Elimina.

  5. Nella finestra di dialogo visualizzata, fai clic su Pianifica l'eliminazione delle versioni selezionate.

gcloud

Per eliminare una versione del secret, utilizza Comando gcloud beta secrets version destroy.

Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

  • SECRET_VERSION_ID: l'ID della versione o l'identificatore completo della versione
  • SECRET_ID: l'ID della secret o l'identificatore completo della secret

Esegui la persone che seguo :

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, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID progetto Google Cloud
  • SECRET_ID: l'ID del secret o dell'identificatore completo del secret
  • 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 Content

Dovresti 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 disabilitata e pianificata per l'eliminazione dopo il giorno scade la 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.

Abilita una versione del secret pianificata per l'eliminazione

Console

  1. Nella console Google Cloud, vai alla pagina Secret Manager.

    Vai a Secret Manager

  2. Fai clic sul nome del secret. Viene visualizzata la pagina Dettagli secret.

  3. Nella tabella Versioni della pagina Dettagli secret, seleziona una versione del secret per la quale è pianificata la distruzione.

  4. Nella colonna Azioni, fai clic su Mostra altro, e fai clic su Attiva.

  5. Nella finestra di dialogo visualizzata, fai clic su Abilita versioni selezionate.

gcloud

Per attivare una versione del secret pianificata per l'eliminazione, utilizza il comando gcloud beta secrets versions enable.

Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

  • SECRET_VERSION_ID: l'ID della versione o l'identificatore completo della versione
  • SECRET_ID: l'ID della secret o l'identificatore completo della secret

Esegui la persone che seguo :

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, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID progetto Google Cloud
  • SECRET_ID: l'ID del secret o dell'identificatore completo del secret
  • 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. ed esegui questo comando:

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. 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.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:enable" | Select-Object -Expand Content

Dovresti 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\""
}

Disabilita una versione del secret pianificata per l'eliminazione

Console

  1. Nella console Google Cloud, vai alla pagina Secret Manager.

    Vai a Secret Manager

  2. Fai clic sul nome del secret. Viene visualizzata la pagina Dettagli secret.

  3. Nella tabella Versioni della pagina Dettagli secret, seleziona una versione del secret per la quale è pianificata la distruzione.

  4. Nella colonna Azioni, fai clic su Mostra altro, quindi fai clic su Disattiva.

  5. Nella finestra di dialogo visualizzata, fai clic su Disabilita versioni selezionate.

gcloud

Per disattivare una versione del secret per la quale è pianificata l'eliminazione, utilizza il comando gcloud beta secrets versions disable.

Prima di utilizzare uno qualsiasi dei dati di comando riportati di seguito, effettua le seguenti sostituzioni:

  • SECRET_VERSION_ID: l'ID della versione o l'identificatore completo della versione
  • SECRET_ID: l'ID della secret o l'identificatore completo della secret

Esegui la persone che seguo :

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, effettua le seguenti sostituzioni:

  • PROJECT_ID: l'ID progetto Google Cloud
  • SECRET_ID: l'ID del secret o dell'identificatore completo del secret
  • 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. ed esegui questo comando:

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. 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.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:disable" | Select-Object -Expand Content

Dovresti 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