나는 가지고있다프로그램비밀코드를 받으세요. 터미널에 수동으로 입력하거나 명령줄 인수로 제공할 수 있습니다. 이로 인해 안전한 방법으로 자동화하기가 어렵습니다. 일반적으로 스크립트를 실행할 때 터미널이 없으며 명령줄에서 비밀번호를 ps
읽을 수 있으므로 비밀번호를 전달하고 싶지 않습니다.
예를 들어 (터미널에서):
$ vault operator unseal
Unseal Key (will be hidden):
(효과가있다)
$ vault operator unseal <<<"$PASSPHRASE"
Unseal Key (will be hidden):
An error occurred attempting to ask for an unseal key. The raw error message
is shown below, but usually this is because you attempted to pipe a value
into the unseal command or you are executing outside of a terminal (tty). You
should run the unseal command from a terminal for maximum security. If this
is not an option, the unseal key can be provided as the first argument to the
unseal command. The raw error was: file descriptor 0 is not a terminal
(이것은 작동하지 않습니다)
나는 이 문제를 성공적으로 극복했습니다
socat STDIO 'EXEC:vault operator unseal,PTY' <<<"$PASSPHRASE"
하지만 이것이 나쁜 생각일까요? 의 제작자가 vault
STDIN에서 비밀번호를 허용하지 않는 이유가 분명 있기는 하지만 이것이 비밀번호를 전달하는 가장 안전한 방법인 것 같습니다. 그래서 저는 제가 안전하지 않은 일을 하고 있지 않은지 확인하고 싶었습니다.