vault github 인증

00_8_3·2022년 10월 13일
0

vault

목록 보기
3/3

Github으로 인증하기

  • Vault v1.11.3

Github Personal Token 발급

Github 사이트에 접속하여

  • Settings -> Developer settings -> Personal access tokens -> Generate new token

  • Scopes는 user에만 체크

Create new method (github) Using GUI

  • Access - Auth Methods - Enable new method - cloud ( github )

  • Organization이 있어야 사용가능하다.

  • Organization 이름만 넣고 생성하면 Organization ID는 자동 매칭 해준다.

2

  • Access - Entities

3

  • Access - Entities - Aliases

내 계정 확인.

Create group Using GUI

6
등록된 Member만 접근 가능하기 때문에
만약 Member 중 하나가 해킹 당하는 경우 권한을 정지하거나 해당 Member의 AccessToken을 수정하면 될 듯 하다.

7
해당 Group의 Member가 사용할 권한(Policy)을 선택. (다중 선택 가능)

8

코드

import _vault, { type VaultOptions} from "node-vault";


// 발급 받은 토큰
const GITHUB_TOKEN = "ghp_THa*********3PtJ49ECAJhKtv*******3yhKqV";

const options: VaultOptions = {
    apiVersion: "v1",
    endpoint: "http://localhost:8200",
};

async function read(vault: _vault.client, str: string){
  	// secret path
    const rv = await vault.read("test/my-path");
    return rv.data[str];
}

( async () => {
    try {
        const vault = _vault(options);

        const result = await vault.githubLogin({
            token: GITHUB_TOKEN
        })
        
        
        // 아래 명령어 실행 시 Permission Denied 오류 발생.
        // root token으로만 실행 되는듯 하다.
        // const auths = await vault.auths();
        // console.log("auths :", auths);

        vault.token = result.auth.client_token;
        const rv = await read(vault, "secret_key");
        
        console.log("rv :", rv);
    } catch (error) {
        console.error(error)
    }

    
})();

참고

https://www.vaultproject.io/docs/auth/github

0개의 댓글