【Rails】credentials.yml로 시크릿 키등을 관리한다
3748 단어 루비credentialsRails5
소개
Rails 5계에서 등장한 credentials에 대해 비망록적으로 정리해 둡니다.
credentials는?
비밀 키 등을 두는 파일입니다.
이 파일의 내용은 master.key에 의해 암호화되므로 올바른 master.key를 모르는 사람은 내용을 볼 수 없습니다.
credentials의 내용은, master.key의 정보가 있으면 다른 파일 중에서 변수로서 호출할 수 있으므로, 이 파일안에 API키등을 넣어 두면 편리하기도 합니다.
master.key와 credentials 파일은
rails new 때 자동으로 만들어지고 master.key는 기본적으로 .gitignore에 들어 있기 때문에 github에서 유출할 걱정도 없습니다.사전 준비
이번에는 VScode를 사용한다고 가정합니다.
먼저 VScode에서
command + shift + P 에서 팔레트를 여십시오.그런 다음 검색 상자에
shell를 입력하여 셸을 설치합니다.이제 터미널에서 credentials 파일을 VScode에서 편집할 수 있습니다.
설정 방법
다음 명령을 사용하여 credentials 파일을 VScode에서 엽니다.
터미널
$ EDITOR='code --wait' rails credentials:edit
기본적으로 처음 세 줄에 예제가 주석으로 작성되어 있으므로 흉내내면 괜찮습니다.
xxxxx.credentials.yml
aws:
access_key_id: 123
secret_access_key: 345q
1행째는 어떤 그룹인가, 2, 3행째는 id나 액세스 키등을 쓰고 있습니다.
그룹의 내용은 들여 쓰기가 필요합니다.
하나만이 아니라 복수를 설정할 수 있으므로 시험으로 설정해 보겠습니다.
xxxxx.credentials.yml
aws:
access_key_id: 123
secret_access_key: 345q
gmail:
email: '[email protected]'
password: 'sample1234'
저장
credentials 파일을 저장하려면 VScode 탭을 닫아야 합니다.
닫고 올바르게 저장되면 터미널에서 다음과 같이 메시지를 표시합니다.
New credentials encrypted and saved.전화하는 방법
내용을 호출하려면 루비 파일에서 다음과 같이 쓰면 OK입니다.
Rails.application.credentials[:グループ名][:中身]
이번 예에서는 다음과 같이 사용할 수 있습니다.
Rails.application.credentials[:aws][:access_key_id]
Rails.application.credentials[:gmail][:email]
터미널에서 콘솔에서 확인할 수 있으므로 credentials 파일을 편집했을 때는 확인하는 것이 좋습니다.
rails c 에서 콘솔을 열고 확인해 봅니다.
제대로 호출 할 수 있습니다.
주의
팀 개발할 때 등은 master.key를 공유함으로써 다른 사람도 credentials의 내용을 보거나 편집할 수 있습니다. master.key는 메시지 앱으로 공유하면 좋을 것입니다.
그러나, 신뢰하는 동료라도 개인으로 가지고 있는 aws의 id와 액세스 키 따위는 credentials에서도 공유해서는 안됩니다. (신용카드 번호와 인증 코드를 공유하는 것과 같습니다.)
공유해야 할 정보와 그렇지 않은 정보는 신중하게 판단합시다.
만일 배신당해 카이지와 같은 전개가 되어 후회하는 일이 없도록! 웃음
Reference
이 문제에 관하여(【Rails】credentials.yml로 시크릿 키등을 관리한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/koki_73/items/2dc70e4a3fb169015884텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)