ECS с Docker Compose переменные среды

#amazon-web-services #docker #docker-compose #amazon-ecs #docker-secrets

#amazon-веб-сервисы #docker #docker-compose #amazon-ecs #docker-секреты

Вопрос:

Я развертываюсь в ECS с помощью Docker Compose API, однако я немного запутался в переменных среды.

Прямо сейчас мой docker-compose.yml выглядит так:

 version: "3.8"

services:
  simple-http:
    image: "${IMAGE}"
    secrets:
      - message

secrets:
  message:
    name: "arn:aws:ssm:<AWS_REGION>:<AWS_ACCOUNT_ID>:parameter/test-env"
    external: true
 

Теперь в моих определениях контейнеров я получаю a Simplehttp_Secrets_InitContainer , который ссылается на эту переменную среды как message и с правильным ARN, но message в моем запущенном контейнере нет переменной с именем.

Я немного смущен, так как думал, что это правильный способ передачи env, таких как DB-passwords, учетные данные AWS и так далее.

В документах мы видим:

 services:
  test:
    image: "image"
    environment:
      - "FOO=BAR"
 

Но является ли это правильным и безопасным способом сделать это? Я что-то упустил?

Ответ №1:

Я не особо разбирался в секретах в этой интеграции ECS / Docker, но есть пара вещей, которые не совпадают между вашим пониманием и документами. Сначала интеграция, похоже, работает, Secrets Manager а не SSM . Во-вторых, согласно документу, содержимое будет доступно не как переменная, а скорее как плоский файл во время выполнения /run/secrets/message (в вашем примере).

Ознакомьтесь с этой страницей для получения подробной информации: https://docs.docker.com/cloud/ecs-integration/#secrets