2014-11-04 3 views
0

특정 자격 증명과 키가 들어있는 yml 파일이 있습니다. 따라서 보안을 강화하기 위해 s3에 업로드하고 개인 url 또는 aws 객체를 통해 액세스하는 것이 좋을지 궁금했습니다.aws s3에 업로드 된 yml 파일을 읽는 방법

내 development.rb에서 URL을 제공하려고 시도했지만 작동하지 않는 파일을로드하려고했습니다.

다음 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/파일 사용 권한과 관련이 있습니까 ?? 이것을 어떻게 할 수 있습니까?

aws를 처음 사용하는 경우 접근 방식이 올바른지 또는 민감한 데이터를 안전하게 유지하는 최선의 방법인지 확실하지 않습니다. Plz이 방법을 달성하기 위해 나를 안내.

감사합니다.

+1

왜 S3에서 호스트하는 것이 더 안전할까요? 이것은 내 마음 속에 오직 하나의 추가 공격 경로를 생성합니다. 누군가 당신의 소스 코드를 확보하면 access_key를 얻고 다른 비밀을 얻을 수 있습니까? – Albin

+0

aws-sdk v1을 사용하는 경우 yfile = YAML.load (bucket.read)와 같은 작업을 수행하면 yfile [ 'secret_access_key'] 예를 들어 yml 파일의 키에 액세스 할 수 있습니다. 도움이되기를 바랍니다. – nisevi

답변

1

yaml 구현보다 훨씬 나은 다음 보석을 사용합니다.

https://github.com/bkeepers/dotenv

를 설치하고 Gemfile 당신에 추가 할 수 있습니다.

다음 vim .env 또는 원하는 편집기를 사용하여이 새 파일을 만드십시오.

S3_BUCKET=YOURS3BUCKET 
SECRET_KEY=YOURSECRETKEYGOESHERE 

을하고 저장 :

열쇠를 추가합니다.

이제 응용 프로그램에서 S3 키가 필요할 때마다 응용 프로그램에서 호출 할 수 있습니다.

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

일단 Heorku에 푸시되고 환경 변수가 업데이트되면 비밀을 Github에 푸시 할 필요가 없습니다.

관련 문제