#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