web-dev-qa-db-fra.com

Erreur de coffre-fort lors de l'écriture

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.
10
Arun

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
7
Arun

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
22
vicsz

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

3
Taras Vaskiv

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

0
Nagaraj