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.
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
-
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 località in cui vuoi archiviare il secret regionale dall'elenco Regione.
-
Vai a Scadenza, quindi 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 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
-
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. 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
-
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 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.