프로그램을 개발하다보면 암호화키 라던지, token 값이라던지 보관하기 불편하고, 위험할 때가 많다.
Vault는 그러한 중요한 값들을 보관하고, 사용할 수 있는 도구이다.
거의 모든 서버와 호환이 되며 많이 사용하는 다른 도구들과도 호환성이 좋다.
우선 Vault를 설치를 하고
$brew tap hashicorp/tap
$brew install hashicorp/tap/vault
Vault는 서버이자 클라이언트기 때문에
클라이언트를 사용하기전에 서버를 먼저 만들어주어야 한다.
그러기 위해서는 SQL로 DataBase를 만들고, config.hcl로
DB연결 및 포트설정 등을 해야하지만, 우선은 기본으로 제공되는 dev서버로 열어보자.
$vault server -dev
그러면 이렇게 환경변수 지정해주는 라인과 Unseal Key, Root token이 표기된다.
$export VAULT_ADDR='http://127.0.0.1:8200'
를 쳐서 환경변수에 지정해주고,
$ export VAULT_TOKEN="<<your token value>>"
표기된 토큰값도 환경변수에 넣어주자.
잘 실행되었다면, 이렇게 status에서 표기가 되는것을 볼 수 있다.
잘보면 Sealed가 false로 되어있는 것을 볼 수 있는데
dev서버로 실행하지 않았다면 initialized도 되어있지 않을 것이고 Sealed 또한 true일 것이다.
그럼 서버 init를 해야하고, Sealed를 false로 바꾸는 과정이 필요하다
(이 과정에서 위에 나왔던 Unseal Key가 필요함)
그럼 이제,
8200번 포트로 Vault를 띄웠으니 클라이언트도 들어가보도면
http://localhost:8200
이렇게 Token값을 물어보는 페이지가 나온다.
로그인 할 수 있는 방법도 많은대,
흔히 제일 많이 쓰는 Username, GitHub, JWT, Toekn 뿐만아니라
이전에도 포스팅했던 Okta, LDAP도 있는 것을 확인 할 수 있다.
우선은
아까 확인했던 Root Token값으로 로그인해서 들어가보자.
로그인 하자마자 꽤 많은 기능들이 눈에 띈다.
기본적으로 cubbyhole과 secret이 Backend로 구성이 되어있는대
cubbyhole은 테스트용도인듯 하고 secret은 key/value 의 engine type 으로 확인된다.
token으로 인증받는건 귀찮으니 일단 username 아이디를 하나 만들었다.
Method 를 userpass로 만들어두고
userpass안에서 testUser 라는 계정을 만들었다.
그다음 본래 목적이였던 key/value 값에 비밀번호를 저장해놓자
그럼이제 API로 pw를 가져오는 테스트를 진행해보자
v1(고정)/secret/data(고정)/pw
v1은 고정이고 뒤에있는 data는 config나 metadata등 다른 정보를 얻을때 바꾼다.
성공~
.
.
.
.
작성중
'프로그래밍 공부 > Etc' 카테고리의 다른 글
[Centos7] gitlab-runner 설치 및 연결 (0) | 2021.12.20 |
---|---|
[Centos7 x86_64] Docker 다운로드 및 연결 (0) | 2021.12.16 |
audio tag에서 seekbar가 작동하지 않을때 (0) | 2021.09.17 |
java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter (0) | 2021.03.10 |
[메모] activity launchMode 삽질 (0) | 2020.10.05 |