기술 이모저모/[Ops] Devops

[Vault] Vault 서비스 사용 방법[1/2]

Kobby 2023. 4. 30. 19:01

앞선 게시물로 Vault 배포 및 활성화 방법에 대해서 알아보았다.

설치하였으면 이제 사용해보아야하며, 본 게시물에서는 Vault 사용방법에 대해 알아보자!

 

[Vault] Vault Helm 배포 및 활성화 방법

K8s를 운영하다 보면 흔히들 비밀정보를 관리를 해야하는 경우가 생긴다. - 비밀정보 : DB 정보, ID/PW 등의 일반적으로 노출되면 안되는 정보들이다. 기본적으로 K8s에서는 Secrets Kind를 제공하고 있

dobby-isfree.tistory.com

 

Vault 사용 방법

Vault를 배포하고 접속하게 되면 아래와 같이 접속 화면을 볼 수 있다.

Method를 선택해보면 Okta등의 다양한 접속 방법이 있고, 필자는 Root Token으로 접속하므로 Token으로 접속을 한다.

Vault 초기 화면

Vault는 Role + Policy + Secrets의 조합으로 사용할 수 있다.

즉, Vault 사용을 위한 Role을 만들고/해당 Role에서 Secrets 접근통제를 해야하므로 Policy를 생성하고, 해당 Role에서 사용할 Secrets를 만들면 된다.

 

Vault Role 생성

필자는 K8s에서 사용하기 때문에 Role > kubernetes에서 Create를 한다.

Role 생성에 필요한 정보는 Vault Name, Service account, Namespace이다.

 

넣는 정보만 봐도 알 수 있듯이 Vault는 특정 Service account + Namespace로 제한을 할 수 있다.

 - Vault Name만 아는 상태에서 아무나 사용할 수 없도록..

 

SA와 NS는 AND로 동작하고 * 또는 , 로 값을 여러개 넣을 수 있으므로 필요에 따라서 설정을 하면 된다.

Vault Role 생성

 

Vault Policy 생성

위에서 Role을 만들었다면, 해당 Role이 사용할 Policy를 만들어야 한다.

아래와 같이 설정하면 /test/test/*의 Secrets을 확인할 수 있는 Role이 만들어진다.

 - test 중간에 data가 들어가있으나, 이는 Vault Policy Template인것 같다.

Vault Policy 생성

 

Vault Role + Policy 설정

생성한 Role에서 Edit을 선택하고, Tokens 버튼을 누르면 Vault Policy를 연결할 수 있다.

Vault Policy 연결 -1
Vault Policy 연결 -2

 

Vault Secrets 생성

Vault Secrets을 생성하는 단계이다. 일반 비밀정보를 뜻하는 KV로 선택하면 된다.

그리고 KV 외에도 다양한 엔진이 존재하나, 필자는 KV만 사용해봐서 KV에 대해서만 기술할 예정이다.

Vault Secret 생성

 

위 test role에 연결한 Policy에서 test/data/test로 Policy를 생성하였기 때문에 엔진 경로를 test로 설정을 했다.

Vault Secret 경로 설정

그리고 이제 실제로 비밀정보를 입력하는 단계이다.

위에서 언급한것과 같이 test/data/test로 설정하였기 때문에 Path 정보를 다시 한번 test로 기입을 한다. 그리고 실제 비밀정보를 아래 Secret data에 넣으면 된다. 기본적으로는 마스킹처리 되어 있으나 우측 아이콘을 클릭하면 마스킹을 해제하여 볼 수 있다.

Vault Secret 값 설정

 

그리고 Secret을 최종적으로 설정을 하면 아래와 같이 설정됨을 확인할 수 있다!!

Vault Secret 최종 확인

 

지금까지는 EKS Cluster에 Vault를 배포하고, 서비스에서 사용할 Vault Role + Policy + Secrets을 설정하였다.

그럼 다음 게시물에서는 실제 서비스에서 사용하는 방법에 대해서 알아보도록 하자!!!

 

조금만 더하면 된다!!