$ docker pull vault
//dev 용으로 inmemory 저장방식
$ docker run --name devVault --cap-add=IPC_LOCK -e 'VAULT_DEV_ROOT_TOKEN=myroot' -p \
8200:8200 vault
//volumn 바인딩을 해줘야 도커를 꺼도 데이터가 저장됨
$ sudo docker run --name vault -d --cap-add=IPC_LOCK -p 8200:8200 --log-opt \
mode=non-blocking -v /vault/config:/vault/config \
-v /vault/file:/vault/file -v /vault/logs:/vault/logs vault server
AWS 서버의 퍼블릭 주소 http://~~~~~~:8200 으로 접속
로그인 창이 뜨면 Method를 Token으로 선택하고, 앞서 컨테이너 생성시 설정한 루트 토큰 아이디를 입력한다.(myroot)
Secret 작성
로그인 후 Enable new engine을 클릭한다.
Generic > KV를 선택하고 Next 버튼을 클릭합니다.
Path에 원하는 Path를 작성하고 versions은 2로 설정한 후 Enable Engine을 클릭한다.
(이런식으로 Secret Engine을 생성해도 되지만 나는 그냥 기존에 있던 secret에다가 작업함)
Secret Engine(secret)에 들어가서 Create secret버튼을 클릭합니다.
Json을 클릭하고 Path for this secret에 원하는 경로를 작성한 후 application, yml에서 숨기고자 하는 내용들을 json 형식으로 작성 후 Save 버튼 클릭한다.
secret_auth가 생성된 후 Create new version을 클릭해서 Version2 로 변경한다.
Policy 작성
상단 메뉴에서 Policies를 클릭하고, Create ACL policy를 클릭한다.
Name에 Policy명(auth_acl)을, Policy에는 권한 내용을 작성하고 Create policy 버튼을 클릭한다.
앞에서 작성한 Secrets에 대한 권한 → https://www.vaultproject.io/docs/concepts/policies
Policies | Vault by HashiCorp
Policies are how authorization is done in Vault, allowing you to restrict which parts of Vault a user can access.
www.vaultproject.io
path "secret/*" {
capabilities = ["list"]
}
path "secret/data/secret_auth" {
capabilities = ["read","list"]
}
Userpass를 생성하고 나서 생성한 user로 로그인했을 때 Policy에 권한이 없다고 할때 보면 좋은 사이트
https://stackoverflow.com/questions/54608202/how-to-get-hashicorp-vault-policy-right
How to get HashiCorp Vault policy right?
Here is the situation: I created an user vault write auth/userpass/users/'username' password='password' policies=default with default policy and added path "secret/db_pass/*" { capabilities...
stackoverflow.com
Authentication Methods 작성
상단 메뉴에서 Access를 클릭하고, Enable new method버튼을 클릭한다.
Generic > Username & Password를 선택하고 Next 버튼을 클릭한다.
생성한 userpass에서 Create user버튼을 클릭한다.
Username과 Password는 자유롭게 입력하고, 아래 Generated Token’s Policies에 앞서 작성한 Policy명(auth_acl)을 입력한 후 save 버튼을 클릭한다.
로그아웃한 후 앞서 생성한 Username & Password 정보로 로그인한다.
우측 상단의 사용자 정보 드롭다운을 클릭하고 Copy token을 클릭한다.
앞에서 myroot일때 생성한 Secret가 들어와있는걸 확인할 수 있다.
secret 목록을 클릭하고 들어왔을 때 You do not have permission to read this secret라고 뜨면 앞에 Policy에서 권한을 잘못 준 것이므로 수정해야 함.
저렇게 Secret > secret_auth가 나오면 OK
secret_auth를 클릭했을 때도 json형식으로 저장한 데이터가 잘 나오면 OK
** dev용 vault 방식이라서 docker stop vault를 하면 데이터가 다 지워지므로 volumn 바인딩을 해줘야 함
* 참고한 사이트
https://logical-code.tistory.com/183
[Spring Cloud Config] 설정값을 외부에서 관리하자! - 실습
앞선 포스트 기본편에서 이어집니다! [Spring Cloud Config] 설정값을 외부에서 관리하자! - 기본 시작하기 전에 스프링 또는 스프링 부트 개발을 하다 보면 *.properties 혹은 *.yml로 관리되는 환경설정
logical-code.tistory.com
https://velog.io/@limsubin/Vault-관리자-화면을-시작-및-간단한-테스트를-해보자
Vault 관리자 화면을 시작 및 간단한 테스트를 해보자!
vault : v1.10.0📌 Vault를 Docker로 올려보자!비상 시 필요한 마스터 키의 초기 세트를 설정Key shares : 총 key 수 설정Key threshold : 몇 개 이상의 key를 보유해야 login이 가능한지 설정저는 테스트를 위해 각
velog.io