2

json ファイルには暗号化されたデータ バッグがあり、いくつかの値を変更する必要があります。私は何かを実行する必要があります...

$ knife data bag from file show --secret-file path/to/secret DATABAGNAME --config path/to/knife.rb

しかし、このコマンドはエラーを出します: ファイル 'DATABAGNAME' が現在のディレクトリまたは 'data_bags/show/ewe-jenkins' で見つかりませんでした。したがって、明らかにコマンドは正しくありません。構文を理解するのに助けが必要です...

json ファイル data_bags の暗号化されていない値を表示できるようにする、chef-repo または data_bags ディレクトリから実行できるコマンドが必要です。最終的にはいくつかの値を変更したいのですが、暗号化されていない値を取得することから始めるのが良いでしょう:)ありがとう!

4

2 に答える 2

4

ローカルjson ファイルについて話しているので、chef-zero / local-mode を使用していると仮定します。json ファイル確かに暗号化でき、コンテンツはナイフで復号化できます。

完全な例:

キーとデータバッグ アイテムを作成します。

$ openssl rand -base64 512 | tr -d '\r\n' > /tmp/encrypted_data_bag_secret

$ knife data bag create mydatabag secretstuff --secret-file /tmp/encrypted_data_bag_secret -z

これを入力してください:

{
  "id": "secretstuff",
  "firstsecret": "must remain secret",
  "secondsecret": "also very secret"
}

json ファイルは実際に暗号化されています。

# cat data_bags/mydatabag/secretstuff.json 
{
  "id": "secretstuff",
  "firstsecret": {
    "encrypted_data": "VafoT8Jc0lp7o4erCxz0WBrJYXjK6j+sJ+WGKJftX4BVF391rA1zWyHpToF0\nqvhn\n",
    "iv": "MhG09xFcwFAqX/IA3BusMg==\n",
    "version": 1,
    "cipher": "aes-256-cbc"
  },
  "secondsecret": {
    "encrypted_data": "Epj+2DuMOsf5MbDCOHEep7S12F6Z0kZ5yMuPv4a3Cr8dcQWCk/pd58OPGQgI\nUJ2J\n",
    "iv": "66AcYpoF4xw/rnYfPegPLw==\n",
    "version": 1,
    "cipher": "aes-256-cbc"
  }
}

復号化されたコンテンツをナイフで表示:

# knife data bag show mydatabag secretstuff -z --secret-file /tmp/encrypted_data_bag_secret
Encrypted data bag detected, decrypting with provided secret.
firstsecret:  must remain secret
id:           secretstuff
secondsecret: also very secret
于 2015-12-12T16:28:52.300 に答える
1

knife data bag showとコマンドを混同していると思いknife data bag from fileます。前者はサーバーからのデータを表示するためのもので、後者はアップロードするためのものです。コマンドラインには両方があります。

于 2015-12-12T01:03:38.213 に答える