Accès aux secrets
Après avoir stocké des secrets dans votre instance de service IBM Cloud® Secrets Manager, vous pouvez extraire leurs valeurs.
Avant de commencer
Avant de commencer, vérifiez que vous disposez du niveau d'accès requis. Pour afficher la liste de vos secrets disponibles, vous devez disposer du rôle de service Lecteur ou supérieur. Pour extraire la valeur d'un secret, vous devez avoir le rôle de service Lecteur de secrets ou supérieur.
Extraction d'un secret dans l'interface utilisateur
Vous pouvez récupérer un secret en utilisant l'interface utilisateur Secrets Manager. Procédez comme suit pour obtenir votre secret.
- Dans la table Secrets, cliquez sur le menu Actions
pour ouvrir une liste d'options pour votre secret.
- Pour afficher la valeur du secret, cliquez sur Afficher le secret.
- Cliquez sur Confirmer après vous être assuré que vous êtes dans un environnement sécurisé.
La valeur confidentielle est affichée pendant 15 secondes, puis la boîte de dialogue se ferme.
Après la rotation de votre secret, vous pouvez consulter la valeur précédente du secret à partir de l'option Historique de la version.
Vous pouvez également récupérer les détails d'un secret tels que la date d'expiration, l'intervalle de rotation ou l'état.
- Dans la table Secrets, cliquez sur le menu Actions
pour ouvrir une liste d'options pour votre secret.
- Pour afficher la valeur de secret, cliquez sur Détails.
Vous pouvez également filtrer les secrets récupérés à l'aide de l'option de filtrage du tableau Secrets et sélectionner un groupe de secrets, un type de secret ou les deux.
Téléchargement de certificats
Pour télécharger un certificat à l'aide de l'interface utilisateur Secrets Manager, 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 le tableau Secrets, ouvrez le menu déroulant du certificat que vous souhaitez télécharger.
- Cliquez sur Télécharger. Le fichier de certificat est téléchargé sur votre système local.
Extraction d'un secret à partir de l'interface de ligne de commande
Après avoir stocké un secret dans votre instance, vous devrez peut-être récupérer sa valeur pour pouvoir vous connecter à une application externe ou accéder à un service protégé. Vous pouvez extraire la valeur d'un secret à l'aide du plug-in de l'interface de ligne de commande Secrets Manager.
Pour obtenir la valeur d'un secret et examiner ses détails tels que la date d'expiration et l'intervalle ou l'état de rotation, exécutez la commande ibmcloud secrets-manager secret.
ibmcloud secrets-manager secret --id SECRET_ID
La commande génère la valeur du secret ainsi que d'autres métadonnées. Pour plus d'informations sur les options de commande, voir ibmcloud secrets-manager secret.
Vous pouvez également obtenir un secret en utilisant son nom:
ibmcloud secrets-manager secret-by-name --secret-type SECRET_TYPE --name SECRET_NAME --secret-group-name SECRET_GROUP_NAME
Vous pouvez filtrer davantage les secrets extraits à l'aide des indicateurs facultatifs --secret-types et --match-all-labels.
Téléchargement de certificats
Lorsque vous travaillez avec des certificats, vous pouvez avoir besoin de télécharger le contenu d'un certificat dans un fichier pem à l'aide de l'interface de ligne de commande. Pour ce faire, vous pouvez utiliser le plug-in
de l'interface de ligne de commande Secrets Manager et jq.
Pour stocker le certificat dans un fichier pem , exécutez la commande ibmcloud secrets-manager secret.
ibmcloud secrets-manager secret --id=SECRET_ID | jq -r '.certificate' | sed 's/\\n/\n/g' > my-cert-file.pem
La commande génère la valeur du certificat et la stocke dans my-cert-file.pem. Pour plus d'informations sur les options de commande, voir ibmcloud secrets-manager secret.
Extraction d'un secret à l'aide de l'API à l'aide d'un ID secret
Après avoir stocké un secret dans votre instance, vous devrez peut-être récupérer sa valeur pour pouvoir vous connecter à une application externe ou accéder à un service protégé. Vous pouvez extraire la valeur d'un secret à l'aide de l'API Secrets Manager.
L'exemple de demande suivant extrait un secret et ses détails, tels que la date d'expiration et l'intervalle ou l'état de rotation. Lorsque vous appelez l'API, remplacez les variables d'ID et le jeton IAM par les valeurs spécifiques à votre instance Secrets Manager.
curl -X GET
-H "Authorization: Bearer {iam_token}" \
-H "Accept: application/json" \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{secret_ID}"
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 Obtenir un secret.
Vous pouvez filtrer davantage les secrets extraits à l'aide des paramètres facultatifs ?secret_types et ?match_all_labels.
Extraction d'un secret à l'aide de l'API à l'aide du nom de secret
Vous pouvez également extraire la valeur du secret en faisant référence à son nom au lieu de l'ID:
curl -X GET
-H "Authorization: Bearer {iam_token}" \
-H "Accept: application/json" \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secret_groups/{secret_group_name}/secret_types/{secret_type}/secrets/{secert_name}"
Notez que vous devez spécifier les valeurs name, secret group name et secret_type du secret.
Vous pouvez filtrer davantage les secrets extraits à l'aide des paramètres facultatifs ?secret_types et ?match_all_labels.
Extraction de secrets arbitraires contenant des données binaires
Si vous avez créé un secret arbitraire à l'aide d'un fichier binaire, tel qu'une image, le service utilise le codage base64 pour stocker les données sous la forme d'une chaîne codée en base64. Pour accéder au secret dans sa forme originale, vous devez suivre quelques étapes supplémentaires pour base64 décoder votre secret récupéré.
Récupérez d'abord le secret en appelant l'API Secrets Manager. L'exemple suivant utilise cURL et jq pour collecter la valeur payload d'un secret.
export ARBITRARY_SECRET=`curl -X GET
-H "Authorization: Bearer $IAM_TOKEN" \
-H "Accept: application/json"
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/arbitrary/{id}" | jq --raw-output '.payload | sub(".*,"; "")'`
Si vous examinez le contenu de $ARBITRARY_SECRET, vous voyez des données codées en base64. Le fragment ci-après est un exemple de sortie.
echo $ARBITRARY_SECRET
eUdB68klDSrzSKgWcQS5...(truncated)
Pour visualiser le secret dans sa forme originale (fichier binaire), vous pouvez utiliser le décodage base64. L'exemple suivant utilise l'utilitaire base64 macOS pour le décodage base64 du contenu $ARBITRARY_SECRET.
echo $ARBITRARY_SECRET | base64 --decode > my-secret.png
Les données sont converties en fichier binaire que vous pouvez ouvrir à partir de votre ordinateur local.
Téléchargement de la version précédente d'un certificat
Une fois que vous avez effectuer une rotation d'un certificat, vous pouvez accéder à l'aide d'un programme à sa version précédente à l'aide de l'API Secrets Manager.
L'exemple de demande suivant extrait un secret et son contenu. Lorsque vous appelez l'API, remplacez les variables d'ID et le jeton IAM par les valeurs spécifiques à votre instance Secrets Manager.
curl -X GET
--header "Authorization: Bearer {iam_token}" \
--header "Accept: application/json" \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{id}/versions/previous"
Lien direct vers un secret
Vous pouvez copier un lien qui pointe directement vers le panneau de détails d'un secret.
- Dans la table Secrets, cliquez sur le menu Actions
pour ouvrir une liste d'options pour votre secret.
- Pour copier un lien vers le secret, cliquez sur Copier le secret URL.