Завдання конкурсу "Адміністрування Linux 2022"

1. Налаштування віртуальної машини EC2

Увійдіть у вебкласс “IT-Universe GNU/Linux administration contest” (за логіном та паролем), уважно прочитайте інструкцію "Як підключатись до хмари AWS", після чого перейдіть на сторінку входу у консоль AWS і запустіть лабораторне середовище. Необхідно завантажити закритий SSH-ключ у форматі PEM (для команди ssh) або PPK (для PuTTY) для підключення до віртуальних машин.

Створіть віртуальну машину (інстанс) EC2 у хмарі AWS. Налаштуйте до неї доступ за допомогою ключів лабораторного середовища (vockey) як на зображені нижче. Рекомендується використовувати наступні дистрибутиви GNU/Linux: Ubuntu, Debian або Amazon Linux.

Напишіть у відповіді який Instance ID отримала створена вами віртуальна машина (відповідь можна змінювати до завершення часу конкурсу)                                

2. Створення бази даних Aurora

Використовуючи веб-консоль AWS або команду aws створіть сумісний з MySQL кластер баз даних Aurora. На базі кластеру створіть базу даних та користувача з іменем memberbox. Занотуйте параметри доступу до бази даних.

Можна створити кластер баз даних з єдиним інстансом типу small - цього буде цілком достатньо для виконання завдань.

Напишіть у відповідь назву кластеру баз даних (відповідь можна змінювати до завершення часу конкурсу)

3. Розгортання бази даних

Використовуючи раніше занотовані параметри доступу до бази даних memberbox розгорніть базу даних з наступного S3-об'єкту:

s3://linux-2022/linux-2022.sql

Напишіть у відповідь перелік розгорнутих таблиць бази даних через кому (відповідь можна змінювати до завершення часу конкурсу)

4. Завантажити код веб-додатку

Підключіться до створеної у 1-му заданні віртуальної машини EC2 по SSH та склонуйте даний репозиторій:

https://github.com/LinuxNation/memberbox.git

Напишіть у відповідь абсолютний шлях до директорії склонованих файлів (відповідь можна змінювати до завершення часу конкурсу)

5. Контейнеризація

Встановіть середовище контейнеризації Docker на віртуальній машині EC2. Перейдіть у папку зі зклонованим у попередньому завданні кодом з GitHub. Ознайомтесь із файлом requirements.txt та визначте що знадобиться для контейнеризації додатку. У папці зклонованого проєкту створіть конфігурацію для створення образу Dockerfile. Врахуйте при цьому наступні вимоги:

Напишіть у відповідь де знаходиться Dockerfile. Код може бути розміщений наступними способами:

(відповідь можна змінювати до завершення часу конкурсу)        

6. Розгортання контейнеру

На базі створеного вами Dockerfile та коду із Git-репозиторію зберіть образ Docker. Розгорніть зібраний образ на вашій віртуальній машині EC2. При розгортанні задайте наступні параметри:

Напишіть у відповідь ідентифікатор розгорнутого контейнеру у середовищі Docker (відповідь можна змінювати до завершення часу конкурсу)

7. Налаштування реверсивного HTTP-проксі

Налаштувати реверсивний HTTP-проксі на вашому EC2-інстансі, який проксіюватиме веб-трафік із портів 80/tcp (HTTP) та 443/tcp (HTTPS) на розгорнутий у попередньому завданні додаток у контейнері Docker. Додаток має бути доступним на хості за-вмовчанням (без прив'язки до домену).

Напишіть у відповідь URL, на якому працює реверсивний HTTP-проксі (відповідь можна змінювати до завершення часу конкурсу)

8. Обмежити доступ до чутливих URL                                                

Налаштувати обмеження доступу у встановленого у попередньому завданні реверсивного HTTP-проксі наступним чином:

Шлях URI

Обмеження

/create_item

Доступ до цих URI має бути можливим лише при успішній HTTP-автентифікації за логіном "it-universe" та паролем "linux_2022". Неавторизовані користувачі не повині мати можливість додавати та видаляти об’єкти у додатку

/delete/item/*

/api/*

Доступ до API-шляхів має бути можливим лише при наявності GET-змінної "api_key" та її рівності значенню "linux_2022". При відсутності або неправильності даної змінної має видаватись помилка 403

Напишіть у відповідь абсолютний шлях до файлу конфігурації веб-серверу це реалізовано (відповідь можна змінювати до завершення часу конкурсу)

9. Захист доступу до бази даних Aurora

Використовуючи веб-консоль AWS або команду aws переконайтесь що доступ до кластеру баз даних можливий лише із вашої віртуальної машини EC2. Будь-які інші IP-адреси не повині мати можливості встановлювати підключення до кластеру БД Aurora.

Напишіть ідентифікатор групи безпеки, який обмежує доступ до кластеру БД Aurora (відповідь можна змінювати до завершення часу конкурсу)

10. Захист доступу до бази даних Aurora

Переконайтесь що всі ваші завдання працюватимуть після перезавантаження ресурсів хмари. Бали за завдання, які перестали працювати після перезавантаження, не зараховуються.

Після закінчення виконання завдань від'єднайтесь від SSH, вийдіть із веб-консолі AWS, заверште роботу у вебкласі AWS Academy (як на рисунку), виберіть нижче "ТАК" та натисніть кнопку "Закінчити".

Нічого вивантажувати не потрібно. Результати роботи будуть збережені у хмарі.