Cette page explique comment configurer la destruction différée des versions de secret, mettre à jour ou supprimer la durée du délai de destruction et restaurer les versions de secret programmées pour la destruction.
Lorsque vous détruissez une version de secret, le matériel secret est détruit immédiatement et définitivement. En tant qu'administrateur Secret Manager, vous pouvez configurer la destruction différée des versions de secret afin qu'elles ne soient pas détruites immédiatement à la demande et qu'elles restent récupérables pendant une durée configurable.
Lorsque la destruction différée est activée pour le secret et que vous détruisez une version de secret, voici ce qui se passe:
- La version est désactivée et ne peut donc pas être utilisée.
- Le système planifie la destruction définitive de la version à la fin de la période de délai.
- À l'expiration du délai, la version du secret est détruite de manière permanente et irrévocable.
Avantages
Cette fonctionnalité offre les avantages suivants:
Une couche de protection supplémentaire contre la destruction accidentelle ou malveillante de matériel secret critique. Tout utilisateur disposant du rôle Gestionnaire de versions de secret Secret Manager peut supprimer une version de secret. Cette action est irréversible. En configurant la destruction différée, vous pouvez empêcher la destruction immédiate des versions de secret. Vous pouvez accorder aux utilisateurs l'accès minimal requis pour gérer le cycle de vie des versions de secrets, car vous pouvez surveiller et empêcher toute destruction accidentelle de données sensibles.
La destruction d'une version de secret déclenche une SECRET_VERSION_DESTROY_SCHEDULED En tant qu'administrateur Secret Manager, vous pouvez annuler la destruction planifiée et restaurer la version du secret en activant ou en désactivant la version du secret.
Avant de commencer
Enable the Secret Manager API.
Configurez l'authentification.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
REST
Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud.
Rôles requis
Pour obtenir les autorisations nécessaires pour configurer la destruction différée des versions de secret, demandez à votre administrateur de vous accorder le rôle IAM Administrateur du Gestionnaire de secrets (
roles/secretmanager.admin
) sur le secret. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Configurer une destruction différée
Vous pouvez activer la destruction différée d'une version de secret lorsque vous créez le secret ou lorsque vous le mettez à jour.
Console
Dans la console Google Cloud, accédez à la page Secret Manager.
Suivez la procédure pour créer un secret.
Accédez à la section Retarder la destruction des versions de secret.
Cochez la case Définir la durée du délai de destruction.
Dans le champ Durée du délai de destruction, saisissez la durée en jours. La valeur minimale que vous pouvez saisir est de 1 jour, et la valeur maximale est de 1 000 jours.
Cliquez sur Créer un secret.
Pour activer cette fonctionnalité sur un secret existant, accédez à la page Modifier le secret, puis configurez la durée du délai de destruction.
gcloud
Pour configurer la durée du délai de destruction du secret, utilisez la commande gcloud secrets create.
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
- SECRET_ID: ID du secret ou identifiant complet du secret.
- TTL_DURATION: durée du délai de destruction pour les versions de secret. Vous pouvez saisir la durée dans n'importe quel format (par exemple, en jours, en heures ou en secondes). La durée minimale requise est d'un jour, tandis que la durée maximale peut être définie sur 1 000 jours.
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
gcloud secrets create SECRET_ID --version-destroy-ttl=TTL_DURATION
Windows (PowerShell)
gcloud secrets create SECRET_ID --version-destroy-ttl=TTL_DURATION
Windows (cmd.exe)
gcloud secrets create SECRET_ID --version-destroy-ttl=TTL_DURATION
La réponse contient le secret nouvellement créé.
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de projet Google Cloud.
- SECRET_ID: ID du secret ou identifiant complet du secret.
- TTL_DURATION: durée du délai de destruction des versions de secret. Saisissez la durée en secondes. Notez que la durée minimale requise est de 1 jour, tandis que la durée maximale peut être définie sur 1 000 jours.
Méthode HTTP et URL :
POST https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets?secretId=SECRET_ID
Corps JSON de la requête :
{"replication": {"automatic": {}}, "version_destroy_ttl":"TTL_DURATION"}
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé
request.json
, puis exécutez la commande suivante :curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets?secretId=SECRET_ID"PowerShell
Enregistrez le corps de la requête dans un fichier nommé
request.json
, puis exécutez la commande suivante :$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.googleapis.com/v1/projects/PROJECT_ID/secrets?secretId=SECRET_ID" | Select-Object -Expand ContentVous devriez recevoir une réponse JSON de ce type :
{ "name":"projects/PROJECT_ID/secrets/SECRET_ID", "replication":{ "automatic":{ } }, "createTime":"2023-10-16T17:10:16.345401Z", "etag":"\"1607d90ee3d84c\"", "versionDestroyTtl":"TTL_DURATION" }
La destruction différée ne s'applique pas dans les scénarios suivants:
- Lorsqu'un secret est supprimé, tout le matériel secret et les versions de secret associées sont immédiatement supprimés.
- Lorsqu'une date d'expiration est définie sur le secret et que celui-ci expire, toutes ses versions sont immédiatement détruites, même si la destruction différée est activée pour le secret.
Modifier la durée du délai de destruction
Console
Dans la console Google Cloud, accédez à la page Secret Manager.
Modifiez votre secret à l'aide de l'une des options suivantes:
- Cliquez sur Autres actions associé au secret que vous souhaitez modifier, puis sélectionnez Modifier dans le menu.
- Cliquez sur le nom du secret pour accéder à la page Détails du secret. Sur la page Détails du secret, cliquez sur Modifier le secret.
Accédez à la section Retarder la destruction des versions de secret.
Dans le champ Durée du délai de destruction, saisissez la durée mise à jour.
Cliquez sur Mettre à jour le secret.
gcloud
Pour mettre à jour la durée du délai de destruction, utilisez la commande gcloud secrets update.
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
- SECRET_ID: ID du secret ou identifiant complet du secret
- TTL_DURATION: durée du délai de destruction des versions de secret
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
gcloud secrets update SECRET_ID --version-destroy-ttl=TTL_DURATION
Windows (PowerShell)
gcloud secrets update SECRET_ID --version-destroy-ttl=TTL_DURATION
Windows (cmd.exe)
gcloud secrets update SECRET_ID --version-destroy-ttl=TTL_DURATION
La réponse contient le secret nouvellement créé.
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de projet Google Cloud
- SECRET_ID: ID du secret ou identifiant complet du secret
- TTL_DURATION: durée du délai de destruction des versions de secret
Méthode HTTP et URL :
PATCH https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=version_destroy_ttl
Corps JSON de la requête :
{ "version_destroy_ttl":"TTL_DURATION" }
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé
request.json
, puis exécutez la commande suivante :curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=version_destroy_ttl"PowerShell
Enregistrez le corps de la requête dans un fichier nommé
request.json
, puis exécutez la commande suivante :$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=version_destroy_ttl" | Select-Object -Expand ContentVous devriez recevoir une réponse JSON de ce type :
{ "name":"projects/PROJECT_ID/secrets/SECRET_ID", "replication":{ "automatic":{ } }, "createTime":"2023-10-16T17:10:16.345401Z", "etag":"\"1607d90ee3d84c\"", "versionDestroyTtl":"TTL_DURATION" }
Les versions de secret concernées par la durée de la destruction différée dépendent des éléments suivants:
- Lorsque la destruction différée est définie pour la première fois sur le secret, la durée du délai de destruction affecte toutes les versions actives (activées et désactivées) du secret.
- Lorsque la durée du délai de destruction est mise à jour ou supprimée, les modifications ne s'appliquent qu'aux nouvelles versions de secret sur lesquelles l'action de destruction est tentée. Les versions de secret déjà programmées pour destruction continueront d'être détruites à la date prévue.
Désactiver la destruction différée
Console
Dans la console Google Cloud, accédez à la page Secret Manager.
Modifiez votre secret à l'aide de l'une des options suivantes:
- Cliquez sur Autres actions associé au secret que vous souhaitez modifier, puis sélectionnez Modifier dans le menu.
- Cliquez sur le nom du secret pour accéder à la page Détails du secret. Sur la page Détails du secret, cliquez sur Modifier le secret.
Accédez à la section Retarder la destruction des versions de secret.
Décochez la case Définir la durée du délai de destruction.
Cliquez sur Mettre à jour le secret.
gcloud
Pour supprimer la durée du délai de destruction, utilisez la commande gcloud secrets update.
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
- SECRET_ID: ID du secret ou identifiant complet du secret
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
gcloud secrets update SECRET_ID --remove-version-destroy-ttl
Windows (PowerShell)
gcloud secrets update SECRET_ID --remove-version-destroy-ttl
Windows (cmd.exe)
gcloud secrets update SECRET_ID --remove-version-destroy-ttl
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de projet Google Cloud
- SECRET_ID: ID du secret ou identifiant complet du secret
Méthode HTTP et URL :
PATCH https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=version_destroy_ttl
Corps JSON de la requête :
{}
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé
request.json
, puis exécutez la commande suivante :curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=version_destroy_ttl"PowerShell
Enregistrez le corps de la requête dans un fichier nommé
request.json
, puis exécutez la commande suivante :$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID?updateMask=version_destroy_ttl" | Select-Object -Expand ContentVous devriez recevoir une réponse JSON de ce type :
{ "name":"projects/PROJECT_ID/secrets/SECRET_ID", "replication":{ "automatic":{ } }, "createTime":"2023-10-16T17:10:16.345401Z", "etag":"\"1607d90ee3d84c\"" }
Tester la destruction différée des versions de secret
Console
Dans la console Google Cloud, accédez à la page Secret Manager.
Cliquez sur le nom du secret. La page Informations détaillées sur le secret s'affiche.
Sur la page Informations détaillées sur le secret, dans le tableau Versions, sélectionnez une version du secret.
Dans la colonne Actions, cliquez sur
Afficher plus, puis sur Supprimer.Dans la boîte de dialogue qui s'affiche, cliquez sur Programmer la destruction des versions sélectionnées.
gcloud
Pour détruire une version de secret, utilisez la commande gcloud secrets versions destroy.
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
- SECRET_VERSION_ID: ID de la version ou identifiant complet de la version
- SECRET_ID: ID du secret ou identifiant complet du secret
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
gcloud secrets versions destroy SECRET_VERSION_ID --secret=SECRET_ID
Windows (PowerShell)
gcloud secrets versions destroy SECRET_VERSION_ID --secret=SECRET_ID
Windows (cmd.exe)
gcloud secrets versions destroy SECRET_VERSION_ID --secret=SECRET_ID
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de projet Google Cloud
- SECRET_ID: ID du secret ou identifiant complet du secret
- VERSION_ID: ID de la version ou identifiant complet de la version
Méthode HTTP et URL :
POST https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:destroy
Corps JSON de la requête :
{}
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé
request.json
, puis exécutez la commande suivante :curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:destroy"PowerShell
Enregistrez le corps de la requête dans un fichier nommé
request.json
, puis exécutez la commande suivante :$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.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:destroy" | Select-Object -Expand ContentVous devriez recevoir une réponse JSON de ce type :
{ "name":"projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID", "createTime":"2023-10-16T17:21:55.920036Z", "state":"DISABLED", "replicationStatus":{ "automatic":{ } }, "etag":"\"1607d8b2fc1cf4\"", "scheduledDestroyTime":"2023-10-16T17:26:57.459395960Z" }
La version du secret est immédiatement désactivée et programmée pour être détruite à l'expiration du délai de destruction. Vous pouvez voir la date et l'heure exactes auxquelles la version sera détruite dans la colonne Programmée pour destruction le du tableau Versions.
Restaurer les versions de secrets
Vous pouvez restaurer une version de secret dont la destruction est programmée en l'activant ou en la désactivant.
Activer une version de secret dont la destruction est programmée
Console
Dans la console Google Cloud, accédez à la page Secret Manager.
Cliquez sur le nom du secret. La page Informations détaillées sur le secret s'affiche.
Sur la page Informations détaillées sur le secret, dans le tableau Versions, sélectionnez une version de secret dont la destruction est programmée.
Dans la colonne Actions, cliquez sur
Afficher plus, puis sur Activer.Dans la boîte de dialogue qui s'affiche, cliquez sur Activer les versions sélectionnées.
gcloud
Pour activer une version de secret dont la destruction est planifiée, utilisez la commande gcloud secrets versions enable.
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
- SECRET_VERSION_ID: ID de la version ou identifiant complet de la version
- SECRET_ID: ID du secret ou identifiant complet du secret
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
gcloud secrets versions enable SECRET_VERSION_ID --secret=SECRET_ID
Windows (PowerShell)
gcloud secrets versions enable SECRET_VERSION_ID --secret=SECRET_ID
Windows (cmd.exe)
gcloud secrets versions enable SECRET_VERSION_ID --secret=SECRET_ID
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de projet Google Cloud
- SECRET_ID: ID du secret ou identifiant complet du secret
- VERSION_ID: ID de la version ou identifiant complet de la version
Méthode HTTP et URL :
POST https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:enable
Corps JSON de la requête :
{}
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé
request.json
, puis exécutez la commande suivante :curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:enable"PowerShell
Enregistrez le corps de la requête dans un fichier nommé
request.json
, puis exécutez la commande suivante :$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.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:enable" | Select-Object -Expand ContentVous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID", "createTime": "2024-09-04T06:41:57.859674Z", "state": "ENABLED", "etag": "\"1621457b3c1459\"" }
Désactiver une version de secret dont la destruction est programmée
Console
Dans la console Google Cloud, accédez à la page Secret Manager.
Cliquez sur le nom du secret. La page Informations détaillées sur le secret s'affiche.
Sur la page Informations détaillées sur le secret, dans le tableau Versions, sélectionnez une version de secret dont la destruction est programmée.
Dans la colonne Actions, cliquez sur
Afficher plus, puis sur Désactiver.Dans la boîte de dialogue qui s'affiche, cliquez sur Désactiver les versions sélectionnées.
gcloud
Pour désactiver une version de secret dont la destruction est planifiée, utilisez la commande gcloud secrets versions disable.
Avant d'utiliser les données de la commande ci-dessous, effectuez les remplacements suivants :
- SECRET_VERSION_ID: ID de la version ou identifiant complet de la version
- SECRET_ID: ID du secret ou identifiant complet du secret
Exécutez la commande suivante :
Linux, macOS ou Cloud Shell
gcloud secrets versions disable SECRET_VERSION_ID --secret=SECRET_ID
Windows (PowerShell)
gcloud secrets versions disable SECRET_VERSION_ID --secret=SECRET_ID
Windows (cmd.exe)
gcloud secrets versions disable SECRET_VERSION_ID --secret=SECRET_ID
La réponse contient la version désactivée du secret.
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID de projet Google Cloud
- SECRET_ID: ID du secret ou identifiant complet du secret
- VERSION_ID: ID de la version ou identifiant complet de la version
Méthode HTTP et URL :
POST https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:disable
Corps JSON de la requête :
{}
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé
request.json
, puis exécutez la commande suivante :curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:disable"PowerShell
Enregistrez le corps de la requête dans un fichier nommé
request.json
, puis exécutez la commande suivante :$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.googleapis.com/v1/projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID:disable" | Select-Object -Expand ContentVous devriez recevoir une réponse JSON de ce type :
{ "name":"projects/PROJECT_ID/secrets/SECRET_ID/versions/VERSION_ID", "createTime":"2023-10-16T17:21:55.920036Z", "state":"DISABLED", "replicationStatus":{ "automatic":{ } }, "etag":"\"1607d8b3e8e1bc\"" }
Étape suivante
- Découvrez comment garantir l'intégrité des données.
- Découvrez les bonnes pratiques.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/12/22 (UTC).