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 segreto deve essere archiviato solo per un periodo di tempo limitato e noto, puoi associargli una data di scadenza. Al momento di scadenza configurato per un segreto, viene eliminato automaticamente.
Se non hai requisiti che richiedono l'eliminazione del segreto, valuta la possibilità di utilizzare le condizioni IAM o lo stato della versione Disattivata 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.
Una scadenza può essere aggiunta, aggiornata o rimossa 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 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 segreto in modo imprevisto.
-
Monitora le interruzioni: se i flussi di lavoro smettono di funzionare dopo la revoca delle autorizzazioni, puoi ripristinare rapidamente l'accesso per ridurre al minimo l'impatto.
-
Modifica le impostazioni in base alle tue esigenze: se hai bisogno di più tempo, puoi estendere la data di scadenza del secret o addirittura rimuoverlo del tutto se non è più necessario.
Inoltre, è possibile creare avvisi basati su log che avvisano della scadenza imminente dei secret. 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, 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 segreto utilizzando la console Google Cloud, Google Cloud CLI o l'API Secret Manager.
Console
-
Vai alla pagina Secret Manager nella console Google Cloud.
-
Nella pagina Secret Manager, fai clic sulla scheda Secret regionali e poi su Crea secret regionale.
-
Nella pagina Crea secret regionale, inserisci un nome per il secret nel campo Nome.
-
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. -
Scegli la posizione in cui vuoi che venga archiviato il secret regionale dall'elenco Regione.
-
Vai a Scadenza e seleziona la casella di controllo Imposta data di scadenza.
-
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. -
Fai clic su Crea secret.
gcloud
Creare un secret con scadenza utilizzando un timestamp
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
- LOCATION: la località di Google Cloud del segreto
- TIMESTAMP: la data e l'ora di scadenza in formato RFC 3339, ad esempio
2100-01-01T09:00:00-05:00
Esegui il seguente 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"
Creare un secret con scadenza utilizzando una durata
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
- LOCATION: la località di Google Cloud del segreto
- DURATION: la durata della scadenza in secondi, ad esempio
86400s
Esegui il seguente 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
Creare un secret con scadenza utilizzando un timestamp
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION: la località di Google Cloud del segreto
- PROJECT_ID: l'ID progetto Google Cloud
- SECRET_ID: l'ID del segreto o l'identificatore completo del segreto
- 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
,
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\"" }
Creare un secret con scadenza utilizzando una durata
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION: la località di Google Cloud del segreto
- 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:
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
,
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 della chiave, utilizza uno dei seguenti metodi:
Console
-
Vai alla pagina Secret Manager nella console Google Cloud.
-
Nella pagina Secret Manager, fai clic sulla scheda Secret regionali.
-
Per modificare un secret, individualo nell'elenco e fai clic sul menu
Azioni associato al secret. Nel menu Azioni, fai clic su Modifica. -
Vai alla sezione Scadenza. Aggiorna la data e l'ora di scadenza e fai clic su Aggiorna secret.
gcloud
Aggiornare la scadenza di un segreto utilizzando un timestamp
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
- LOCATION: la regione Google Cloud in cui hai archiviato i dati della secret
- TIMESTAMP: la data e l'ora di scadenza in formato RFC 3339, ad esempio
2100-01-01T09:00:00-05:00
Esegui il seguente 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 della secret o l'identificatore completo della secret
- LOCATION: la località di Google Cloud del segreto
- DURATION: la durata della scadenza in secondi, ad esempio
86400s
Esegui il seguente 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 segreto utilizzando un timestamp
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- LOCATION: la località di Google Cloud del segreto
- PROJECT_ID: l'ID progetto Google Cloud
- SECRET_ID: l'ID del segreto o l'identificatore completo del segreto
- 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
,
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 località di Google Cloud del segreto
- 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
,
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 segreto
Per rimuovere la data e l'ora di scadenza del secret, utilizza uno dei seguenti metodi:
Console
-
Vai alla pagina Secret Manager nella console Google Cloud.
-
Nella pagina Secret Manager, fai clic sulla scheda Secret regionali.
-
Per modificare un secret, individualo nell'elenco e fai clic sul menu
Azioni associato. Nel menu Azioni, fai clic su Modifica. -
Vai alla sezione Scadenza. Deseleziona la casella di controllo Imposta data di scadenza e poi fai clic su Aggiorna secret.
gcloud
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
- 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à di Google Cloud del segreto
- PROJECT_ID: l'ID progetto Google Cloud
- SECRET_ID: l'ID del segreto o l'identificatore completo del segreto
- 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
,
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\"" }
Log di scadenza
Cloud Audit Logs non vengono generati quando un segreto scade automaticamente. Secret Manager scrive invece i log nella risorsa Secret Manager Secret a intervalli specifici che precedono la scadenza di un secret.
Tempi di registrazione | 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 alla registrazione. Puoi creare metriche basate su log e utilizzarle per creare avvisi per le scadenze imminenti.