Questo argomento mostra come impostare una data di scadenza per un secret in Secret Manager. L'argomento descrive anche come aggiornare o rimuovere la data di scadenza impostata per un secret.
Panoramica
Per impostazione predefinita, i secret archiviati in Secret Manager esistono fino a quando un utente non li elimina che li rappresentano. Se un secret deve essere archiviato solo per un periodo di tempo noto e limitato, una data di scadenza. Alla scadenza configurata per un secret, 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 scadenza sotto forma di timestamp o durata massima. Quando vengono recuperati i metadati del secret, la scadenza è sempre restituito come timestamp, indipendentemente da come è stato specificato.
È possibile aggiungere, aggiornare o rimuovere una scadenza da un secret in qualsiasi momento.
Limitazioni
La scadenza del secret è disponibile solo in Secret Manager API di
v1
e gcloud a strumento a riga di comando.La scadenza di un secret non può essere inferiore a 60 secondi o superiore a 100 anni.
Utilizza in sicurezza i secret in scadenza
Quando un secret scade in Secret Manager, diventa irreversibilmente eliminati. 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 farlo, quando concedi le autorizzazioni per un segreto, associa all'associazione una condizione basata sul tempo. L'associazione dovrebbe scadere dopo che il secret non verranno più usate, ma abbastanza presto che le autorizzazioni rimosse verranno notate prima della scadenza del secret. Se i flussi di lavoro che si pensavano non usano più l'interruzione segreta dopo la revoca delle autorizzazioni, possono essere aggiunti di nuovo per mitigare rapidamente l'impatto. Se è necessario più tempo, il secret e la relativa scadenza può essere aggiornata o addirittura rimossa.
Ad esempio, supponiamo che un account di servizio debba accedere ogni giorno a un secret nell'arco di 30 giorni. La scadenza del secret può quindi essere impostata su 60 giorni dalla data e un'associazione IAM condizionale per concedere il servizio il ruolo Funzione di accesso ai secret per 45 giorni. Se l'account di servizio tenta di per accedere al secret dopo 45 giorni, verrà restituito un errore Autorizzazione negata mentre i flussi di lavoro che richiedono il secret non funzionano. Un amministratore potrebbe quindi concedi di nuovo il ruolo di Funzione di accesso ai secret all'account di servizio per mitigare rapidamente durante l'indagine, dato che il secret non verrebbe eliminato per altre 15 giorni.
Inoltre, è possibile creare avvisi basati sui log che avvisano dei secret in scadenza. Per ulteriori informazioni, consulta Logging delle scadenze.
Specifica timestamp e durate
I valori 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 inclusa la "s" , ad esempio
86400s
.
Crea un secret in scadenza
Crea un secret in scadenza utilizzando un timestamp:
gcloud
Per utilizzare Secret Manager nella riga di comando, devi prima Installa o esegui l'upgrade alla versione 378.0.0 o successive di Google Cloud CLI. In Compute Engine o GKE, devi eseguire l'autenticazione con l'ambito cloud-platform.
gcloud secrets create "SECRET_ID" \
--replication-policy "automatic" \
--expire-time "TIMESTAMP"
API
In questi esempi viene utilizzato curl per dimostrare l'utilizzo dell'API. Puoi generare token di accesso con gcloud auth print-access-token. In Compute Engine o GKE, devi eseguire l'autenticazione con l'ambito cloud-platform.
curl "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets?secretId=SECRET_ID" \
--request "POST" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--data-binary @- <<EOF
{
"replication": {"automatic": {}},
"expire_time": "TIMESTAMP"
}
EOF
Crea un secret con scadenza utilizzando una durata:
gcloud
Per utilizzare Secret Manager nella riga di comando, devi prima Installa o esegui l'upgrade alla versione 378.0.0 o successive di Google Cloud CLI. In Compute Engine o GKE, devi eseguire l'autenticazione con l'ambito cloud-platform.
gcloud secrets create "SECRET_ID" \
--replication-policy "automatic" \
--ttl "DURATION"
API
Questi esempi utilizzano curl per dimostrare l'utilizzo dell'API. Puoi generare token di accesso con gcloud auth stampa-access-token. Su Compute Engine o GKE, devi autenticarti con l'ambito cloud-platform.
curl "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets?secretId=SECRET_ID" \
--request "POST" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--data-binary @- <<EOF
{
"replication": {"automatic": {}},
"ttl": "DURATION"
}
EOF
Aggiornare la scadenza di un token segreto
A qualsiasi secret può essere applicata una nuova scadenza, indipendentemente dal fatto che ne abbia già una. Ogni segreto può avere una sola scadenza configurata alla volta. L'aggiornamento della scadenza di un secret che ne ha già uno ne sovrascriverà la scadenza attuale.
Aggiorna la scadenza di un secret utilizzando un timestamp:
gcloud
Per utilizzare Secret Manager nella riga di comando, devi prima Installa o esegui l'upgrade alla versione 378.0.0 o successive di Google Cloud CLI. Su Compute Engine o GKE, devi autenticarti con l'ambito cloud-platform.
gcloud secrets update "SECRET_ID" \
--expire-time "TIMESTAMP"
API
In questi esempi viene utilizzato curl per dimostrare l'utilizzo dell'API. Puoi generare token di accesso con gcloud auth stampa-access-token. Su Compute Engine o GKE, devi autenticarti con l'ambito cloud-platform.
curl "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=expire_time" \
--request "PATCH" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--data-binary @- <<EOF
{
"expire_time": "TIMESTAMP"
}
EOF
Aggiorna la scadenza di un secret utilizzando una durata:
gcloud
Per utilizzare Secret Manager nella riga di comando, devi prima Installa o esegui l'upgrade alla versione 378.0.0 o successive di Google Cloud CLI. In Compute Engine o GKE, devi eseguire l'autenticazione con l'ambito cloud-platform.
gcloud secrets update "SECRET_ID" \
--ttl "DURATION"
API
In questi esempi viene utilizzato curl per dimostrare l'utilizzo dell'API. Puoi generare token di accesso con gcloud auth stampa-access-token. Su Compute Engine o GKE, devi autenticarti con l'ambito cloud-platform.
curl "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=ttl" \
--request "PATCH" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--data-binary @- <<EOF
{
"ttl": "DURATION"
}
EOF
Rimuovere la scadenza di un secret
gcloud
Per utilizzare Secret Manager nella riga di comando, devi prima Installa o esegui l'upgrade alla versione 378.0.0 o successive di Google Cloud CLI. In Compute Engine o GKE, devi eseguire l'autenticazione con l'ambito cloud-platform.
gcloud secrets update "SECRET_ID" \
--remove-expiration
API
In questi esempi viene utilizzato curl per dimostrare l'utilizzo dell'API. Puoi generare token di accesso con gcloud auth stampa-access-token. In Compute Engine o GKE, devi eseguire l'autenticazione con l'ambito cloud-platform.
Includere expire_time
o ttl
in updateMask
e fornire al contempo
per nessuno dei due valori, la scadenza verrà rimossa.
curl "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=ttl" \
--request "PATCH" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ACCESS_TOKEN" \
--data-binary '{}'
Logging delle scadenze
Cloud Audit Logs non vengono generati alla scadenza automatica di un secret.
Secret Manager scrive invece i log nella risorsa Secret
Secret Manager a intervalli specifici che precedono la scadenza di un secret.
Tempi 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
- Scopri come configurare le pianificazioni della rotazione per i secret.
- Scopri come abilitare le chiavi di crittografia gestite dal cliente (CMEK) per Secret Manager.