Автентифікація в AWS Client VPN: дозволи IAM не є способом входу
Дозволи в консолі не автентифікують тунель. Порівняйте методи із сертифікатом, AD і SAML, а потім подивіться, коли переспрямування порту через SSM підходить для однієї приватної бази даних.
Якщо надати користувачеві дозвіл створювати або описувати кінцеву точку AWS Client VPN, це не дасть йому змоги підключитися до неї. Це два різні види ідентичності: IAM керує викликами AWS API, а кінцева точка приймає лише налаштовані на ній методи автентифікації клієнта. Тому користувач може мати широкі права в консолі й водночас не мати нічого, що клієнт VPN міг би пред’явити. Визначте, якому методу довіряє кінцева точка, а потім вирішіть, чи повний тунель є правильною формою для доступу, який ви надаєте.
Ідентичність API — не ідентичність тунелю
Коли хтось каже «роль IAM прикріплена, чому VPN усе одно не працює», відповідь зазвичай така: жоден крок у потоці підключення не читає цю роль. Клієнт пред’являє сертифікат, ім’я користувача й пароль AD або твердження SAML. Кінцева точка перевіряє одне з них і потім призначає адресу.
IAM і далі важливий, лише пізніше та в іншому місці: створення кінцевої точки, прив’язування підмереж, публікація маршрутів і написання правил авторизації — це дії API. Тримайте ці дозволи обмеженими тими операторами, яким вони потрібні, замість того щоб давати кожному користувачеві можливість переписувати правила доступу кінцевої точки.
Виберіть із методів, які підтримує кінцева точка
AWS Client VPN приймає взаємну автентифікацію на основі сертифіката, автентифікацію Active Directory і федеративну автентифікацію на основі SAML. Сертифікат сервера потрібен незалежно від обраного методу клієнта, а конфігурація, що поєднує методи, вимагає успіху обох, а не одного.
| Client method | What the user presents | Where the work sits |
|---|---|---|
| Mutual certificate | A client certificate the endpoint trusts | Certificate authority, issuing and revoking per user |
| Active Directory | Domain credentials | Directory reachable from the endpoint's VPC |
| SAML federation | An assertion from an identity provider | IdP application, attribute mapping, client support |
Сертифікати найдешевше розгорнути й найлегше зробити неправильно в масштабі, бо кожному користувачеві потрібні облікові дані, а кожен вихід вимагає відкликання. Автентифікація через каталог переносить цей життєвий цикл у наявну систему. Федерація переносить його до постачальника ідентичності й додає клієнту крок у браузері.
Прочитайте конфігурацію самої кінцевої точки, перш ніж налагоджувати клієнт. Якщо взаємну автентифікацію ввімкнено поряд із методом на основі користувача, клієнт із чинним сертифікатом, але без облікового запису в каталозі все одно зазнає невдачі, і помилка зазвичай виглядає як загальна проблема рукостискання.
Федерація — це не передавання ключів доступу
Налаштування SAML не подає в тунель ключі доступу IAM або токен прийнятої ролі. Постачальник ідентичності автентифікує людину, повертає твердження, і кінцева точка приймає його в межах налаштованої вами довіри. Отриманий сеанс — це сеанс VPN, а не сеанс AWS API.
Ця відмінність визначає, хто що може діагностувати. Проблеми IdP проявляються як помилка браузера або клієнта ще до появи будь-якого тунелю, а проблеми тунелю — після успішного твердження. Запитайте, на що з цих двох ви дивитеся, перш ніж відкривати будь-яку з консолей.
Після входу маршрути й авторизація все ще вирішують
Автентифікація дає сеансу адресу; вона не дає сеансу пункту призначення. Маршрути кінцевої точки повідомляють клієнту, до яких підмереж надсилати, правила авторизації вирішують, які користувачі можуть досягти яких із цих підмереж, а групи безпеки та власні дозволи цілі вирішують решту.
Саме тому користувач, який успішно автентифікувався, усе одно може не досягти бази даних. Перевірте зв’язок таблиці маршрутів із підмережею, правило авторизації для групи користувача й групу безпеки на цілі саме в цьому порядку, бо кожне з них дає інший тип тайм-ауту.
Для однієї приватної бази даних порівняйте з переспрямуванням порту
Якщо реальне завдання — одне схвалене підключення до однієї приватної бази даних, повний мережевий тунель є вибором, а не вимогою. AWS Systems Manager Session Manager може через IAM відкрити сеанс переспрямування порту до керованого вузла, і цей вузол досягає бази даних у приватній мережі. Користувач ніколи не отримує адресу VPC. Керований вузол стає єдиним хостом, який може досягти порту бази даних, і зазвичай саме цього вимагав огляд безпеки. Тоді користувачам потрібні локальний клієнт і команда сеансу замість профілю VPN.
Компроміс — це охоплення проти передумов. Переспрямування порту потребує агента SSM на керованому вузлі, мережевої доступності від цього вузла до бази даних, додатка Session Manager на машині користувача й дозволу запустити саме цей сеанс. Це не маршрут у кожну підмережу, і воно не передає довільні протоколи так, як це робить тунель.
У будь-якому разі збережіть власну ідентичність бази даних. Перевірка TLS та автентифікація бази даних не зникають через те, що шлях було авторизовано через IAM, а схвалений сеанс нічого не каже про те, які таблиці користувач може читати.
Обирайте за охопленням і життєвим циклом: тунель, коли багатьом користувачам потрібно багато призначень і ви можете вести життєвий цикл сертифікатів або каталогу; сеанс переспрямування, коли кільком людям потрібна одна служба і ви волієте не роздавати мережеві адреси. У будь-якому разі фіксуйте метод автентифікації, правило авторизації та вхід до бази даних як три окремі факти, бо вони відмовляють окремо.