2016-05-18 2 views
0

シェフサーバーに既に存在するデータバッグアイテムを作成しました。
は今、私はシェフDatabagを作成し、属性として秘密に合格しようとしています、そのためにシェフのレシピ
にそのdatabag項目の値を取得しようとしています:暗号化されたデータバッグの使用中にChef属性としてシークレットを渡す

secret = Chef::EncryptedDataBagItem.load_secret("#{node['secret']}") 
masterkey = Chef::EncryptedDataBagItem.load("databag_secrets", "databag_masterkey", secret) 

私は、[ノードを宣言しました'秘密']属性セクションで、次のように:

default['secret']="lTW4d+2Wfjlf1gZ42x3qsJh4/GcwqTc5+kS62qKeAHrhzTiL/Bxp+hq3itwudNfUFggCOEaMTsR+Q/qgjx6unKNvKWMKIdCeNM8I4jCUeT2VDaU6C1VxIMrVqfpUmInLuHOaUpVdlnlejkeLBL2KzH5vA8Xx5t2eACBRvrHacTwORMgVr/pnSKBcSzC/wXGoc7bGk7kTd6SaswRfZHnOowxfs2xkGJOFbzyTLZNAqkrJJurBq/ycYGRK2J3ycNyTwISfVgG9YAvP6prHKPsWTp3JgOWNIeZ9ZMSKUy8Lh0vopluXJhSd1WC6ltNcHxSb" 

私は、次のエラーを取得しています:

ERROR: FFI_Yajl::ParseError: lexical error: invalid character inside string. 
      S62qKeAHrhzTiL/Bxp+hq3itwudNfU 
             FggCOEaMTsR+Q/qgjx6 
        (right here) ------^ 

シェフの属性として秘密を渡すことが許されているかどうか教えてください。はいの場合、どうすればよいですか? そうでない場合は、安全な方法で秘密を渡す最も良い方法は何ですか?

+0

:あなたは(これは好ましい方法である)ファイルに秘密を入れたくない場合は、(shown hereなど)ごと#load呼び出しに秘密を渡すことができます... –

+0

これは文字通り暗号化されたデータバッグのポイントを打ち負かします。それをしないでください。 – coderanger

答えて

0

the documentationによると、#load_secretには、秘密を含むファイルへのパスを渡す必要があります。単一引用符の代わりに、二重引用符で試してみてください

Chef::EncryptedDataBagItem.load(data_bag, name, secret = nil) 
関連する問題