Impostare la data di scadenza di un secret regionale

Questa pagina descrive come impostare una data di scadenza per un secret nuovo o esistente, modificare la data di scadenza di un secret esistente e rimuovere una data di scadenza impostata in precedenza da un secret.

Panoramica

Per impostazione predefinita, i secret archiviati in Secret Manager esistono finché un utente non li elimina. Se un secret deve essere archiviato solo per un periodo di tempo noto e limitato, una data di scadenza. Al momento di scadenza configurato per un segreto, viene eliminato automaticamente.

Se non hai requisiti per l'eliminazione del secret, valuta la possibilità di utilizzare Condizioni IAM o stato della versione Disabilitato per revocare l'accesso in modo sicuro.

Puoi inserire una data di scadenza come timestamp o come durata. Quando vengono recuperati i metadati del secret, la scadenza viene sempre restituita come timestamp, indipendentemente da come è stata specificata.

È possibile aggiungere, aggiornare o rimuovere una scadenza da un secret in qualsiasi momento.

Limitazioni

  • La scadenza di un segreto non può essere inferiore a 60 secondi o superiore a 100 anni.

Utilizzare in sicurezza i secret con scadenza

Quando un secret scade in Secret Manager, viene eliminato in modo irreversibile. Il modo migliore per rilevare i secret che stanno per scadere è utilizzare le condizioni IAM per rimuovere le autorizzazioni dagli account che utilizzano il secret prima della scadenza.

Per gestire l'accesso ai secret in modo efficace, imposta una condizione temporale per le autorizzazioni concesse.

  • Imposta una data di scadenza: le autorizzazioni devono scadere poco prima della scadenza del segreto stesso. In questo modo puoi identificare eventuali flussi di lavoro o processi che potrebbero ancora utilizzare il secret in modo inaspettato.

  • Monitoraggio delle interruzioni: se un flusso di lavoro smette di funzionare dopo la revoca delle autorizzazioni, puoi ripristinare rapidamente l'accesso per ridurre al minimo l'impatto.

  • Modifica come necessario: se hai bisogno di più tempo, puoi estendere la data di scadenza del secret o persino rimuoverlo del tutto se non è più necessario.

Questo approccio contribuisce a garantire che l'accesso ai secret sia strettamente controllato e disponibile solo per il tempo necessario, riducendo il rischio di accessi non autorizzati o usi impropri.

Ad esempio, immagina uno scenario in cui un account di servizio deve accedere ogni giorno a un secret 30 giorni. Puoi configurare la scadenza del segreto 60 giorni dopo la creazione. Questo offre un periodo di tempo aggiuntivo dopo l'utilizzo previsto. Puoi anche configurare un'associazione IAM condizionale per concedere il ruolo Secret Accessor all'account di servizio per 45 giorni. Se l'account di servizio tenta di accedere al secret dopo 45 giorni, l'autorizzazione viene negata. Qualsiasi flusso di lavoro che si basa su questo secret smettono di funzionare. Un amministratore può ripristinare rapidamente l'accesso concedendo il ruolo Funzione di accesso ai secret e tornare all'account di servizio. Ciò consentirà loro di scoprire perché il secret è ancora necessario dopo il periodo previsto di 30 giorni, in quanto il secret stesso non verrà eliminato per altri 15 giorni.

Inoltre, è possibile creare avvisi basati sui log che avvisano dei secret in scadenza. Per informazioni, consulta la sezione Registrazione delle scadenze di questo documento.

Specifica timestamp e durate

  • I valori dei timestamp devono essere formattati come RFC 3339, ad esempio 2100-01-01T09:00:00-05:00.

  • I valori della durata devono essere formattati come numero di secondi incluse le s (ad esempio 86400s).

Imposta la data di scadenza di un secret

Puoi impostare una data e un'ora di scadenza per un segreto utilizzando la console Google Cloud, Google Cloud CLI o l'API Secret Manager.

Console

  1. Vai alla pagina Secret Manager nella console Google Cloud.

    Vai a Secret Manager

  2. Nella pagina Secret Manager, fai clic sulla scheda Secret regionali e poi su Crea secret regionale.

  3. Nella pagina Crea secret regionale, inserisci un nome per il secret nel campo Nome.

  4. Inserisci un valore per il secret (ad esempio abcd1234). Puoi anche caricare un file di testo contenente il valore del secret utilizzando l'opzione Carica file. Questa azione crea automaticamente la versione del secret.

  5. Scegli la località in cui vuoi archiviare il secret regionale dall'elenco Regione.

  6. Vai a Scadenza, quindi seleziona la casella di controllo Imposta data di scadenza.

  7. Inserisci la data e l'ora di scadenza nel formato Mese/Giorno/Anno, Ora:Minuti AM/PM, ad esempio 7/31/20, 1:00 AM. Puoi anche utilizzare il selettore della data e dell'ora per inserire la data e l'ora di scadenza.

  8. Fai clic su Crea secret.

