Я пытаюсь сохранить некоторые переменные окружения для S3 в зашифрованном сценарии оболочек (так что эти ключи не хранятся в незашифрованном виде на моем диске) следующим образом:Установить переменные среды из зашифрованного сценария оболочки gpg?
export AWS_ACCESS_KEY_ID="example_key_id"
export AWS_SECRET_ACCESS_KEY="example_secret_access_key"
Это сохраняется в виде сценария оболочки setenv.sh
, который я зашифрован как setenv.sh.gpg
.
Я пытаюсь запустить сценарий файла с eval $(gpg --decrypt ./setenv.sh.gpg)
, который расшифровывает файл, но не загружает переменные среды соответственно (printenv подтверждает это).
Я чувствую, что он может что-то делать с этим вопросом: Shell script to set environment variables
Однако, я пытался несколько различных вариации с source
без толка, как я предполагаю, что source
ожидает файл, а не содержимое скрипт.
Как я могу использовать зашифрованный сценарий оболочки gpg для установки переменных среды?
[Замена процесса] (http://www.gnu.org/software/bash/manual/bash.html#Process-Substitution) в Bash может это сделать; что доступно в Zsh? 'source <(gpg --decrypt ./setenv.sh.gpg)'. Является ли безопасность такой иллюзорной? Что может помешать вашему пользователю запустить команду GPG и увидеть результат? –
Причина, по которой я подумывала настроить сценарий, так это то, что я могу загружать разные ключи S3 для разных проектов, без необходимости вручную вводить их каждый раз. По соображениям безопасности, я думал, что это будет хорошая идея, если бы мой ноутбук был украден или скомпрометирован. (У меня есть полное шифрование диска, но оно также может быть украдено при разблокировке и т. Д.) – waffl
Я думаю, что это квалифицируется как «безопасность через неизвестность», но до тех пор, пока вы это осознаете и осознаете свои ограничения, никакого большого вреда не делается. В частности, вы не должны, на мой взгляд, полагаться на это, чтобы все было в безопасности. –