При запуске кода в экземпляре EC2 SDK, который вы используете для доступа к ресурсам AWS, автоматически переходит на локально связанный веб-сервер на 169.254.169.254 и получает эти экземпляры AWS (access_key, secret), которые необходимы для общения с другими службами AWS.Передача учетных данных AWS (учетные данные роли IAM) для кода, выполняемого в контейнере докера.
Также есть и другие варианты, например, настройки учетных данных в ENV переменных или передавать их в качестве командной строки арг ...
Что является лучшей практикой здесь? Я действительно предпочитаю, чтобы контейнер получал доступ к 169.254.169.254 (путем маршрутизации запросов) или даже лучше запускал прокси-контейнер, который имитирует поведение реального сервера по адресу 169.254.169.254.
Есть ли там решение?
mmm, так что, я думаю, мое недоразумение исходит из моих экспериментов с boot2docker (на Mac), где сетевое взаимодействие неудобно или по крайней мере отличается. Поэтому в основном все должно работать. мммм. Мне нужно попробовать это. – Ali
@Ali, где вы можете видеть, что он нормально работает в докере, не отправив исходные ключи на boto? – stormfield
Единственная проблема, с которой я столкнулся с этой архитектурой (пусть AWS SDK/CLI в контейнере попадает в конечную точку метаданных EC2 для учетных данных) заключается в том, что я хочу контролировать мелкие зерна над тем, какие разрешения будут иметь контейнер. Один контейнер может записывать только на S3, в то время как другой я, возможно, не хочу иметь никаких разрешений S3, а просто позволяю ему публиковать в SNS. Эта конструкция будет означать, что мне нужно добавить надмножество разрешений на EC2, и все мои контейнеры будут иметь одинаковые значения. –