Доступ к HTTPS в AWS CodeCommit без настройки помощника по учетным данным
Мы переходим от GitHub к AWS CodeCommit, чтобы иметь тесно интегрированную среду.
Нужно получить доступ к одному хранилищу через HTTPS. Этот репозиторий доступен для любого продукта Spring Cloud Config Server, который использует jgit для чтения репозитория и клонирования файлов для его использования.
AWS CodeCommit, очевидно, требует использования учетных данных помощника при подключении через HTTPS, но я не настраиваюсь так. Я хочу, чтобы настройка пользователя и пароля могла использоваться jgit без необходимости создавать временные учетные данные с помощью помощника учетных данных. Есть ли способ сделать это?
Есть ли способ настроить CodeCommit для доступа к фиксированному пользователю и паролю для доступа к хранилищу через HTTPS?
3 ответа
Обновить
По состоянию на 22 декабря 2016 года AWS CodeCommit поддерживает использование статического имени пользователя и пароля в качестве упрощенного способа аутентификации в ваших репозиториях AWS CodeCommit через HTTPS:
С помощью учетных данных Git вы можете сгенерировать статическое имя пользователя и пароль в консоли Identity and Access Management (IAM), которую можно использовать для доступа к репозиториям AWS CodeCommit из командной строки, Git CLI или любого инструмента Git, поддерживающего аутентификацию HTTPS.
Поскольку это статические учетные данные, их можно кэшировать с помощью инструментов управления паролями, включенных в локальную операционную систему, или сохранять в утилите управления учетными данными. Это позволяет начать работу с AWS CodeCommit в течение нескольких минут. Вам не нужно загружать интерфейс командной строки AWS или настраивать клиент Git для подключения к своему репозиторию AWS CodeCommit по протоколу HTTPS. Вы также можете использовать имя пользователя и пароль для подключения к хранилищу AWS CodeCommit из сторонних инструментов, поддерживающих аутентификацию имени пользователя и пароля, включая популярные клиенты Git GUI (такие как TowerUI) и IDE (такие как Eclipse, IntelliJ и Visual). Номер-студио).
[...]
Начальный ответ
Есть ли способ настроить CodeCommit для доступа к фиксированному пользователю и паролю для доступа к хранилищу через HTTPS?
Нет, как указано в разделе "Настройка AWS CodeCommit", вы должны использовать либо HTTPS, либо SSH, а для первого требуется криптографически подписанная версия ваших учетных данных пользователя IAM или роль экземпляра Amazon EC2 всякий раз, когда Git необходимо пройти аутентификацию с AWS для взаимодействия с репозитории в AWS CodeCommit.
Однако, как отметил Марк Л. Смит в своем ответе на использование нативного git, а не jgit в Eclipse git, хотя срок действия этих учетных данных истекает через ~15 минут, ничто не мешает вам реализовать процесс подписания самостоятельно, и Марк любезно предоставил соотв. Пример, показывающий, как клонировать репозиторий AWS CodeCommit по HTTPS с использованием jgit, смотрите подробности в jgit-codecommit.
Есть ли способ настроить CodeCommit для доступа к фиксированному пользователю и паролю для доступа к хранилищу через HTTPS?
Раньше ответом было "нет", но AWS CodeCommit теперь предлагает HTTPS Git Credentials
Это статические учетные данные имени пользователя и пароля, которые можно кэшировать с помощью стандартных диспетчеров учетных данных (если они есть) и работать с IDE, которые поддерживают аутентификацию имени пользователя и пароля. Настройка IDE
Насколько мне известно (и я трачу большую часть своего времени, дурачась с CodeCommit уже две недели), нет, нет никакого способа использовать комбинацию имени пользователя и пароля. Одна из ключевых особенностей CodeCommit заключается в том, что он интегрируется с уже существующей экосистемой AWS, используя пользователей и / или роли IAM для более или менее автоматического предоставления доступа после его настройки. Что мешает вам использовать учетную запись помощника?
Возможно, это не то, что вам нужно, но вы пытались создать пользователя IAM исключительно для того, чтобы разрешить вашему серверу доступ к CodeCommit? Затем вы можете сгенерировать ключ доступа и секретный ключ для этого пользователя и сохранить их в виде профиля в файле учетных данных сервера (обычно это ~/.aws/credentials). Затем вы можете настроить git config сервера для использования помощника по учетным данным с этим профилем, и он будет автоматически аутентифицироваться в дальнейшем. Ключ должен использовать учетные данные пользователя IAM, поэтому они являются постоянными, в отличие от учетных данных роли IAM, срок действия которых истекает.
Теперь это возможно.
1) Настройте помощник по учетным данным AWS. Перейдите по этой ссылке для Unix-подобных систем. Настройка помощника по учетным данным AWS.
2) Эта команда отображает ваши учетные данные AWS, если помощник по учетным данным git работает правильно. Если нет, выполните ту же команду с флагом --debug, чтобы найти проблему.
echo -e "protocol=https\npath=/v1/repos/myrepo\nhost=git-codecommit.us-east-1.amazonaws.com" | aws codecommit credential-helper get
3) Включите зависимость в вашу сборку.
implementation('com.amazonaws:aws-java-sdk-core:1.11.463')
4) Затем установите URL-адрес CodeCommit в application.yml.
spring.cloud.config.server.git.uri=https://git-codecommit.us-west-2.amazonaws.com/v1/repos/moa-config