2016-05-19 13 views
0

暗号化されたデータバッグを使用しようとしていますが、困っています。 シークレットファイルをノードにコピーするレシピを書きました。次に、データバッグ内の必要な値は、その秘密で暗号化されていないはずです。 秘密がコピーされる前に、それは私がシェフ:データバッグを読む前に秘密ファイルを作成する

のようなエラーが発生しましたrb_sysopen @そのようなファイルやディレクトリの変数が処理されているようだ -

の/ etc /シェフ/ mysql_db_keys/mysqlの秘密を参照してくださいコード以下:

cookbook_file '/etc/chef/mysql_db_keys/mysql-secret' do 
    source 'mysql-secret' 
    owner 'root' 
    group 'root' 
    mode '0700' 
end 

root = data_bag_item('OX-db','root_account',IO.read('/etc/chef/mysql_db_keys/mysql-secret')) 
rootpass = root['password'] 

template "/data/install/CreateAdminAccounts.sql" do 
    source "CreateAdminAccounts.sql.erb" 
    variables(root_password: "#{rootpass}" ) 
    owner "root" 
    group "root" 
    mode "0600" 
    sensitive true 
end 

変数を解釈する前に秘密ファイルをコピーする方法はありますか?

ありがとうございました。

答えて

0

シェフでバッグ解読鍵を配布しないでください。これは、暗号化された袋を最初に使用することの全体的な点を打ち消している(すなわち、シェフサーバはデータを読み取ることができない)。鍵を管理して配布するには、シェフに帯域外のものを実装する必要があります。 knife bootstrapには非常に単純なバージョンがあり、ブートストラップ時にワークステーションからターゲットにキーをコピーしますが、これは長期的に必要なものではありません。

1

私はより良いアプローチは、シェフのボールトでこれを管理することが分かっ:

https://www.chef.io/blog/2016/01/21/chef-vault-what-is-it-and-what-can-it-do-for-you/

+0

リンクのみ答えが本当にありませんが(リンクブレークかのように、何の答えはもうありません)のstackoverflowに歓迎します。あなたの答えの関連する段落を引用することを考慮して、リンクをクリックすることなく人々が何について考えているかを考えてください。 – Tensibai

関連する問題