【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.)