
예를 들어 Gitlab에서 실행되는 Docker 컨테이너에서 Bash Shell이 말하는 경우 비밀번호를 전달하려면 어떻게 해야 합니까?
이것으로 로그인하면 :
$ vault login -method=ldap username=myusername
비밀번호를 묻는 메시지가 표시됩니다.
중지하지 않고 비밀번호를 변수로 전달하라는 메시지를 표시하려면 어떻게 해야 합니까?
Gitlab 변수를 사용하여 비밀번호를 전달할 계획입니다.
답변1
JWT(JSON 웹 토큰) 사용을 고려해야 합니다.상호인증Gitlab과 Vault 사이. 이렇게 하면 어디에든 비밀번호(변수 포함)를 저장할 필요가 없습니다. 즉, 먼저 다음과 같이 JWT 인증을 통해 임시 Vault 토큰을 얻습니다.
export VAULT_TOKEN="$(vault write -field=token auth/jwt/login role=builder jwt=$CI_JOB_JWT)"
그런 다음 다음과 같이 필요한 비밀에 액세스할 수 있습니다.
export VCENTER_USER="$(vault kv get -field=username /kv/builder/vcenter-auth)"
export VCENTER_PASSWORD="$(vault kv get -field=password /kv/builder/vcenter-auth)"
완료되면 다음을 통해 이 임시 토큰을 취소할 수 있습니다.
vault token revoke -self
답변2
저자가 명시적으로 userpass 메소드를 요청했기 때문에 나는 다음과 같이 답변으로 제안합니다.
vault login -method=userpass username=myusername password=$userpass
$userpass는 gitlab 변수입니다.
CLI 유틸리티의 공식 도움말에 따르면 vault auth help userpass
다른 도구에서 익숙할 수 있는 것과 같은 옵션은 없습니다.echo $password | docker login ghcr.io -u myusername --password-stdin