vsh
대화형 HashiCorp Vault 셸 및 CLI 도구입니다. 여러 가지 일반적인 작업이 제공되며 경로를 디렉터리 및 파일처럼 처리합니다. 핵심 기능은 다음과 같습니다.
cp
, rm
, mv
grep
으로 검색(하위 문자열 또는 정규 표현식)replace
.vsh -c "<cmd>"
)append
통해 서로 다른 전략을 가진 키 병합 brew install vsh
nix-env -i vsh
릴리스 페이지에서 최신 정적 바이너리를 다운로드하세요.
유효한 토큰을 얻기 위해 vsh
Vault의 TokenHelper 메커니즘을 사용합니다. 즉, vsh
~/.vault-token
, VAULT_TOKEN
및 외부 토큰 도우미를 통해 볼트 토큰 설정을 지원합니다.
VAULT_CACERT
환경 변수를 pem
인증서 경로에 설정하여 서버에 대한 TLS 인증서를 추가합니다.
vsh
운영 경로에 대한 List
권한이 필요합니다. 이는 경로가 경로 트리의 노드 또는 리프를 가리키는지 확인하는 데 필요합니다. 또한 자동 완성 데이터를 수집해야 합니다.
cp
또는 mv
와 같은 데이터를 변경하는 명령에는 작동되는 경로에 대한 Read
및 Write
권한이 추가로 필요합니다.
사용 가능한 모든 백엔드를 안정적으로 검색하기 위해 vsh
에서 사용하는 Vault 토큰에는 sys/mount
에 대한 List
권한이 있는 것이 이상적입니다. 그러나 이는 어려운 요구 사항이 아닙니다. 토큰에 sys/mount
에 대한 List
권한이 없으면 vsh
사용 가능한 백엔드를 미리 알 수 없습니다. 즉, 처음에는 최상위(백엔드) 수준에 경로 자동 완성이 없다는 의미입니다. 그럼에도 불구하고 vsh
입력된 모든 경로의 kv 버전을 안정적으로 결정하기 위해 최선의 전략을 시도합니다.
export VAULT_ADDR=http://localhost:8080
export VAULT_TOKEN=root
export VAULT_PATH=secret/ # VAULT_PATH is optional
./vsh
http://localhost:8080 /secret/>
참고: 주어진 토큰은 자동 완성에 사용됩니다. 즉, rm
또는 mv
수행하지 않더라도 List()
쿼리는 해당 토큰으로 수행됩니다. vsh
쿼리 양을 줄이기 위해 List()
결과를 캐시합니다. 그러나 각 명령을 실행한 후에는 정확한 탭 완성을 위해 캐시가 지워집니다. 토큰의 사용 횟수가 제한된 경우 비대화형 모드를 사용하거나 자동 완성을 꺼서 List()
쿼리를 방지하는 것을 고려하세요.
Vault에 대한 쿼리 수를 줄이려면 다음 두 가지 방법으로 경로 자동 완성을 비활성화할 수 있습니다.
./vsh --disable-auto-completion
./vsh
http://localhost:8080 /secret/> toggle-auto-completion
Use path auto-completion: false
http://localhost:8080 /secret/> toggle-auto-completion
Use path auto-completion: true
export VAULT_ADDR=<addr>
export VAULT_TOKEN=<token>
./vsh -c "rm secret/dir/to/remove/"
볼트 비밀에 대한 작업은 vsh
의 품질과 올바른 행동을 최우선으로 만드는 것이 중요할 수 있습니다. 즉, vsh
여전히 소규모 오픈 소스 프로젝트이므로 어떠한 보장도 할 수 없습니다. 그러나 우리는 테스트 중심 개발에 중점을 두고 있습니다. 모든 PR은 광범위한 통합 테스트를 통해 테스트됩니다. 대부분의 테스트는 KV1 및 KV2에서 실행되며 모든 테스트는 Vault 1.13.4
및 1.16.2
에서 실행됩니다. 즉, 그 사이의 Vault 버전도 호환될 가능성이 높습니다.
vsh
사용에 따른 위험은 사용자 본인이 부담합니다. 당사는 어떠한 책임도 지지 않으며 어떠한 보장도 하지 않습니다.
어떤 형태로든 기여를 환영합니다! 커뮤니티의 기여가 없었다면 vsh
오늘날의 도구가 되지 못했을 것입니다.
요구사항:
golang
( >= v1.21
)docker
make
make compile
make get-bats
make integration-tests
-v DEBUG
디버그 로그 수준을 설정하며 vsh_trace.log
파일을 생성하여 Vault API의 모든 오류 개체를 기록합니다.