환경 변수를 1Password CLI로 관리
개시하다
현대 앱에는 외부 서비스의 API 키 등 다양한 신용카드가 많다.
개발자 간에 이 도구들을 안전하게 공유하기 위해sops,doppler,git-crypt 등의 도구를 사용할 수 있다.
또 개발 시 사용direnv 등 환경 변수를 설정하는 경우도 많죠.
그러나 이것들은 모두 추가 도구를 설치해야 한다.
1Password를 사용하는 팀에 속한다면 1Password로 신용카드를 관리하고 환경 변수로 설정하면 새로운 도구를 가져올 필요가 없어 가볍다.
이 글은 그것을 실현하는 절차를 소개한다.
CLI 설정
먼저 1Password의 CLI를 설치합니다.이렇게 하면
op
명령을 사용할 수 있다.brew install --cask 1password/tap/1password-cli
op signin
명령을 사용하여 로그인하면 세션export
을 실행하는 명령을 출력하여 실행eval
합니다.만약 이것이 성공한다면 1Password의 인증이 끝난 상태로 각 항목에 접근할 수 있습니다.
eval $(op signin)
변수 설정
foo
와 같은 응용 프로그램을 제작하고 foo-app-environment-variables
와 같은 안전 노트를 제작할 것을 구상한다.op item create --title foo-app-environment-variables --category 'Secure Note'
두 환경 변수를 예로 추가합니다.op item edit foo-app-environment-variables FOO=bar
op item edit foo-app-environment-variables FIZZ=buzz
여기에 op item edit
명령을 사용했고 GUI에서도 설정할 수 있다.1Password에 표시된 이미지는 다음과 같습니다.다만
FIZZ
.변수 참조
Reveal
에서 보안 노트의 각 필드를 JSON으로 출력할 수 있습니다.op item get --format json
를 사용하여 이 JSON을 jq
의 형식export FOO=bar
으로 조정한다.eval $(op item get --format json foo-app-environment-variables | jq -r '.fields[] | select(.value) | "export " + (.label) + "=\"" + (.value) + "\""')
이렇게 하면 현재의 껍질은 환경 변수가 설정한 상태가 된다.$ echo $FOO
bar
유틸리티 준비
설정이 완료되면 예를 들어
eval
같은 이름으로 케이스 스크립트를 준비할 수 있으며 긴 명령을 입력하지 않아도 환경 변수를 설정할 수 있어 편리하다.$ echo $FOO
(何も表示されない)
$ cat env.sh
eval $(op signin)
eval $(op item get --format json foo-app-environment-variables | jq -r '.fields[] | select(.value) | "export " + (.label) + "=\"" + (.value) + "\""')
$ source env.sh
$ echo $FOO
bar
이렇게 되면 처음에 누군가가 이것을 설정한 후에 다른 사람들은 집행env.sh
만 하면 1Password의 환경 변수를 조개껍질에 반영할 수 있다.(응용 사례) GiitHub Action과 공동 작업
source env.sh
명령을 동시에 사용하면 GiitHub Action에서 같은 비밀을 설정하는 것도 간단하다.eval $(op item get --format json foo-app-environment-variables | jq -r '.fields[] | select(.value) | "gh secret set " + (.label) + " -b \"" + (.value) + "\""')
Reference
이 문제에 관하여(환경 변수를 1Password CLI로 관리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/lambdasawa/articles/op-cli-and-environment-variables텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)