Как я могу клонировать репозитории в AWS CodeCommit при использовании AWS CodeBuild?

#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» } ] }