gcloud

Creare un secret con scadenza utilizzando un timestamp

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à di Google Cloud del segreto
  • TIMESTAMP: la data e l'ora di scadenza nel formato RFC 3339, ad esempio 2100-01-01T09:00:00-05:00

Esegui la persone che seguo :

Linux, macOS o Cloud Shell

gcloud secrets create SECRET_ID --location=LOCATION \
    --expire-time "TIMESTAMP"

Windows (PowerShell)

gcloud secrets create SECRET_ID --location=LOCATION `
    --expire-time "TIMESTAMP"

Windows (cmd.exe)

gcloud secrets create SECRET_ID --location=LOCATION ^
    --expire-time "TIMESTAMP"

Crea un secret in scadenza utilizzando una durata

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à Google Cloud del secret
  • DURATION: la durata della scadenza in secondi, ad esempio 86400s

Esegui la persone che seguo :

Linux, macOS o Cloud Shell

gcloud secrets create SECRET_ID --location=LOCATION \
  --ttl "DURATION"

Windows (PowerShell)

gcloud secrets create SECRET_ID --location=LOCATION `
  --ttl "DURATION"

Windows (cmd.exe)

gcloud secrets create SECRET_ID --location=LOCATION ^
  --ttl "DURATION"

REST

Creare un secret con scadenza utilizzando un timestamp

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • LOCATION: la località di Google Cloud del segreto
  • PROJECT_ID: l'ID progetto Google Cloud
  • SECRET_ID: l'ID del secret o dell'identificatore completo del secret
  • TIMESTAMP: la data e l'ora di scadenza in formato RFC 3339, ad esempio 2100-01-01T09:00:00-05:00

Metodo HTTP e URL:

POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/$PROJECT_ID/locations/LOCATION/secrets?secretId=$SECRET_ID

Corpo JSON della richiesta:

{"expire_time": "TIMESTAMP"}

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.LOCATION.rep.googleapis.com/v1/projects/$PROJECT_ID/locations/LOCATION/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.LOCATION.rep.googleapis.com/v1/projects/$PROJECT_ID/locations/LOCATION/secrets?secretId=$SECRET_ID" | Select-Object -Expand Content

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID",
  "createTime": "2024-09-04T03:58:38.200877Z",
  "expireTime": "2024-09-04T09:25:39Z",
  "etag": "\"162143305d282d\""
}

Creare un secret con scadenza utilizzando una durata

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • LOCATION: la località Google Cloud del secret
  • PROJECT_ID: l'ID del progetto Google Cloud
  • SECRET_ID: l'ID del segreto o l'identificatore completo del segreto
  • DURATION: la durata della scadenza in secondi, ad esempio 86400s

Metodo HTTP e URL:

POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID

Corpo JSON della richiesta:

{"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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/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.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID" | Select-Object -Expand Content

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID",
  "createTime": "2024-09-04T03:58:38.200877Z",
  "expireTime": "2024-09-04T09:25:39Z",
  "etag": "\"162143305d282d\""
}

Aggiorna la data di scadenza di un secret

Per aggiornare la data e l'ora di scadenza del secret, utilizza uno dei seguenti metodi:

Console

  1. Vai alla pagina Secret Manager nella console Google Cloud.

    Vai a Secret Manager

  2. Nella pagina Secret Manager, fai clic sulla scheda Secret regionali.

  3. Per modificare un secret, individualo nell'elenco e fai clic sul menu Azioni associato. Nel menu Azioni, fai clic su Modifica.

  4. Vai alla sezione Scadenza. Aggiorna la data e l'ora di scadenza e fai clic su Aggiorna secret.

gcloud

Aggiorna la scadenza di un secret utilizzando un timestamp

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

  • SECRET_ID: l'ID della secret o l'identificatore completo della secret
  • LOCATION: la regione Google Cloud in cui hai archiviato i dati secret
  • TIMESTAMP: la data e l'ora di scadenza in formato RFC 3339, ad esempio 2100-01-01T09:00:00-05:00

Esegui la persone che seguo :

Linux, macOS o Cloud Shell

gcloud secrets update SECRET_ID --location=LOCATION \
  --expire-time "TIMESTAMP"

Windows (PowerShell)

gcloud secrets update SECRET_ID --location=LOCATION `
  --expire-time "TIMESTAMP"

Windows (cmd.exe)

gcloud secrets update SECRET_ID --location=LOCATION ^
  --expire-time "TIMESTAMP"

Aggiornare la scadenza di un secret utilizzando una durata

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à di Google Cloud del segreto
  • DURATION: la durata della scadenza in secondi, ad esempio 86400s

Esegui la persone che seguo :

Linux, macOS o Cloud Shell

gcloud secrets update SECRET_ID --location=LOCATION \
    --ttl "DURATION"

Windows (PowerShell)

gcloud secrets update SECRET_ID --location=LOCATION `
    --ttl "DURATION"

