2016-02-19 3 views
5

У нас есть контейнер докеров, работающий на хосте ec2. Внутри этого контейнера докера мы запускаем некоторые команды aws cli. Мы не определили никаких учетных данных AWS в контейнере. Это означает, что контейнер наследует профиль экземпляра хоста ec2.Контейнеры-докеры, похоже, «наследуют» профиль экземпляра хоста ec2. Как?

Мое предположение верно? Если да, то как именно контейнер наследует учетные данные профиля экземпляра? Во-вторых (возможно, связанный), что именно делает aws cli для получения учетных данных профиля экземпляра? Выполняет ли он вызов конечной точки метаданных (169.254.169.254)? Например, если учетные данные взяты из переменных среды, учетные данные жестко закодированы и могут быть видны, но где действительно хранятся учетные данные для профиля экземпляра?

ответ

4

Правильно, учетные данные имеют хост-компьютер. Он получает их из конечной точки метаданных, как вы подозревали.

Одно решение/временное решение, чтобы предоставить более узкий доступ: ec2metadataproxy. Я еще не использовал его.

Доступ к группе защиты также основан на контейнере-хозяине, к сожалению.

+0

Благодаря ворошителю42. Как именно получены учетные данные? Есть ли команда, которую я мог бы запустить на ec2, чтобы получить доступ, секретный + токен из конечной точки метаданных? – n00b

+1

@ n00b да, вы можете «завивать http: // 169.254.169.254/2014-11-05/meta-data/iam/security-credentials /'. Вы будете использовать API/SDK для нормальной работы, поскольку они вращаются каждые несколько часов. – tedder42

+0

Спасибо, tedder42. Команда, которую вы мне дали, вернула имя профиля экземпляра. Затем мне пришлось добавить имя профиля экземпляра в URL, который вы мне дали. то есть 'curl http://169.254.169.254/2014-11-05/meta-data/iam/security-credentials/ <имя-экземпляра-профиля>' – n00b

Смежные вопросы