В wiki-загрузке (https://github.com/boot-clj/boot/wiki/S3-Repositories) указано, что вы можете использовать встроенные учетные данные AWS для использования S3 в качестве репозитория Maven. Это неоптимально с точки зрения безопасности, потому что я не хочу проверять кредиты AWS, даже если они имеют ограниченные разрешения.Использование GPG-зашифрованных учетных данных (или конкретных переменных среды) с boot-clj и s3-wagon-private
В Leiningen с s3-вагон-частное, вы можете указать ключ доступа и секретный ключ через переменные среды с:
{:url "s3p://acme/repo/"
:username :env
:passphrase :env}
Или, от конкретных переменных ENV, с:
{:url "s3p://acme/repo/"
:username :env/aws_access_key_id
:passphrase :env/aws_secret_access_key}
Или с GPG зашифрованы ~/.lein/credentials.clj.gpg
файл:
{:url "s3p://acme/repo/"
:creds :gpg}
push
задача в загрузке, похоже, поддерживает зашифрованные учетные данные GPG для развертывания в Clojars (https://github.com/boot-clj/boot/wiki/Deploying-with-Boot) в $BOOT_HOME/credentials.clj.gpg
. Таким образом, в общем, загрузка поддерживает GPG.
Когда я пытаюсь либо переменную окружения подход, я получаю следующее сообщение об ошибке, предлагая эту форму полномочий не поддерживается:
java.lang.IllegalArgumentException: No matching ctor found for class org.sonatype.aether.repository.Authentication
...
cemerick.pomegranate.aether/set-authentication aether.clj: 165
cemerick.pomegranate.aether/make-repository aether.clj: 185
cemerick.pomegranate.aether/resolve-dependencies*/fn aether.clj: 712
...
подход GPG, кажется, не в состоянии подобрать учетные данные, и дает в результате 403 от S3.
Я мог бы использовать (System/getenv "AWS_ACCESS_KEY_ID")
для прямого чтения в переменных env на карте репозитория. Предположим, но я бы предпочел использовать поддерживаемый механизм, если он есть. GPG-зашифрованные учетные данные были бы идеальным решением для нас, если это может быть достигнуто как с точки зрения безопасности, так и с наличием нескольких S3 Wagons, настроенных без перекрестных переменных среды.
Я использую последнюю версию Boot (2.4.2) на OS X El-Capitan. GPG может дешифровать учетные данные успешно в командной строке, даже в тихом режиме (gpg --quiet --batch --decrypt ~/.boot/credentials.clj.gpg
works). Ввод учетных данных непосредственно в карту репозитория делает работы, и тот же credentials.clj.gpg
файл работает от лейн. Я новичок в Boot, хотя, возможно, мне не хватает чего-то очевидного!