Gestion des versions de secrets
Lorsque vous effectuez une rotation de secret dans IBM Cloud® Secrets Manager, vous créez une nouvelle version de sa valeur. Vous pouvez utiliser IBM Cloud® Secrets Manager pour consulter l'historique des versions et mettre à jour les métadonnées de version des secrets. Si vous remplacez ou remplacez accidentellement un secret, vous pouvez également le restaurer à une version précédente.
Avant de commencer
Avant de commencer, vérifiez que vous disposez du niveau d'accès requis. Pour mettre à jour les métadonnées d'une version de secret ou restaurer un secret dans sa version précédente, vous avez besoin du rôle de service Auteur ou supérieur. Pour afficher l'historique des versions d'un secret, vous devez disposer du rôle de service Reader ou d'un rôle supérieur.
Affichage de l'historique des versions des secrets
Lorsque vous effectuez une rotation de secret dans IBM Cloud® Secrets Manager, vous créez une nouvelle version de sa valeur. Vous pouvez examiner rapidement l'historique des versions de vos secrets à l'aide de l'interface utilisateur ou de l'API.
Secrets Manager conserve jusqu'à 50 versions d'un secret à des fins d'audit, y compris les métadonnées du secret. Toutefois, seules la version actuelle et la version immédiatement antérieure contiennent les données secrètes, contrairement aux versions antérieures.
Affichage de l'historique des versions dans l'interface utilisateur
Si vous vérifiez l'historique des versions d'un secret, vous pouvez utiliser l'interface utilisateur Secrets Manager pour afficher les caractéristiques générales de chaque rotation.
- Dans la console, cliquez sur l'icône Menu
> Liste de ressources.
- Dans la liste des services, sélectionnez votre instance de Secrets Manager.
- Dans l'interface utilisateur Secrets Manager , accédez à la liste Secrets.
- Dans la ligne du secret que vous souhaitez inspecter, cliquez sur l’icône du menuActions
> Historique des versions.
- Facultatif: mettez à jour les métadonnées de la version spécifique du secret que vous visualisez.
- Pour mettre à jour les métadonnées de votre version de secret, téléchargez un fichier ou entrez les métadonnées et les métadonnées de version au format JSON.
- Cliquez sur Mettre à jour.
Affichage de la liste des versions de secret à partir de l'interface de ligne de commande
Si vous vérifiez l'historique des versions d'un secret, vous pouvez utiliser le plug-in de la CLI Secrets Manager pour afficher les caractéristiques générales de chaque rotation.
Pour répertorier toutes les versions associées à un secret, exécutez la commande ibmcloud secrets-manager secret-versions.
Les options pour SECRET_TYPE sont les suivantes : arbitrary, iam_credentials, imported_cert, kv, private_cert, public_cert, service_credentials,
custom_credentials, et username_password.
ibmcloud secrets-manager secret-versions --secret-id SECRET-ID
La commande génère des informations sur les versions en cours et précédentes. Par exemple, la date à laquelle chaque version a été créée. Pour plus d'informations sur les options de commande, voir ibmcloud secrets-manager secret-versions.
Affichage de la liste des versions d'un secret avec l'API
Si vous vérifiez l'historique des versions d'un secret, vous pouvez utiliser l'API Secrets Manager pour afficher les caractéristiques générales de chaque rotation.
L'exemple de demande suivant répertorie les propriétés des métadonnées de chaque version. Lorsque vous appelez l'API, remplacez les variables d'ID et le jeton IAM par les valeurs spécifiques à votre instance Secrets Manager. Les options pour
{secret_type} sont les suivantes : arbitrary, iam_credentials, imported_cert, kv, private_cert, public_cert, service_credentials, custom_credentials,
et username_password.
curl -X GET
--H "Authorization: Bearer {iam_token}" \
--H "Accept: application/json" \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{id}/versions"
Une réponse réussie renvoie des détails sur les métadonnées de chaque version du secret.
{
"versions": [
{
"created_at": "2022-06-27T11:58:15Z",
"created_by": "iam-ServiceId-e4a2f0a4-3c76-4bef-b1f2-fbeae11c0f21",
"expiration_date": "2023-10-05T11:49:42Z",
"id": "bc656587-8fda-4d05-9ad8-b1de1ec7e712",
"payload_available": true,
"secret_group_id": "67d025e1-0248-418f-83ba-deb0ebfb9b4a",
"secret_id": "67d025e1-0248-418f-83ba-deb0ebfb9b4a",
"secret_name": "example-imported-certificate",
"secret_type": "imported_cert",
"serial_number": "38:eb:01:a3:22:e9:de:55:24:56:9b:14:cb:e2:f3:e3:e2:fb:f5:18",
"validity": {
"not_after": "2023-10-05T11:49:42Z",
"not_before": "2022-06-27T11:58:15Z"
},
"version_custom_metadata": {
"custom_version_key": "custom_version_value"
}
}
],
"total_count": 1
}
La propriété downloaded indique si les données de chaque version du secret ont déjà été lues ou ont fait l'objet d'un accès. Si la zone payload_available a une valeur de true, cela signifie que vous pouvez
restaurer les données secrètes de cette version ou y accéder. Pour plus d'informations sur les paramètres de demande obligatoires
et facultatifs, consultez la Référence des API.
Vous pouvez stocker des métadonnées adaptées aux besoins de votre organisation à l'aide du paramètre de demande version_custom_metadata. Les métadonnées personnalisées de votre secret sont stockées comme toutes les autres métadonnées,
et vous ne devez pas y inclure de données confidentielles. Pour plus d'informations sur les paramètres de demande obligatoires et facultatifs, consultez la référence de l'API.
Mise à jour des métadonnées des versions de secret dans l'interface utilisateur
Vous pouvez mettre à jour les métadonnées d'une version spécifique d'un secret à l'aide de l'interface utilisateur Secrets Manager.
Pour mettre à jour les métadonnées d'une version secrète, procédez comme suit.
-
Dans la console, cliquez sur l'icône Menu
> Liste de ressources.
-
Dans la liste des services, sélectionnez votre instance de Secrets Manager.
-
Dans l'interface utilisateur Secrets Manager , accédez à la liste Secrets.
-
Dans la ligne du secret que vous souhaitez inspecter, cliquez sur l’icône du menuActions
> Historique des versions.
Si une rotation du secret a été effectuée précédemment, la page affiche des informations sur les versions en cours et précédentes, par exemple la date de création de chaque version.
-
Téléchargez un fichier ou entrez les métadonnées et les métadonnées de version au format JSON.
-
Cliquez sur Mettre à jour.
Mise à jour des métadonnées des versions de secret à partir de l'interface CLI
Vous pouvez utiliser le plug-in d'interface de ligne de commande Secrets Manager pour mettre à jour les métadonnées d'une version spécifique d'un secret.
Pour mettre à jour les métadonnées d'un secret, exécutez la commande ibmcloud secrets-manager secret-metadata-update.
L'exemple suivant illustre le format de la commande ibmcloud secrets-manager secret-metadata-update.
ibmcloud secrets-manager secret-version-metadata-update --secret-id SECRET-ID --id VERSION-ID --version-custom-metadata='{"anyKey": "anyValue"}'
Mise à jour des métadonnées des versions de secret à l'aide de l'API
Si vous mettez à jour les métadonnées d'une version de secret, vous pouvez utiliser l'API Secrets Manager.
L'exemple de demande suivant met à jour les propriétés des métadonnées pour chaque version. Lorsque vous appelez l'API, remplacez les variables d'ID et le jeton IAM par les valeurs spécifiques à votre instance Secrets Manager. Les options pour
{secret_type} sont les suivantes : arbitrary, iam_credentials, imported_cert, kv, private_cert, public_cert, service_credentials, custom_credentials,
et username_password.
curl -X PATCH
-H "Authorization: Bearer {iam_token}" \
-H "Accept: application/json" \
--H "Content-Type: application/merge-patch+json" \
-d '{ "version_custom_metadata": { "version_special_id" : "someString" } }' \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{id}/versions/{version_id}/metadata"
Une réponse réussie renvoie des détails sur les métadonnées de chaque version du secret.
{
"alias": "current",
"created_at": "2022-06-27T11:58:15Z",
"created_by": "iam-ServiceId-e4a2f0a4-3c76-4bef-b1f2-fbeae11c0f21",
"expiration_date": "2023-10-05T11:49:42Z",
"id": "bc656587-8fda-4d05-9ad8-b1de1ec7e712",
"payload_available": true,
"secret_group_id": "67d025e1-0248-418f-83ba-deb0ebfb9b4a",
"secret_id": "67d025e1-0248-418f-83ba-deb0ebfb9b4a",
"secret_name": "example-arbitrary-secret",
"secret_type": "arbitrary",
"version_custom_metadata": {
"custom_version_key": "custom_version_value"
}
}
La propriété downloaded indique si les données de chaque version du secret ont déjà été lues ou ont fait l'objet d'un accès. Si la zone payload_available a une valeur de true, cela signifie que vous pouvez
restaurer les données secrètes de cette version ou y accéder.
Vous pouvez stocker des métadonnées adaptées aux besoins de votre organisation à l'aide du paramètre de demande version_custom_metadata. Les métadonnées personnalisées de votre secret sont stockées comme toutes les autres métadonnées,
et vous ne devez pas y inclure de données confidentielles. Pour plus d'informations sur les paramètres de demande obligatoires et facultatifs, consultez la référence de l'API
Restauration de la version précédente des secrets
Un secret existant a été remplacé ou écrasé par erreur ? Vous pouvez utiliser IBM Cloud® Secrets Manager pour revenir immédiatement à la version précédente.
Lorsque vous restaurez la version précédente d'un secret, une nouvelle version du secret est créée. Par exemple, si la version en cours de votre secret est 3, et que vous revenez à la version 2, les données qui ont été restaurées à partir de la version 2 deviennent la version 4.
Vous pouvez restaurer une version sur des types de secret pris en charge. A des fins d'audit, le service conserve les métadonnées d'un maximum de 50 versions pour chaque secret. Vous pouvez les consulter dans l'historique des versions d'un secret.
Types de secret pris en charge
La restauration vers une version précédente est prise en charge pour les données d'identification IAM.
Restauration d'une version précédente dans l'interface utilisateur
Vous pouvez utiliser l'interface utilisateur Secrets Manager pour restaurer la version précédente d'un secret.
-
Dans la console, cliquez sur l'icône Menu
> Liste de ressources.
-
Dans la liste des services, sélectionnez votre instance de Secrets Manager.
-
Dans l'interface utilisateur Secrets Manager , accédez à la liste Secrets.
-
Dans la ligne du secret que vous souhaitez inspecter, cliquez sur l’icône du menuActions
> Historique des versions.
Si une rotation du secret a été effectuée précédemment, la page affiche des informations sur les versions en cours et précédentes.
-
Cliquez sur le menu Actions menu
> Restauration à coté de la version du secret que vous souhaitez restaurer.
Actuellement, vous ne pouvez restaurer qu'une seule version pour le type de secret des données d'identification IAM. Une version secrète ne peut être restaurée que si le temps de vie (TTL) ou la durée du bail n'a pas été atteint. Si vous ne voyez aucune option disponible, la restauration d'une version n'est pas prise en charge.
Restauration d'une version précédente à partir de l'interface de ligne de commande
Vous pouvez utiliser le CLI de Secrets Manager pour restaurer un secret à sa version précédente.
L'exemple de commande suivant permet de restaurer la version précédente d'un secret. Lorsque vous appelez la commande, remplacez la variable SECRET_ID par la valeur spécifique à votre instance Secrets Manager.
ibmcloud sm secret-version-create --secret-d SECRET_ID --secret-version-restore-from-version "previous"
Actuellement, vous ne pouvez restaurer qu'une seule version pour les informations d'identification IAM et les secrets de certificats importés. Une version secrète ne peut être restaurée que si le temps de vie (TTL) ou la durée du bail n'a pas été atteint.
Une réponse réussie renvoie la valeur du secret, ainsi que d'autres métadonnées. Pour plus d'informations sur les paramètres de demande obligatoires et facultatifs, voir la Référence des API.
Restauration d'une version précédente avec l'API
Vous pouvez utiliser l'API Secrets Manager pour restaurer la version précédente d'un secret.
L'exemple de demande suivant restaure la version précédente d'un secret. Lorsque vous appelez l'API, remplacez les variables d'ID et le jeton IAM par les valeurs spécifiques à votre instance Secrets Manager. Les valeurs admises pour {secret_type} sont: iam_credentials.
Pour répertorier les versions d'un secret et obtenir l'ID de chaque version, utilisez l'API de liste des versions.
curl -X POST
--H "Authorization: Bearer {iam_token}" \
--H "Accept: application/json" \
--H "Content-Type: application/json" \
--d '{
"restore_from_version": "previous",
"custom_metadata": {
"metadata_custom_key": "metadata_custom_value"
},
"version_custom_metadata": {
"custom_version_key": "custom_version_value"
}
}' \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{id}/versions"
Actuellement, vous ne pouvez restaurer qu'une seule version pour les informations d'identification IAM et les secrets de certificats importés. Une version secrète ne peut être restaurée que si le temps de vie (TTL) ou la durée du bail n'a pas été atteint.
Une réponse réussie renvoie la valeur du secret, ainsi que d'autres métadonnées. Pour plus d'informations sur les paramètres de demande obligatoires et facultatifs, voir la Référence des API.