2014-11-04 50 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上。