Je voulais tester la configuration de Spring Cloud Vault.
J'ai installé un serveur Vault localement et lorsque j'essaie de write
certaines valeurs-clés son échec et me demandant d'utiliser vault kv put
commande.
Alors que l'exemple de Spring Cloud Config dans ce lien montre l'utilisation de la commande d'écriture du coffre-fort
C'est l'erreur que j'obtiens est
$ vault write secret/my-app foo=bar
Error writing data to secret/my-app: Error making API request.
URL: PUT http://127.0.0.1:8200/v1/secret/my-app
Code: 404. Errors:
WARNING! The following warnings were returned from Vault:
* Invalid path for a versioned K/V secrets engine. See the API docs for the
appropriate API endpoints to use. If using the Vault CLI, use 'vault kv put'
for this operation.
J'ai pu écrire après avoir activé un chemin séparé avec la commande ci-dessous
vault secrets enable -path=my-app kv
vault write my-app/my-app password=123
Dans Spring Cloud Config, je devais mentionner le nom du dossier comme backend dans bootstrap.yml
fichier
spring:
cloud:
vault:
token: bc53d1a4-2551-4869-9574-7a9e60501ec1
scheme: http
generic:
backend: my-app
Essayez ce qui suit ..
./vault kv put secret/my-app password=123
J'ajouterai que c'est quelque chose de nouveau dans 0.10.0.
Il semble que la version 0.10.0 comporte des changements d'API de rupture ... la solution n ° 2 consiste donc à utiliser une version antérieure de Vault (v0.9.6). Cela inclut la configuration par défaut de la v2 du moteur secret KV, qui est versionné.
La solution n ° 3 consiste à recréer le moteur/secret avec la v1 de KV. Exécution de ce qui suit:
./vault secrets disable secret
./vault secrets enable -version=1 -path=secret kv
J'ai eu la même erreur, lors de l'utilisation de python, hvac, vault et kv comme moteur. Et le moteur kv est versionné. J'ai utilisé le client HVAC
client.write("secret/taras", data=dict(python='is secret'))
J'ai donc
InvalidPath: "request_id": "d5c0f889-2c42-4141-1cc6-31ed1336c768", "lease_id": "", "renouvelable": false, "lease_duration": 0, "data": null, "wrap_info": null, " warnings ": [" Chemin d'accès non valide pour un moteur de secrets K/V versionné. Voir les documents API pour les points de terminaison API appropriés à utiliser. Si vous utilisez la Vault CLI, utilisez 'vault kv put' pour cette opération. "]," auth " :nul}
La façon dont j'ai résolu ce problème changeait de chemin pour stocker le secret
client.write("secret/data/taras", data=dict(python='is secret'))
PS: comme vous l'avez compris, le nom de mon secret est "taras".
Essayez ce qui suit dans Windows, (dans l'invite de commande),
SET VAULT_TOKEN = 00000000-0000-0000-0000-000000000000
SET VAULT_ADDR = http://127.0.0.1:82
vault kv put secret/gs-vault-config example.username = demouser example.password = demopassword
(Il y a maintenant un changement dans la création de la valeur-clé dans Hashicorp Vault. Utilisez kv put au lieu d'écrire.)