Используйте метаданные экземпляра для настройки конфигурации Spring Cloud, чтобы можно было использовать роль IAM для клонирования из CodeCommit. - PullRequest
1 голос
/ 25 апреля 2019

Я пытаюсь запустить приложение весенней конфигурации облака внутри контейнера докера, порожденного ECS. У меня проблемы с правильной настройкой, чтобы метаданные использовались для клонирования git-репо из CodeCommit

У меня есть следующие настройки

зависимости pom.xml

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-server</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-aws</artifactId>
</dependency>

application.yml

# some other non related settings such as port
spring:
  cloud:
    config:
      server:
        git:
          uri: https://git-codecommit.eu-central-1.amazonaws.com/v1/repos/<repo name>
          skip-ssl-validation: true
cloud:
  aws:
    credentials:
      instance-profile: true
    stack:
      auto: false

в журналах докера я могу найти следующее

2019-04-25 16:37:54.209  WARN 1 --- [nio-5000-exec-1] .c.s.e.MultipleJGitEnvironmentRepository : Error occured cloning to base directory.

org.eclipse.jgit.api.errors.TransportException: https://git-codecommit.eu-central-1.amazonaws.com/v1/repos/<repo name>: git-upload-pack not permitted on 'https://git-codecommit.eu-central-1.amazonaws.com/v1/repos/<repo name>/'

Если я правильно понимаю; в соответствии с документацией по конфигурированию Spring Cloud, когда вы используете git url CodeCommit и не указываете имя пользователя и пароль, он должен автоматически по умолчанию использовать цепочку учетных данных AWS, в которой в качестве окончательной опции используются учетные данные профиля экземпляра.

If you provide a username and password with an AWS CodeCommit URI, they must be the AWS accessKeyId and secretAccessKey that provide access to the repository.
If you do not specify a username and password, the accessKeyId and secretAccessKey are retrieved by using the AWS Default Credential Provider Chain.
...