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 qualsiasi data di scadenza impostata in precedenza per un secret.

Panoramica

Per impostazione predefinita, i secret archiviati in Secret Manager esistono finché non vengono eliminati da un utente. Se un secret deve essere archiviato solo per un periodo di tempo noto e limitato, puoi allegare una data di scadenza. Al momento della scadenza configurata di un secret, questo viene eliminato automaticamente.

Se non hai requisiti che prevedono l'eliminazione del secret, valuta la possibilità di utilizzare le condizioni IAM o lo stato della versione Disattivato per revocare l'accesso in modo sicuro.

Puoi inserire un'ora di scadenza come timestamp o durata. Quando vengono recuperati i metadati del secret, la scadenza viene sempre restituita come timestamp, indipendentemente da come è stata fornita.

Una scadenza può essere aggiunta, aggiornata o rimossa da un secret in qualsiasi momento.

Limitazioni

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

Utilizzare in modo sicuro i secret in scadenza

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

Per gestire in modo efficace l'accesso ai secret, imposta una condizione basata sul tempo 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 imprevisto.

  • Monitora le interruzioni: se alcuni flussi di lavoro smettono di funzionare dopo la revoca delle autorizzazioni, puoi ripristinare rapidamente l'accesso per ridurre al minimo l'impatto.

  • Modifica in base alle esigenze: se ti accorgi di aver 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 accesso non autorizzato o uso improprio.

Ad esempio, immagina uno scenario in cui un account di servizio deve accedere a un secret ogni giorno per 30 giorni. Puoi configurare la scadenza del secret 60 giorni dopo la sua creazione. In questo modo, viene creato un periodo di buffer dopo l'utilizzo previsto. Puoi anche configurare un binding IAM condizionale per concedere al account di servizio il ruolo Accessore secret per 45 giorni. Se il 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 smette di funzionare. Un amministratore può ripristinare rapidamente l'accesso concedendo nuovamente il ruolo Secret Accessor alaccount di serviziot. In questo modo, l'utente ha il tempo di esaminare il motivo per cui il segreto è ancora necessario dopo il periodo previsto di 30 giorni, poiché il segreto stesso non verrà eliminato per altri 15 giorni.

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

Specificare timestamp e durate

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

  • I valori di durata devono essere formattati come numero di secondi, incluso il suffisso s, ad esempio 86400s.

Impostare la data di scadenza di un secret

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

Console

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

    Vai a Secret Manager

  2. Nella pagina Secret Manager, fai clic sulla scheda Secret regionali, quindi fai clic 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 che venga archiviato il secret regionale dall'elenco Regione.

  6. Vai a Scadenza e poi seleziona la casella di controllo Imposta data di scadenza.

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

  8. Fai clic su Crea secret.

gcloud

Crea un secret in scadenza utilizzando un timestamp

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
  • LOCATION: la Google Cloud posizione del secret
  • TIMESTAMP: la data di scadenza nel formato RFC 3339, ad esempio 2100-01-01T09:00:00-05:00

Esegui questo comando:

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 l'identificatore completo del secret
  • LOCATION: la Google Cloud posizione del secret
  • DURATION: la durata della scadenza in secondi, ad esempio 86400s

Esegui questo comando:

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

Crea un secret in scadenza utilizzando un timestamp

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

  • LOCATION: la Google Cloud posizione del secret
  • PROJECT_ID: l'ID progetto Google Cloud
  • SECRET_ID: l'ID del secret o l'identificatore completo del secret
  • TIMESTAMP: la data di scadenza nel 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 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.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\""
}

Crea un secret in scadenza utilizzando una durata

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

  • LOCATION: la Google Cloud posizione del secret
  • PROJECT_ID: l'ID progetto Google Cloud
  • SECRET_ID: l'ID del secret o l'identificatore completo del secret
  • 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 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.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\""
}

Aggiornare 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. Nella console Google Cloud , vai alla pagina Secret Manager.

    Vai a Secret Manager

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

  3. Per modificare un secret, individua il secret nell'elenco e fai clic sul menu Azioni associato a quel secret. 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

Aggiornare la scadenza di un secret utilizzando un timestamp

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
  • LOCATION: la Google Cloud regione in cui hai archiviato i dati secreti
  • TIMESTAMP: la data di scadenza nel formato RFC 3339, ad esempio 2100-01-01T09:00:00-05:00

Esegui questo comando:

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 i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:

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

Esegui questo comando:

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 secret utilizzando un timestamp

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

  • LOCATION: la Google Cloud posizione del secret
  • PROJECT_ID: l'ID progetto Google Cloud
  • SECRET_ID: l'ID del secret o l'identificatore completo del secret
  • TOKEN: il tuo token di accesso Oauth2.0
  • TIMESTAMP: la data di scadenza nel 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 di queste opzioni:

curl

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

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

Aggiornare la scadenza di un secret utilizzando una durata

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

  • LOCATION: la Google Cloud posizione del secret
  • PROJECT_ID: l'ID progetto Google Cloud
  • SECRET_ID: l'ID del secret o l'identificatore completo del secret
  • 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 di queste opzioni:

curl

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

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 secret

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

Console

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

    Vai a Secret Manager

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

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

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

gcloud

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
  • LOCATION: la Google Cloud posizione del secret

Esegui questo 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 Google Cloud posizione del secret
  • PROJECT_ID: l'ID progetto Google Cloud
  • SECRET_ID: l'ID del secret o l'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 di queste opzioni:

curl

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

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

Registrazione delle scadenze

Cloud Audit Logs non vengono generati quando un secret scade automaticamente. Secret Manager scrive invece i log nella risorsa secret di Secret Manager a intervalli specifici che precedono la scadenza di un secret.

Log Timing Tipo di evento segreto
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

Per informazioni su come visualizzare questi log, consulta la guida rapida di Logging. Puoi creare metriche basate sui log e utilizzarle per creare avvisi per le scadenze imminenti.

Passaggi successivi