Я хочу установить пакет Python3 из частного репозитория Github в кластер AWS EMR Spark.
Я знаю, как сделать это грязным способом, жестко запрограммировав учетные данные, но каковы рекомендуемые методы безопасного выполнения этого действия? Я не хочу хранить учетные данные в скрипте начальной загрузки...
Заранее спасибо.





Предостережение: я не работал с пользовательскими сценариями начальной загрузки EMR, но полагаю, что они не слишком отличаются от обычных сценариев пользовательских данных.
Есть несколько вариантов:
my/git/credentials, и даже шифровать их с помощью службы управления ключами. Затем в сценарии начальной загрузки вы можете запросить учетные данные с помощью интерфейса командной строки AWS и использовать их для подключения к частному репозиторию git. Для этого требуется, чтобы роль экземпляра кластера имела разрешения на доступ к этому параметру (и ключ KMS, если вы зашифровали значение).Я бы лично начал с варианта 1, это будет дешевле. Если у вас есть конкретные аудиторские/нормативные требования, я бы рассмотрел вариант 2 — он немного сложнее.
Благодаря Морису я успешно реализовал безопасный процесс, следуя его варианту № 2.
Создайте токен доступа с учетными данными для чтения на github.
Сохраните это в AWS Secrets Manager. В моем случае я назвал этот секрет «github-read-access».
Предоставьте доступ к этому секрету пользователю, который будет запрашивать его, или, в случае загрузочного сценария EMR, ролям EMR.
Используя интерфейс командной строки aws, я сохраняю токен как переменную среды и устанавливаю пакет с помощью следующих команд:
export GITHUB_TOKEN=`aws secretsmanager get-secret-value --secret-id github-read-access |grep SecretString|cut -d ":" -f 3|cut -d '"' -f 2 |cut -d '\' -f1`
sudo pip3 install git+https://${GITHUB_TOKEN}@github.com/<USER_NAME>/<REPO_NAME>.git