Трафік HTTP
Це завдання показує, як налаштувати політику авторизації Istio з дією ALLOW
для HTTP трафіку в mesh Istio.
Перед початком
Перед початком цього завдання виконайте наступні кроки:
Ознайомтеся з концепціями авторизації Istio.
Дотримуйтесь посібника з установки Istio6, щоб встановити Istio з увімкненим взаємним TLS.
Розгорніть демонстраційний застосунок Bookinfo.
Після розгортання застосунку Bookinfo перейдіть на сторінку продукту Bookinfo за адресою http://$GATEWAY_URL/productpage
. На сторінці продукту ви побачите такі розділи:
- Деталі книги в середній частині сторінки, що включає: тип книги, кількість сторінок, видавець тощо.
- Огляди книг в нижній частині сторінки.
Коли ви оновите сторінку, застосунок показує різні версії оглядів на сторінці продукту. Застосунок представляє огляди у стилі “кругового розподілу” (round robin): червоні зірки, чорні зірки або без зірок.
Налаштування контролю доступу для навантажень за допомогою HTTP трафіку
Використовуючи Istio, ви можете легко налаштувати контроль доступу для робочого навантаження у вашому mesh. Це завдання показує, як налаштувати контроль доступу за допомогою авторизації Istio. Спочатку ви налаштовуєте просту політику
allow-nothing
, яка відхиляє всі запити до навантаження, а потім поступово надаєте більше доступу до навантаження.Запустіть наступну команду для створення політики
allow-nothing
у просторі іменdefault
. Політика не має поляselector
, що застосовує політику до всіх навантажень у просторі іменdefault
. Полеspec:
політики має пусте значення{}
. Це значення означає, що жоден трафік не дозволяється, ефективно відмовляючи всім запитам.Відкрийте в оглядачі сторінку продукту Bookinfo (
http://$GATEWAY_URL/productpage
). Ви повинні побачити"RBAC: access denied"
. Ця помилка показує, що конфігурована політикаdeny-all
працює як потрібно, і в Istio немає жодних правил, які дозволяють доступ до навантажень у mesh.Запустіть наступну команду для створення політики
productpage-viewer
, щоб дозволити доступ з методомGET
до навантаженняproductpage
. Політика не встановлює полеfrom
уrules
, що означає, що дозволені всі джерела, ефективно дозволяючи доступ усім користувачам та навантаженням:Відкрийте в браузері сторінку продукту Bookinfo (
http://$GATEWAY_URL/productpage
). Тепер ви повинні побачити сторінку “Bookinfo Sample”. Однак на сторінці можуть з’явитися наступні помилки:Error fetching product details
Error fetching product reviews
Ці помилки є очікуваними, оскільки ми ще не надали навантаженню
productpage
доступ до навантаженьdetails
іreviews
. Далі вам потрібно налаштувати політику для надання доступу до цих навантажень.Запустіть наступну команду для створення політики
details-viewer
, щоб дозволити навантаженнюproductpage
, яке надсилає запити за допомогою службового облікового записуcluster.local/ns/default/sa/bookinfo-productpage
, отримувати доступ до навантаженняdetails
через методиGET
:Запустіть наступну команду для створення політики
reviews-viewer
, щоб дозволити навантаженнюproductpage
, яке надсилає запити за допомогою службового облікового записуcluster.local/ns/default/sa/bookinfo-productpage
, отримувати доступ до навантаженняreviews
через методиGET
:Відкрийте в оглядачі сторінку продукту Bookinfo (
http://$GATEWAY_URL/productpage
). Тепер ви повинні побачити сторінку “Bookinfo Sample” з розділами “Деталі книги” з лівого нижнього кута і “Огляди книг” з правого нижнього кута. Однак у розділі “Огляди книг” може зʼявитися помилкаRatings service currently unavailable
.Це повʼязано з тим, що навантаження
reviews
не має дозволу на доступ до навантаженняratings
. Щоб розвʼязати цю проблему, потрібно надати навантаженнюreviews
доступ до навантаженняratings
. Далі налаштуйте політику для надання доступу навантаженнюreviews
.Запустіть наступну команду для створення політики
ratings-viewer
, щоб дозволити навантаженнюreviews
, яке надсилає запити за допомогою службового облікового записуcluster.local/ns/default/sa/bookinfo-reviews
, отримувати доступ до навантаженняratings
через методиGET
:Відкрийте в оглядачі сторінку продукту Bookinfo (
http://$GATEWAY_URL/productpage
). Тепер ви повинні побачити “чорні” та “червоні” рейтинги у розділі “Огляди книг”.Вітаємо! Ви успішно застосували політику авторизації для забезпечення контролю доступу для навантажень за допомогою HTTP трафіку.
Очищення
Видаліть усі політики авторизації з вашої конфігурації: