0

Chef をキッチン (1.5.0) と vagrant (1.8.1) で使用して、新しいサーバーでユーザーを一貫して管理しています。私のユーザーレシピは次のようになります。

include_recipe "users"

group 'sudo'

password_secret = Chef::EncryptedDataBagItem.load_secret(node['enterprise_sp']['secret_file'])

jays_password = Chef::EncryptedDataBagItem.load('user_secrets','jgodse', password_secret)['password']
shadow_password = `openssl passwd -1 -salt xyz #{jays_password}`.strip

user 'jgodse' do
  action :create
  group 'sudo'
  system true
  shell '/bin/bash'
  home '/home/jgodse'
  manage_home true
  password shadow_password  #added to /etc/shadow when chef runs
end

暗号化されていないデータ バッグは、パスワードを平文で構成した場所でした。次に、 knifeコマンド を使用してデータ バッグを暗号化しました。

これは機能しますが、パスワードの設定の問題を回避するための非常に汚い方法のようです。ユーザーブロックのパスワードディレクティブはシャドウパスワードのみを取得し、opensslコマンドにシェルを実行することによってのみ生成できるため、これを行う必要がありました。

パスワードを生成するopensslコマンドを実行せずに、シャドウ パスワードを取得するよりクリーンな方法はありますか?

4

2 に答える 2

3

パスワードをまったく保存しないでください。事前にハッシュして、最初にデータバッグにハッシュを入れてください。また、このような暗号化されたデータ バッグを使用することは恐ろしいレベルで安全ではありません。Chef の暗号化ツールの脅威モデルをよく理解してください。そうではありません。

于 2016-04-13T19:14:26.613 に答える
3

少なくともパスワード ハッシュを事前に計算し、それをデータ バッグに入れます。

インスピレーションについては、 https://github.com/chef-cookbooks/usersを参照してください。

于 2016-04-13T23:56:07.893 に答える