Github 사이트에 접속하여
Settings -> Developer settings -> Personal access tokens -> Generate new token
Scopes는 user에만 체크
Access - Auth Methods - Enable new method - cloud ( github )
Organization이 있어야 사용가능하다.
Organization 이름만 넣고 생성하면 Organization ID는 자동 매칭 해준다.
2
3
내 계정 확인.
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)
}
})();