#git #aws-codebuild #aws-codecommit
#git #aws-codebuild #aws-codecommit
Вопрос:
Мой процесс сборки кода требует, чтобы я клонировал некоторые вспомогательные библиотеки из AWS CodeCommit. Однако, поскольку у меня нет моего закрытого ключа в образе docker, используемом AWS CodeBuild, я получаю ошибки разрешения при попытке выполнить проверку:
agent_1 | Host key verification failed.
agent_1 | fatal: Could not read from remote repository.
Есть ли простой, рекомендуемый способ для AWS CodeBuild загрузить код из AWS CodeCommit?
Ответ №1:
Если вы обращаетесь к репозиторию Codecommit в своей учетной записи и имеете доступ к этому репозиторию, вам необходимо настроить роль IAM, прикрепленную к процессу сборки, чтобы иметь возможность читать удаленный репозиторий фиксации кода.
Во время создания проекта сборки роль IAM была бы создана с базовыми настройками разрешений, или вы бы выбрали существующую роль IAM.
В любом случае вам необходимо отредактировать роль IAM и прикрепить политику для доступа к ресурсу CodeCommit для процесса CodeBuild для выполнения операции клонирования.
Комментарии:
1. Спасибо Saurav. Я нашел ответ, это то, что вы предложили, но вам также необходимо установить помощник git-remote-codecommit (поскольку проблема заключается не в получении основного кода репозитория, а в том, что я пытаюсь использовать git в моей buildspec для извлечения дополнительных библиотек).
Ответ №2:
Я нашел ответ. Как сказал Saurav.Kumar, вам нужно убедиться, что ваша роль IAM дает вам права доступа к этим репозиториям. Кроме того, поскольку мне нужно использовать команду git напрямую для клонирования дополнительных библиотек, мне нужно было добавить это в мой buildspec.yml:
phases:
install:
commands:
- pip install git-remote-codecommit
Ответ №3:
Самое важное — правильно настроить IAM… это излишество, но для общих целей PoC будет выполнять работу как определение встроенной политики :
{ «Версия»: «2012-10-17», «Заявление»: [ { «Sid»: «VisualEditor0», «Эффект»: «Разрешить», «Действие»: [ «codecommit:ListRepositoriesForApprovalRuleTemplate», «codecommit:CreateApprovalRuleTemplate», «codecommit: UpdateApprovalRuleTemplateName», «codecommit:GetApprovalRuleTemplate», «codecommit:ListApprovalRuleTemplates», «codecommit:DeleteApprovalRuleTemplate», «codecommit:ListRepositories», «codecommit:UpdateApprovalRuleTemplateContent», «codecommit:UpdateApprovalRuleTemplateDescription» ], «Ресурс «: «» }, { «Sid»: «VisualEditor1», «Эффект»: «Разрешить», «Действие»: «codecommit:«, «Ресурс»: «arn: aws: codecommit: us-east-1: xxxxxxxx:xxxxxxx-myproject» } ] }