Windows (cmd.exe)

gcloud secrets update SECRET_ID --location=LOCATION ^
    --ttl "DURATION"

REST

Aggiornare la scadenza di un segreto utilizzando un timestamp

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • LOCATION: la località Google Cloud del secret
  • PROJECT_ID: l'ID del progetto Google Cloud
  • SECRET_ID: l'ID del secret o dell'identificatore completo del secret
  • TOKEN: il tuo token di accesso Oauth2.0
  • TIMESTAMP: la data e l'ora di scadenza in formato RFC 3339, ad esempio 2100-01-01T09:00:00-05:00

Metodo HTTP e URL:

PATCH https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID?updateMask=expire_time

Corpo JSON della richiesta:

{"expire_time": "TIMESTAMP"}

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 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?updateMask=expire_time"

PowerShell

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method PATCH `
-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?updateMask=expire_time" | Select-Object -Expand Content

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID",
  "createTime": "2024-09-04T03:58:38.200877Z",
  "expireTime": "2024-09-04T09:25:39Z",
  "etag": "\"162143305d282d\""
}

Aggiorna la scadenza di un secret utilizzando una durata

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • LOCATION: la località Google Cloud del secret
  • PROJECT_ID: l'ID progetto Google Cloud
  • SECRET_ID: l'ID del segreto o l'identificatore completo del segreto
  • DURATION: la durata della scadenza in secondi, ad esempio 86400s

Metodo HTTP e URL:

PATCH https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID?updateMask=ttl

Corpo JSON della richiesta:

{"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 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?updateMask=ttl"

PowerShell

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method PATCH `
-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?updateMask=ttl" | Select-Object -Expand Content

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID",
  "createTime": "2024-09-04T03:58:38.200877Z",
  "expireTime": "2024-09-04T09:25:39Z",
  "etag": "\"162143305d282d\""
}

Rimuovere la data di scadenza di un segreto

Per rimuovere la data e l'ora di scadenza del secret, utilizza uno dei seguenti metodi:

Console

  1. Vai alla pagina Secret Manager nella console Google Cloud.

    Vai a Secret Manager

  2. Nella pagina Secret Manager, fai clic sulla scheda Secret regionali.

  3. Per modificare un secret, individualo nell'elenco e fai clic sul menu Azioni associato. Nel menu Azioni, fai clic su Modifica.

  4. Vai alla sezione Scadenza. Deseleziona la casella di controllo Imposta data di scadenza e quindi fai clic su Update secret (Aggiorna secret).

gcloud

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à di Google Cloud del segreto

Esegui il seguente comando:

Linux, macOS o Cloud Shell

gcloud secrets update SECRET_ID --location=LOCATION \
  --remove-expiration

Windows (PowerShell)

gcloud secrets update SECRET_ID --location=LOCATION `
  --remove-expiration

Windows (cmd.exe)

gcloud secrets update SECRET_ID --location=LOCATION ^
  --remove-expiration

REST

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • LOCATION: la località Google Cloud del secret
  • PROJECT_ID: l'ID del progetto Google Cloud
  • SECRET_ID: l'ID del secret o dell'identificatore completo del secret
  • TOKEN: il tuo token di accesso Oauth2.0

Metodo HTTP e URL:

PATCH https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID?updateMask=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. ed esegui questo comando:

curl -X PATCH \
-H "Authorization: Bearer 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?updateMask=ttl"

PowerShell

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method PATCH `
-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?updateMask=ttl" | Select-Object -Expand Content

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID",
  "createTime": "2024-09-04T03:58:38.200877Z",
  "etag": "\"162143305d282d\""
}

Log di scadenza

Cloud Audit Logs non viene generato alla scadenza automatica di un secret. Secret Manager scrive invece i log nella risorsa Secret Manager Secret a intervalli specifici che precedono la scadenza di un secret.

Tempistica dei log Tipo di evento secret
30 giorni prima della scadenza EXPIRES_IN_30_DAYS
7 giorni prima della scadenza EXPIRES_IN_7_DAYS
1 giorno prima della scadenza EXPIRES_IN_1_DAY
6 ore prima della scadenza EXPIRES_IN_6_HOURS
1 ora prima della scadenza EXPIRES_IN_1_HOUR
alla scadenza EXPIRED

Consulta la guida rapida di Logging. per informazioni su come visualizzare i log. Puoi creare metriche basate su log e utilizzarle per creare avvisi per le scadenze imminenti.

Passaggi successivi