AWS EC2 Metadata sidecar с использованием Nginx


AWS EC2 Metadata viewer using Nginx Docker Image

Это просто образ докера для просмотра метаданных экземпляра ec2 с помощью UI/ html, размещенного внутри/ через образ докера nginx.

При управлении AWS ec2 экземплярами проверка метаданных экземпляра через curl является очень ручной и очень повторяющейся работой. Поэтому получить то же самое с помощью какого-нибудь пользовательского интерфейса было бы очень просто для большинства из нас.

Вот и я столкнулся с той же проблемой — удалить ненужные повторяющиеся вещи с помощью завитушек и команд.

Предварительные условия

  1. Знание AWS, экземпляра AWS ec2 и т.д. ❕

  2. Docker, установленный на инстансе ec2 (очевидно) ❕

  3. ⚠️ Учитывайте тот факт, что ваши метаданные будут доступны через интернет в формате html. Поскольку раскрытие/обмен метаданными может представлять угрозу безопасности. (для целей хобби или частных ip это может быть нормально или публичный ip с соответствующей группой безопасности и т.д.)

  4. ❗️ Метаданные v1 для ec2. Конечно, потребуется дополнительная работа для раскрытия v2 (которая основана на токенах и т.д. и обеспечивает дополнительную безопасность метаданных v1).

Доступ к образу Docker можно получить с помощью команды pull, как показано ниже:-

docker pull neuw/aws-ec2-nginx
Войти в полноэкранный режим Выйти из полноэкранного режима

Исходный код доступен на Github.

Для запуска контейнера команда выглядит следующим образом:-

docker run -itd --name nginx -p 80:80 neuw/aws-ec2-nginx
Войти в полноэкранный режим Выйти из полноэкранного режима

После этого пользовательский интерфейс будет доступен по адресу :-

http://machine_host_or_ip:port/metadata.html
Войти в полноэкранный режим Выйти из полноэкранного режима

Замените имя хоста или ip и порт соответственно

И пользовательский интерфейс по умолчанию должен быть доступен как показано ниже

В первом поле ввода вы можете изменить url на /latest/** и он покажет вам ответ соответственно.

Пример:- /latest/meta-data

Далее можно использовать следующий сценарий пользовательских данных при загрузке экземпляра ec2 (применимо только для AWS Linux 2 AMI), подробности ниже:-

#!/bin/sh

yum update

# install docker and start the docker service
yum install docker -y
service docker start

# add ec2-user to the docker group
usermod -a -G docker ec2-user

# pull the image that was mentioned above
docker pull krnbr/ec2-nginx:latest

# run the same image as a container available on host's port 80
docker run -itd --name nginx -p 80:80 neuw/aws-ec2-nginx
Войти в полноэкранный режим Выйти из полноэкранного режима

Измените порт 80 на более конкретный. Этот образ может быть запущен как дополнительный к другим образам, для отладки в более низких средах.

Оцените статью
devanswers.ru
Добавить комментарий