web-dev-qa-db-ja.com

書き込み中のVaultエラー

Spring Cloud Vaultの構成をテストしたかった。

Vaultサーバーをローカルにインストールしましたが、writeの一部のKey-Valueを試行すると失敗し、vault kv putコマンドを使用するように求められます。

Spring Cloud Configの例 このリンク内 は、ボールト書き込みコマンドの使用法を示しています

これは私が得るエラーです

$ 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

以下のコマンドで別のパスを有効にした後に書くことができました

vault secrets enable -path=my-app kv
vault write my-app/my-app password=123

Spring Cloud Configでは、bootstrap.ymlファイルのバックエンドとしてフォルダー名を言及する必要がありました

spring:
  cloud:
    vault:
      token: bc53d1a4-2551-4869-9574-7a9e60501ec1
      scheme: http
      generic:
        backend: my-app
7
Arun

次のことを試してください。

./vault kv put secret/my-app password=123

これは0.10.0の新機能であることを付け加えます。

0.10.0にはAPIにいくつかの重大な変更があるようです...したがって、解決策#2は以前のバージョンのVault(v0.9.6)を使用することです。これには、バージョン対応のKVシークレットエンジンのv2へのデフォルト設定が含まれます。

ソリューション#3は、v1のKVで/ secretエンジンを再作成することです。以下を実行します:

./vault secrets disable secret 
./vault secrets enable -version=1 -path=secret kv
22
vicsz

エンジンとしてpython、hvac、vault、kvを使用しているときに、同じエラーが発生しました。そして、kv-engineはバージョン管理されています。私は空調クライアントを使用しました

client.write("secret/taras", data=dict(python='is secret'))

だから私は得た

InvalidPath: "request_id": "d5c0f889-2c42-4141-1cc6-31ed1336c768"、 "lease_id": ""、 "renewable":false、 "lease_duration":0、 "data":null、 "wrap_info":null、 "警告 ":["バージョン付きのK/Vシークレットエンジンのパスが無効です。使用する適切なAPIエンドポイントについては、APIドキュメントを参照してください。VaultCLIを使用している場合は、この操作に 'vault kv put'を使用してください。 "]、" auth " :ヌル}

私がこの問題を解決した方法は、秘密を保存するためのパスを変更することでした

client.write("secret/data/taras", data=dict(python='is secret'))

PS:あなたが理解したように、私の秘密の名前は「タラス」です。

3
Taras Vaskiv

Windowsで次のことを試してください(コマンドプロンプト)、

SET VAULT_TOKEN = 00000000-0000-0000-0000-000000000000

SET VAULT_ADDR = http://127.0.0.1:82

ボールトkv put secret/gs-vault-config example.username = demouser example.password = demopassword

(現在、Hashicorp VaultでのKey-Valueの作成に変更があります。書き込みではなくkv putを使用してください。)

0
Nagaraj