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.

  1. Dans la console, cliquez sur l'icône Menu Icône de menu > Liste de ressources.
  2. Dans la liste des services, sélectionnez votre instance de Secrets Manager.
  3. Dans l'interface utilisateur Secrets Manager , accédez à la liste Secrets.
  4. Dans la ligne du secret que vous souhaitez inspecter, cliquez sur l’icône du menuActions Icône Actions > Historique des versions.
  5. Facultatif: mettez à jour les métadonnées de la version spécifique du secret que vous visualisez.
    1. 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.
    2. 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.

  1. Dans la console, cliquez sur l'icône Menu Icône de menu > Liste de ressources.

  2. Dans la liste des services, sélectionnez votre instance de Secrets Manager.

  3. Dans l'interface utilisateur Secrets Manager , accédez à la liste Secrets.

  4. Dans la ligne du secret que vous souhaitez inspecter, cliquez sur l’icône du menuActions Icône Actions > 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.

  5. Téléchargez un fichier ou entrez les métadonnées et les métadonnées de version au format JSON.

  6. 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.

  1. Dans la console, cliquez sur l'icône Menu Icône de menu > Liste de ressources.

  2. Dans la liste des services, sélectionnez votre instance de Secrets Manager.

  3. Dans l'interface utilisateur Secrets Manager , accédez à la liste Secrets.

  4. Dans la ligne du secret que vous souhaitez inspecter, cliquez sur l’icône du menuActions Icône Actions > 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.

  5. Cliquez sur le menu Actions menu Icône Actions > 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.