2014-11-04 67 views
0

我有一個包含特定憑證和密鑰的yml文件。所以爲了獲得額外的安全性,我想知道是否將它上傳到s3並使用私人網址或通過aws對象進行訪問會很好。如何讀取上傳到aws s3的yml文件

我試着在我的development.rb中加載沒有工作的文件。

接下來我嘗試創建aws對象並訪問s3存儲桶中的文件。

s3 = AWS::S3.new(access_ key_id: 'xxx', secret_access_key: 'yyy') 

s3.buckets['my-bucket'].objects['file_name.yml'] 

我試過把URL,文件名沒有.yml來獲取文件並讀取它。但它不斷給我回空{}。這是否與url/file權限有關?我怎樣才能做到這一點?

這是我第一次使用aws,我不確定我的方法是否正確,或者這是保持敏感數據安全的最佳方法。 Plz指導我如何實現這一目標。

謝謝

+1

爲什麼在S3上託管它更安全?這在我看來只會產生一條額外的攻擊路徑。如果有人得到你的源代碼,他們會得到你的access_key並且能夠獲得你的其他祕密嗎? – Albin 2014-11-04 20:29:49

+0

如果您使用aws-sdk v1,您可以執行yfile = YAML.load(bucket.read)等操作,然後通過執行yfile ['secret_access_key']來訪問yml文件的鍵。 。 希望能幫助到你 – nisevi 2016-11-01 13:08:16

回答

1

我會使用下面的gem,比yaml更好。

https://github.com/bkeepers/dotenv

安裝它,並添加到你的Gemfile。

然後vim .env或使用您選擇的編輯器創建這個新文件。

加入你的鑰匙:

S3_BUCKET=YOURS3BUCKET 
SECRET_KEY=YOURSECRETKEYGOESHERE 

並保存。

無論您需要S3鍵,您現在都可以從您的應用程序中調用它。

ENV['S3_BUCKET'] 
ENV['SECRET_KEY'] 

一旦其推到Heorku,剛剛更新了你的環境變量,沒有必要把你的祕密Github上。