Spring cloud-config-server Git-Backend на AWS ECS

Пока я могу вытащить файлы config-repo из gitlab, используя простое имя пользователя/пароль в моей локальной системе, и это работает хорошо. Теперь я перемещаю материалы в AWS-ECS (Fargate).

Профиль native работает хорошо, но я хочу использовать git-uri, и для этого я должен предоставить учетные данные для подключения.

    spring:
      profiles: dev
      cloud:
        config:
          server:
              git:
                uri: https://gitlab.com/<group>/<project>.git
                clone-on-start: true
                default-label: gitlabci-test
                searchPaths: '{profile}'
                username: ${gitlab-username}
                password: ${gitlab-password}

Как настроить сервер конфигурации для получения учетных данных из хранилища параметров AWS или диспетчера секретов? Любая помощь будет оценена по достоинству.




Ответы (1)


  1. Создайте новую политику с именем GetParameters и прикрепите ее к текущей роли задачи.

IAM -> создать политику -> выбрать «Диспетчер системы» в качестве службы -> «Получить параметры» в качестве действия (только для чтения) -> все ресурсы и создать политику.

  1. Перейдите в Диспетчер систем -> Parameter Store, чтобы сохранить конфиденциальные данные как SecureString.

  2. Перейдите в Task -> Container Definitions -> Environment Variables: укажите

  3. Значение должно быть в форме для arn:aws:ssm:<your-aws-acccount-region>:<aws-user-id>:parameter/name

  • GITLAB_USERNAME, ValueFrom , arn:aws:ssm:::parameter/dev/my-config-server/GITLAB_USERNAME
  • GITLAB_PASSWORD, ValueFrom , arn:aws:ssm:::parameter/dev/my-config-server/GITLAB_PASSWORD

По соглашению Name должно быть в форме /<environment>/<service>/<attribute-name>

И это все. Вы сделали. Подождите, пока задача будет подготовлена, и config-server сможет подключиться к вашему удаленному репозиторию.

        spring:
          profiles: dev
          cloud:
            config:
              server:
                  git:
                    uri: https://gitlab.com/<group>/<project>.git
                    clone-on-start: true
                    default-label: gitlabci-test
                    searchPaths: '{profile}'
                    username: ${GITLAB_USERNAME}
                    password: ${GITLAB_PASSWORD}
person Kumar Ashutosh    schedule 22.03.2020