Хмарна безпека в AWS є найвищим пріоритетом. Студія Amazon SageMaker пропозиції різні механізми щоб захистити ваші дані та код за допомогою інтеграції зі службами безпеки AWS, такими як Управління ідентифікацією та доступом AWS (Я), Служба управління ключами AWS (AWS KMS), або ізоляція мережі за допомогою Віртуальна приватна хмара Amazon (VPC Amazon).
Клієнти в дуже регульованих галузях, як-от фінансові послуги, можуть налаштувати Studio лише у VPC режим, щоб увімкнути ізоляцію мережі та вимкнути доступ до Інтернету з ноутбуків Studio. Ви можете використовувати інтеграцію IAM зі Studio, щоб контролювати, які користувачі мають доступ до таких ресурсів, як блокноти Studio, IDE Studio або Amazon SageMaker навчальні роботи.
Популярним випадком використання є обмежити доступ до IDE Studio лише користувачам із зазначеного діапазону CIDR мережі або визначеного VPC. Ви можете досягти цього, реалізувавши Політики SageMaker на основі ідентифікації IAM і приєднання цих політик до користувачів або груп IAM, яким потрібні ці дозволи. Однак домен SageMaker має бути налаштований за допомогою Режим автентифікації IAM, оскільки політики на основі ідентифікації IAM не підтримуються в AWS Єдиний вхід (SSO) режим автентифікації.
Багато клієнтів використовують AWS SSO, щоб увімкнути централізований контроль ідентичності персоналу та забезпечити послідовний вхід користувачів. У цій публікації показано, як реалізувати цей варіант використання, зберігаючи можливості AWS SSO для доступу до Studio.
Огляд рішення
Коли ви налаштовуєте домен SageMaker у режимі лише VPC і вказуєте підмережі та групи безпеки, SageMaker створює еластичні мережеві інтерфейси (ENI), які пов’язані з вашими групами безпеки у вказаних підмережах. ENI дозволяють вашим навчальним контейнерам підключатися до ресурсів у вашому VPC.
У цьому режимі прямий доступ до Інтернету з ноутбуків повністю вимкнено, а весь трафік направляється через ENI у вашому приватному VPC. Це також включає трафік від віджетів і інтерфейсів Studio UI, таких як керування експериментом, автопілот і монітор моделі, до їхніх відповідних внутрішніх API SageMaker. AWS рекомендує використовувати лише режим VPC, щоб здійснювати детальний контроль доступу до мережі Studio.
Перша проблема полягає в тому, що хоча Studio розгорнуто без підключення до Інтернету, до Studio IDE можна отримати доступ із будь-якого місця, припускаючи доступ до Консоль управління AWS і Studio надається принципалу IAM. Така ситуація неприйнятна, якщо ви хочете повністю ізолювати Studio від загальнодоступної мережі й утримувати весь зв’язок у жорстко контрольованому приватному VPC.
Щоб вирішити цю проблему та вимкнути будь-який доступ до Studio IDE, за винятком визначеного VPC або діапазону CIDR, ви можете використовувати API CreatePresignedDomainUrl SageMaker. Роль або користувач IAM, який використовується для виклику цього API, визначає дозволи на доступ до Studio. Тепер ви можете використовувати політики на основі ідентифікації IAM, щоб реалізувати бажану конфігурацію доступу. Наприклад, щоб увімкнути доступ лише з визначеного VPC, додайте таку умову до політики IAM, пов’язаної з принципалом IAM, який використовується для генерації попередньо підписаної URL-адреси домену:
Щоб увімкнути доступ лише з призначеної кінцевої точки або кінцевих точок VPC, укажіть таку умову:
Використовуйте наступну умову, щоб обмежити доступ із визначеного діапазону CIDR:
Друга проблема полягає в тому, що контроль доступу на основі IAM працює лише тоді, коли домен SageMaker налаштовано в режимі автентифікації IAM; ви не можете використовувати його, коли домен SageMaker розгорнуто в режимі AWS SSO. У наступному розділі показано, як вирішити ці проблеми та реалізувати контроль доступу на основі IAM за допомогою доступу AWS SSO до Studio.
Огляд архітектури
Studio публікується як програма SAML, яка призначається певному профілю користувача SageMaker Studio. Користувачі можуть зручно отримати доступ до Studio безпосередньо з порталу AWS SSO, як показано на наступному знімку екрана.
Рішення інтегрується з a спеціальна програма SAML 2.0 як механізм для запуску автентифікації користувача для Studio. Для цього потрібно, щоб спеціальна програма SAML була налаштована за допомогою API -шлюз Amazon URL-адреса кінцевої точки як її Assertion Consumer Service (ACS), і потребує атрибутів зіставлення, що містять ідентифікатор користувача AWS SSO, а також ідентифікатор домену SageMaker.
Кінцева точка API Gateway викликає an AWS Lambda функція, яка аналізує відповідь SAML, щоб отримати ідентифікатор домену та ідентифікатор користувача та використовувати їх для генерації попередньо підписаної URL-адреси Studio. Функція Lambda нарешті виконує переспрямування через відповідь HTTP 302 для входу користувача в Studio.
Політика IAM контролює мережеве середовище, з якого дозволено входити користувачам Studio, що включає умови обмеження, описані в попередньому розділі. Ця політика IAM додається до функції Lambda. Політика IAM містить дозвіл на виклик sagemaker:CreatePresignedDomainURL
API лише для певного профілю користувача:
На наступній схемі показано архітектуру рішення.
Рішення розгортає домен SageMaker у вашому приватному VPC та Кінцеві точки VPC для доступу до Studio, середовища виконання SageMaker і API SageMaker через приватне з’єднання без необхідності використання інтернет-шлюзу. Кінцеві точки VPC налаштовано з увімкненим приватним DNS (PrivateDnsEnabled=True
) асоціювати a приватна розміщена зона з вашим VPC. Це дозволяє Studio отримувати доступ до API SageMaker за допомогою загальнодоступного імені DNS за замовчуванням api.sagemaker.<Region>.amazonaws.com
дозволено на приватну IP-адресу кінцевої точки замість використання URL-адреси кінцевої точки VPC.
Вам потрібно додати кінцеві точки VPC до свого VPC, якщо ви хочете отримати доступ до інших служб AWS, наприклад Служба простого зберігання Amazon (Amazon S3), Реєстр контейнерів Amazon Elastic (Amazon ECR), Служба маркерів безпеки AWS (AWS STS), AWS CloudFormationабо Комісія AWS.
Ви можете повністю контролювати дозволи, які використовуються для створення попередньо підписаної URL-адреси та будь-яких інших викликів API за допомогою політик IAM, приєднаних до ролі виконання функції Lambda, або контролювати доступ до будь-якої використовуваної служби AWS через Політики кінцевих точок VPC. Приклади використання політик IAM для керування доступом до Studio та API SageMaker див Керуйте доступом до API SageMaker за допомогою політик на основі ідентифікації.
Хоча рішення вимагає розгортання домену Studio в режимі IAM, воно дозволяє використовувати AWS SSO як механізм для входу кінцевих користувачів у Studio.
Наступні підрозділи містять детальний опис основних компонентів рішення.
Шлюз API
Кінцева точка шлюзу API діє як ціль для URL-адреси ACS програми, налаштованої в спеціальній програмі SAML 2.0. Кінцева точка є приватною та має виклик ресурсу /saml
і метод POST із запитом інтеграції, налаштованим як лямбда-проксі. Рішення використовує кінцеву точку VPC із налаштованим com.amazonaws.<region>.execute-api
Ім’я DNS для виклику цієї кінцевої точки API з VPC.
AWS SSO
Спеціальна програма SAML 2.0 налаштована за допомогою URL-адреси кінцевої точки шлюзу API https:/{ restapi-id}.execute-api.amazonaws.com/saml
як URL-адресу ACS програми та використовує зіставлення атрибутів із такими вимогами:
- Ідентифікатор користувача:
- Атрибут користувача в програмі – ім’я користувача
- Карти атрибутів користувача в AWS SSO -
${user:AD_GUID}
- Ідентифікатор домену SageMaker:
- Атрибут користувача в програмі -
domain-id
- Карти атрибутів користувача в AWS SSO – Ідентифікатор домену для примірника Studio
- Атрибут користувача в програмі -
Додаток реалізує контроль доступу для користувача AWS SSO шляхом надання профілю користувача Studio з іменем, що дорівнює ідентифікатору користувача AWS SSO.
Лямбда-функція
Рішення налаштовує функцію Lambda як точку виклику для шлюзу API /saml
ресурс. Функція аналізує SAMLResponse
надіслано AWS SSO, витягує domain-id
а також ім’я користувача та виклики createPresignedDomainUrl
API SageMaker для отримання URL-адреси Studio та маркера та перенаправлення користувача для входу за допомогою відповіді HTTP 302. Функція Lambda має певну політику IAM, пов’язану з її роллю виконання, яка дозволяє sagemaker:createPresignedDomainUrl
дія лише тоді, коли це запитується з певного мережевого діапазону CIDR за допомогою VpcSourceIp
стані.
Функція Lambda не має жодної логіки для перевірки відповіді SAML, наприклад для перевірки підпису. Однак, оскільки кінцева точка шлюзу API, яка служить ACS, є лише приватною або внутрішньою, вона не є обов’язковою для цього середовища підтвердження концепції.
Розгорніть рішення
Команда GitHub сховище надає повний вихідний код для наскрізного рішення.
Щоб розгорнути рішення, ви повинні мати права адміністратора (або досвідченого користувача) для облікового запису AWS і встановити Інтерфейс командного рядка AWS (AWS CLI) і AWS SAM CLI і мінімум Python 3.8.
Рішення підтримує розгортання в трьох регіонах AWS: eu-west-1
, eu-central-1
та us-east-1
. Переконайтеся, що ви вибрали один із цих регіонів для розгортання.
Щоб розпочати тестування рішення, ви повинні виконати наступні кроки розгортання з рішення Файл README GitHub:
- Налаштуйте AWS SSO, якщо його не налаштовано.
- Розгорніть рішення за допомогою програми SAM.
- Створіть нову спеціальну програму SAML 2.0.
Після завершення кроків розгортання можна продовжити тестування рішення.
Перевірте розчин
Рішення імітує два випадки використання, щоб продемонструвати використання AWS SSO і політик на основі ідентифікації SageMaker:
- Позитивний варіант використання – Користувач отримує доступ до Studio з визначеного діапазону CIDR через кінцеву точку VPC
- Негативний варіант використання – Користувач отримує доступ до Studio з публічної IP-адреси
Щоб перевірити ці випадки використання, рішення створило три Обчислювальна хмара Amazon Elastic (Amazon EC2) екземпляри:
- Приватний господар – Екземпляр EC2 Windows у приватній підмережі, який має доступ до Studio (вашого локального захищеного середовища)
- Господар бастіону – Екземпляр EC2 Linux у публічній підмережі, який використовується для встановлення тунелю SSH до приватного хосту в приватній мережі
- Публічний хост – Екземпляр EC2 Windows у публічній підмережі, щоб продемонструвати, що користувач не може отримати доступ до Studio з неавторизованої IP-адреси
Перевірте доступ до Studio з авторизованої мережі
Щоб виконати тест, виконайте такі дії:
- Щоб отримати доступ до примірника EC2 Windows у приватній мережі, запустіть команду, надану як значення вихідного ключа SAM
TunnelCommand
. Переконайтеся, що закритий ключ пари ключів, указаної в параметрі, знаходиться в каталозі, звідки запускається команда тунелю SSH. Команда створює SSH тунель з локального комп’ютераlocalhost:3389
до примірника EC2 Windows у приватній мережі. Перегляньте наступний приклад коду: - На локальному робочому столі або ноутбуці відкрийте нове підключення RDP (наприклад, за допомогою Microsoft Remote Desktop), використовуючи
localhost
як цільовий віддалений хост. Це з’єднання тунелюється через бастіонний хост до приватного екземпляра Windows EC2. Використовуйте ім'я користувачаAdministrator
і пароль із виведення стекаSageMakerWindowsPassword
. - Відкрийте веб-браузер Firefox із віддаленого робочого столу.
- Перейдіть і увійдіть на портал AWS SSO, використовуючи облікові дані, пов’язані з іменем користувача, яке ви вказали як
ssoUserName
параметр. - Виберіть Безпечна демонстрація SageMaker Програма AWS SSO з порталу AWS SSO.
Вас буде перенаправлено до Studio IDE у новому вікні браузера.
Перевірте доступ до Studio з неавторизованої мережі
Тепер виконайте такі дії, щоб імітувати доступ із неавторизованої мережі:
- Відкрийте нове підключення RDP за IP-адресою, наданою в
SageMakerWindowsPublicHost
Вихід SAML. - Відкрийте веб-браузер Firefox із віддаленого робочого столу.
- Перейдіть на портал AWS SSO та ввійдіть до нього, використовуючи облікові дані, пов’язані з іменем користувача, указаним як
ssoUserName
параметр. - Виберіть Безпечна демонстрація SageMaker Програма AWS SSO з порталу AWS SSO.
Цього разу ви отримуєте повідомлення про несанкціонований доступ.
Прибирати
Щоб уникнути стягнення плати, ви повинні видалити всі надані рішенням і створені вручну ресурси зі свого облікового запису AWS. Дотримуйтесь інструкцій у рішенні Файл README.
Висновок
Ми продемонстрували, що, запровадивши проміжний рівень автентифікації між кінцевим користувачем і Studio, ми можемо контролювати середовище, з якого користувачеві дозволено доступ до Studio, і явно блокувати будь-яке інше неавторизоване середовище.
Щоб посилити безпеку, ви можете додати політику IAM до ролі користувача, щоб запобігти доступу до Studio з консолі. Якщо ви використовуєте Організації AWS, ви можете реалізувати наступне політика контролю обслуговування для організаційних підрозділів або облікових записів, яким потрібен доступ до Studio:
Хоча рішення, описане в цій публікації, використовує API Gateway і Lambda, ви можете досліджувати інші способи, наприклад екземпляр EC2 за допомогою роль екземпляра використовуючи той самий робочий процес перевірки дозволів, як описано, або навіть незалежну систему для обробки автентифікації та авторизації користувача та генерації попередньо підписаної URL-адреси Studio.
Подальше читання
Захист доступу до Studio є активно досліджуваною темою, і є інші відповідні публікації про подібні підходи. Щоб дізнатися більше про інші сервіси та архітектури, які ви можете використовувати, перегляньте наступні публікації в блозі машинного навчання AWS:
Про авторів
Джером Бачелет є архітектором рішень в Amazon Web Services. Він процвітає, допомагаючи клієнтам отримати максимальну віддачу від AWS для досягнення своїх бізнес-цілей. Джером має понад 10 років досвіду роботи з рішеннями для захисту та безпеки даних. Окрім роботи в хмарі, Джером любить подорожувати та проводити час зі своєю дружиною та 2 доньками в районі Женеви, Швейцарія.
Євген Ільїн є архітектором рішень в AWS. Він має понад 20-річний досвід роботи на всіх рівнях розробки програмного забезпечення та архітектури рішень і використовує мови програмування від COBOL і Assembler до .NET, Java та Python. Він розробляє та кодує нативні хмарні рішення з фокусом на великих даних, аналітиці та інженерії даних.
- '
- "
- 100
- 7
- 9
- МЕНЮ
- доступ
- рахунки
- дію
- активний
- адреса
- ВСІ
- Amazon
- Amazon EC2
- Amazon SageMaker
- Amazon Web Services
- аналітика
- API
- Інтерфейси
- додаток
- архітектура
- ПЛОЩА
- Authentication
- авторизації
- автопілот
- AWS
- буття
- Великий даних
- Блог
- браузер
- бізнес
- call
- випадків
- виклик
- проблеми
- вантажі
- хмара
- Хмара рідна
- код
- Комунікація
- обчислення
- конфігурація
- зв'язку
- зв'язок
- Консоль
- споживач
- Контейнер
- Контейнери
- Повноваження
- Клієнти
- дані
- захист даних
- безпеку даних
- розробка
- DNS
- Ні
- ефект
- Кінцева точка
- Машинобудування
- Навколишнє середовище
- приклад
- виконання
- Здійснювати
- досвід
- експеримент
- Виписки
- в кінці кінців
- фінансовий
- фінансові послуги
- Firefox
- Перший
- Сфокусувати
- стежити
- Повний
- функція
- породжувати
- GIF
- Як
- How To
- HTTPS
- IAM
- Особистість
- здійснювати
- реалізації
- промисловості
- інтеграція
- інтернет
- IP
- IP-адреса
- ізоляція
- IT
- Java
- Джобс
- зберігання
- ключ
- мови
- УЧИТЬСЯ
- вивчення
- Лінія
- Linux
- місцевий
- навчання за допомогою машини
- управління
- Microsoft
- модель
- мережу
- мережу
- Доступ до мережі
- ноутбуки
- Пропозиції
- відкрити
- Інше
- Пароль
- Політика
- політика
- популярний
- Портал
- Пости
- влада
- Головний
- приватний
- Private Key
- профіль
- Програмування
- мови програмування
- доказ
- доказ концепції
- захист
- захист
- забезпечувати
- забезпечує
- повноваження
- громадськість
- Python
- якість
- діапазон
- переадресовувати
- Вимога
- дослідження
- ресурс
- ресурси
- відповідь
- прогін
- мудрець
- безпеку
- Послуги
- виступаючої
- комплект
- аналогічний
- простий
- Софтвер
- розробка програмного забезпечення
- Рішення
- старт
- Заява
- зберігання
- Підтриманий
- Опори
- Швейцарія
- система
- Мета
- тест
- Тестування
- через
- час
- знак
- трафік
- Навчання
- ui
- користувачі
- значення
- Віртуальний
- Web
- веб-браузер
- веб-сервіси
- windows
- в
- без
- робочий
- Трудові ресурси
- працює
- років