Как правильно получить доступ к AWS Менеджеру секретов из CodeBuild с Maven и Nexus - PullRequest
0 голосов
/ 28 апреля 2020

Для buildspe c .yml (Обобщенный)

version: 0.2

env:
  secrets-manager:
    User: CodeBuild/Auth:User_Name
    Password: CodeBuild/Auth:Password

  pre_build:
    commands:
      - echo ${User}
      - echo ${Password}

  post_build:
    commands:
      - mvn clean deploy -Dnexus.user=$User -Dnexus.password=$Password

Команды эха дают мне ***, который замаскирован, так что я думаю, что я хорошо до этого момента. Кроме того, я использую DefaultEncryptionKey для AWS Менеджер секретов.

Внутри настроек. xml для Maven у меня есть <username>${nexus.user}</username> и <password>${nexus.password}</password>

Но когда mvn команда запускает, возвращает ошибку авторизации 401 ... Я добавил AdministratorAccess к роли CodeBuild на всякий случай, та же ошибка 401.

Если я объявляю переменные в открытом тексте, команда mvn работает. Мне просто не хватает одной вещи, но я не могу найти документацию о том, как обойти это. Любая помощь будет принята с благодарностью.

Обновление: я переключил все в хранилище параметров, и оно работало с минимальными настройками. Я хотел бы знать, что я сделал неправильно при настройке диспетчера секретов, но я успешно справился с этим. Я оставлю это здесь на всякий случай, если кто-то еще борется с этим.

1 Ответ

0 голосов
/ 30 апреля 2020

Формат, который вы использовали для указания секретов из менеджера секретов, выглядит немного не так. Вот документация: https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build -spe c -ref-синтаксис .

Секреты упоминаются как: ключ: secret-id: json -key: версия-этап : версия-идентификатор

...