【问题标题】:Chef Vault Item was not encrypted with your public keyChef Vault 项目未使用您的公钥加密
【发布时间】:2022-04-08 00:59:18
【问题描述】:

尝试为用户创建 Chef Vault 存储加密凭据,然后将说明书部署到我希望在其上创建用户的节点。

使用 Chef 版本 12.13.37

使用 chef-vault 食谱 2.1.1

最初使用

创建保管库
knife vault create ftp users \ '{"user":"password"}' \ --search 'name:my_node_name' \ --admins bk0155 \ --mode client

knife vault show ftp users 的输出给出

id:             users
user: password

我的食谱里有这个:

include_recipe 'chef-vault'
vault = ChefVault::Item.load("ftp", "users")
user 'testuser' do
      comment 'Test User Account'
      home '/home/testuser'
      shell '/sbin/bash'
      group 'testusers'
      password vault['user']
end

我得到的错误是

 ChefVault::Exceptions::SecretDecryption
 ---------------------------------------
 ftp/users is not encrypted with your public key.  Contact an administrator of the vault item to encrypt for you!

 Cookbook Trace:
 ---------------
 /var/chef/cache/cookbooks/ftp_test/recipes/default.rb:10:in 
 `from_file'


/var/chef/cache/cookbooks/compat_resource/files/lib/chef_compat/monkeypatches/chef/run_context.rb:347:in `load_recipe'

  Relevant File Content:
  ----------------------
  /var/chef/cache/cookbooks/ftp_test/recipes/default.rb:

    3:  # Recipe:: default
    4:  #
    5:  # Copyright:: 2017, The Authors, All Rights Reserved.
    6:  #
    7:
    8:  include_recipe 'chef-vault'
    9:
   10>> vault = ChefVault::Item.load("ftp", "users")
   11:

我试过做 knife update ftp users -S 'name:my_node_name' -M client 更新,但这似乎没有帮助

执行knife data bag show ftp users_keys 会得到:

WARNING: Unencrypted data bag detected, ignoring any provided secret options.
admins:
  bk0155
  my_node_name
my_node_name: fqkwg0098mpbDiJKFCsBEoMLiyN0kZLksiZpWwoxepr6lUgBMFGkJvSpkoGf
3ZwZt8PG2keNe9RYQ93rvgRBKGhLwP46lvDMLO78CEBPfSV5S2mYoe7B7mBb
NFhHPmWkXX2IhaL6TkLvvjATVqBEuUbeqtDb7HO5XOSTuBHacovQxEJerHmA
dXWBsPgs/GPnsu8xK3BNLHjvyVJ3ovaYkvCTxdFTWvDfb8184jC9rJX882Op
XCeGhZ3I5BPXDmNi5XW7EAPgjtbqgxIGPZwYHrrEcZji4TMKxnc6O5+9rPB/
/j4mM/QEL5zGtTeeluzmX+wSE605p9KwGAqsLpUn/g==

clients:                  my_node_name
id:                       users_keys
bk0155:                 mDsML41veFJclX0yXVMqYGvW52uRnZRtQTrRl1XTddgUJc0N9RR1qnyk0gxC
07jKkN+AsdkFuMoOGr7UcUCo/1MEsL125CvsSevOGOF9QMvUk67xw8Q+OlP0
4vqmvJNyaxeXxVV7FOVJSTC2ytovStD2WaSshZutNhG+EgIZ0zSOivHHryW+
aFyClqjVIA3Sm7ITuEyheqBJZZntpHhK1a4Gwk1V3T9aJZ3OT5vvFtNzppnx
CerZvQjPdthwmrqbKfMmYG3KmsPUPEMsAHxK8ryw8Sntu/MYechWzUTGYDii
gcuhehwUCgb+6LAM66ygiIqxcpZ3qg2ddcSUbo5V0g==

search_query:             name:my_node_name

我也尝试了knife vault rotate keys,但仍然遇到同样的错误。

【问题讨论】:

    标签: chef-infra


    【解决方案1】:

    如果你的节点密钥发生了变化,你应该运行knife vault refresh ftp users_keys,如果你没有在knife.rb中设置这个-M client。如果它不起作用,请尝试删除整个保管库并从头开始创建它,但refresh 应该足够了。

    update is for updating the content of the vault, rotate is for rotating shared key not client's keys.

    【讨论】:

    • 1.不幸的是refresh 没有改变解密过程的状态。结果相同的错误。 2. 重新创建保险库会导致同样的错误。
    • 我已经给你赏金了。感谢您的尝试。
    【解决方案2】:

    首先使用删除凭据

    knife data bag show VAULT ITEM_keys [--user=USER]
    # keep track of --admins
    knife data bag delete VAULT ITEM_keys [-C CLIENT] [--user=USER] -y
    knife data bag delete VAULT ITEM [-C CLIENT] [--user=USER] -y
    

    现在您可以创建了,但您可能需要提供 [--admins=]

    【讨论】:

      猜你喜欢
      • 2014-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-17
      • 2011-11-10
      相关资源
      最近更新 更多