Есть несколько вариантов сделать это, и в зависимости от вашего склонности к риску возможная уязвимость поможет определить, как двигаться дальше.
Вы можете пойти по пути создания файла credentials
внешне со статическими учетными данными и копированием их в ~/.aws/
во время сборки.Вы даже можете использовать переменные в файле и передать их с помощью ENV
или ARG
.
Если вы используете docker-compose
, то файлы .env
вступают в игру, с почти такой же идеей, каквыше.
Вы можете позвонить в службу метаданных EC2 для получения временных учетных данных, у меня нет особого опыта в этом, но здесь есть некоторая информация: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html#instancedata-data-retrieval
Вы можететакже cat > ~/.aws
из файла, хотя это было бы болезненно, и делайте некоторые вариации переменных ENV на уровне CLI или с .env, ENV или ARG
ЕСЛИ вы используете ECS для запуска ваших контейнеров наВ верхней части EC2 вы можете передать переменные как valueFrom
в определении задачи / определении контейнера, чтобы получить их из хранилища параметров Systems Manager (в виде открытого текста), или вы можете зашифровать свои параметры с помощью ключа KMS или использовать секреты открытого текста изДиспетчер секретов и введите их для своих переменных.
С помощью вышеизложенного вы можете COPY
файл с переменными значениями credentials
и передавать переменные ENV
как $(keys)
в своемDockerfile, а затем вставьте их из Secrets Manager или Parameter Store, чтобы обеспечить дополнительную безопасность.