Назад | Перейти на главную страницу

Просмотр пользовательской консоли AWS

Мы запускаем внутреннюю инфраструктуру компании на AWS. В настоящее время я (как администратор инфраструктуры) единственный, кто имеет доступ к консоли AWS (как пользователь root).

Теперь появилось требование разрешить определенным пользователям (из финансового отдела) запускать один конкретный экземпляр EC2 самостоятельно. У меня уже настроены разрешения (пользовательская роль IAM с разрешениями только для этого экземпляра).

Вопрос в том, есть ли способ создавать настраиваемые представления в консоли AWS. Подобно Atlassian Jira, где вы можете определять настраиваемые панели мониторинга с настраиваемыми виджетами.

В идеале эта настраиваемая панель управления должна содержать только одну кнопку «Включить», которая будет подключена к функции AWS Lambda, которая включит указанный экземпляр.

Затем пользователь из финансового отдела войдет в систему и увидит эту упрощенную версию Консоли AWS без необходимости обхода стандартной консоли (например, EC2 -> Экземпляры -> найти правильный -> найти команду Пуск)

Я не думаю, что это возможно. Однако у вас есть несколько других вариантов.

1) Дайте им прямой URL-адрес конфигурации экземпляра

Это будет выглядеть примерно так:

https://ap-southeast-2.console.aws.amazon.com/ec2/v2/home?region=ap-southeast-2#Instances:instanceId=i-01234567890;sort=availabilityZone

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


2) Автоматический запуск / остановка экземпляра

Если им нужен экземпляр, работающий по предсказуемому, периодическому расписанию - например, в рабочее время, или каждый понедельник, или каждое 1-е число месяца - вы можете автоматически запускать и останавливать его для них.

Вот простой шаблон CloudFormation, который делает именно это: https://github.com/mludvig/ec2-start-stop

Измените в соответствии с вашими потребностями. Вы, вероятно, захотите указать его на существующий Пример вместо создания нового; однако планировщик и лямбда следует использовать повторно.


3) Создайте простое приложение для запуска / остановки

Если вы хотите дать им одну кнопку запуска / остановки на экране, вам придется написать для нее приложение. Это может быть простой PHP-скрипт, работающий на t2.nano где этот экземпляр будет иметь соответствующий Роль IAM с разрешениями на запуск / остановку целевого экземпляра EC2.

Или, если вы хотите полностью отказаться от сервера, напишите свое приложение в jQuery, Реагировать, Угловой или что-то в этом роде, сохраните его на S3 и заставьте его общаться с серверной частью Lambda, которая будет запускать и останавливать экземпляр финансового отдела. И снова лямбда будет иметь соответствующий Роль IAM с разрешениями на запуск / остановку целевого экземпляра EC2.

В обоих случаях вы захотите каким-то образом обработать аутентификацию пользователя. Это может быть простой общий пароль вплоть до полной аутентификации AD через AWS Cognito или аналогичный.


4) Создайте сценарий запуска / остановки на своем ноутбуке

Как предлагает Тим ​​установить aws-cli на одном из своих ноутбуков и создать простой start-instance и stop-instance сценарий. Однако, если они используют Windows (как они, вероятно, делают), они могут взбеситься, если вы попросите их использовать командную строку :)


5) Создайте систему меню самообслуживания

На t2.nano Экземпляр EC2 создает локального пользователя, сценарий входа в систему которого представит 2 варианта:

Finance department server is currently: running

[1] Reboot
[2] Stop
[Q] Quit

Your choice [1/2/Q]: _

Они могут подключиться к нему по SSH, например из PuTTY (все это может быть предварительно настроено) и просто выбрать то, что они хотят. У меня была похожая система для наших пользователей, которым время от времени требовалось перезапустить определенное приложение, но я не хотел предоставлять им доступ к оболочке.


Надеюсь, что-то из этого сработает для вас :)

Кстати, каждый раз, когда они решают Стоп вы также можете создать снимок, на всякий случай ...

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

Вот грубые шаги для этого.

Создать пользователя IAM

Создайте пользователя IAM с доступом и секретным ключом. Вы можете предоставить им консольный доступ, если хотите, но это не обязательно.

Убедитесь, что у пользователя IAM есть только разрешения, необходимые для запуска / остановки этого экземпляра.

Установите AWS CLI на свой компьютер.

Шаги к установить CLI (используйте ссылку, так как она будет более актуальной, чем этот ответ):

  1. Загрузите установщик.

  2. Установить Python

  3. Настройте пути (подробности см. По ссылке выше)

  4. Настройте учетные данные для доступа

Запустите команду «aws configure», затем подключите свои ключи и регион.

> aws configure

AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default region name [None]: us-west-2
Default output format [None]: json

Создайте два командных файла

Запустить экземпляр

aws ec2 start-instances --instance-ids i-1234567890abcdef0

Остановить экземпляр

aws ec2 stop-instances --instance-ids i-1234567890abcdef0