Облачная безопасность в AWS является наивысшим приоритетом. Студия Amazon SageMaker предложения различные механизмы для защиты ваших данных и кода с помощью интеграции с сервисами безопасности AWS, такими как Управление идентификацией и доступом AWS (Я), Служба управления ключами AWS (AWS KMS) или сетевая изоляция с помощью Виртуальное частное облако Amazon (Амазон ВКК).
Клиенты в строго регулируемых отраслях, таких как финансовые услуги, могут настроить студию только в VPC режим, чтобы включить сетевую изоляцию и отключить доступ в Интернет с ноутбуков Studio. Вы можете использовать интеграцию IAM со Studio, чтобы контролировать, какие пользователи имеют доступ к таким ресурсам, как записные книжки Studio, Studio IDE или Создатель мудреца Амазонки обучающие рабочие места.
Популярным вариантом использования является ограничить доступ к Studio IDE только пользователям из указанного диапазона CIDR сети или назначенного VPC. Вы можете добиться этого, внедрив Политики SageMaker на основе удостоверений IAM и прикрепление этих политик к пользователям или группам IAM, которым требуются эти разрешения. Однако домен SageMaker должен быть настроен с Режим аутентификации IAM, так как политики на основе удостоверений IAM не поддерживаются в Единый вход AWS (система единого входа) режим аутентификации.
Многие клиенты используют AWS SSO, чтобы включить централизованный контроль удостоверений сотрудников и обеспечить единообразный вход пользователей в систему. В этом посте показано, как реализовать этот вариант использования, сохранив при этом возможности AWS SSO для доступа к Studio.
Обзор решения
Когда вы настраиваете домен SageMaker в режиме только VPC и указываете подсети и группы безопасности, SageMaker создает эластичные сетевые интерфейсы (ENI), которые связаны с вашими группами безопасности в указанных подсетях. ENI позволяют вашим учебным контейнерам подключаться к ресурсам в вашем VPC.
В этом режиме прямой доступ в Интернет с ноутбуков полностью отключен, и весь трафик направляется через ENI в вашем частном VPC. Сюда также входит трафик от виджетов и интерфейсов пользовательского интерфейса Studio, таких как управление экспериментом, автопилот и монитор модели, к соответствующим внутренним 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, как показано на следующем снимке экрана.
Решение интегрируется с пользовательское приложение SAML 2.0 как механизм запуска аутентификации пользователя для Studio. Для этого требуется, чтобы пользовательское приложение SAML было настроено с Шлюз API Amazon URL-адрес конечной точки в качестве службы приема утверждений (ACS) и требует сопоставления атрибутов, содержащих идентификатор пользователя AWS SSO, а также идентификатор домена SageMaker.
Конечная точка шлюза API вызывает 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
) связать частная зона хостинга с вашим VPC. Это позволяет Studio получать доступ к SageMaker API, используя общедоступное DNS-имя по умолчанию. api.sagemaker.<Region>.amazonaws.com
разрешается в частный IP-адрес конечной точки, а не с использованием URL-адреса конечной точки VPC.
Вам необходимо добавить конечные точки VPC к вашему VPC, если вы хотите получить доступ к любым другим сервисам AWS, например Простой сервис хранения Amazon (Амазон С3), Реестр Amazon Elastic Container (Амазон ЭКР), Сервис токенов безопасности AWS (АВС СТС), AWS CloudFormationили AWS CodeCommit.
Вы можете полностью контролировать разрешения, используемые для создания предварительно подписанного URL-адреса и любых других вызовов API, с политиками IAM, прикрепленными к роли выполнения функции Lambda, или управлять доступом к любому используемому сервису AWS через Политики конечных точек VPC. Примеры использования политик IAM для управления доступом к API Studio и SageMaker см. Управление доступом к SageMaker API с помощью политик на основе удостоверений.
Хотя решение требует развертывания домена Studio в режиме IAM, оно позволяет использовать AWS SSO в качестве механизма для входа конечных пользователей в Studio.
Следующие подразделы содержат подробное описание основных компонентов решения.
API-шлюз
Конечная точка шлюза API действует как цель для URL-адреса ACS приложения, настроенного в пользовательском приложении SAML 2.0. Конечная точка является частной и имеет ресурс с именем /saml
и метод POST с запросом на интеграцию, настроенным как прокси-сервер Lambda. Решение использует конечную точку VPC с настроенным com.amazonaws.<region>.execute-api
DNS-имя для вызова этой конечной точки API из VPC.
Система единого входа AWS
Пользовательское приложение 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
SageMaker API для получения URL-адреса Studio и токена и перенаправления пользователя для входа в систему с помощью ответа HTTP 302. Функция Lambda имеет специальную политику IAM, связанную с ее исполнительной ролью, которая позволяет sagemaker:createPresignedDomainUrl
действие только тогда, когда оно запрашивается из определенного сетевого диапазона CIDR с использованием VpcSourceIp
состояние.
Функция Lambda не имеет никакой логики для проверки ответа SAML, например для проверки подписи. Однако, поскольку конечная точка шлюза API, выступающая в качестве ACS, является частной или только внутренней, она не является обязательной для этой экспериментальной среды.
Разверните решение
Ассоциация Репозиторий GitHub предоставляет полный исходный код комплексного решения.
Чтобы развернуть решение, вы должны иметь права администратора (или опытного пользователя) для учетной записи AWS и установить Интерфейс командной строки AWS (AWS CLI) и Интерфейс командной строки AWS SAM и минимум Python 3.8.
Решение поддерживает развертывание в трех регионах AWS: eu-west-1
, eu-central-1
и us-east-1
. Убедитесь, что вы выбрали один из этих регионов для развертывания.
Чтобы приступить к тестированию решения, необходимо выполнить следующие шаги развертывания из GitHub файл README:
- Настройте AWS SSO, если он у вас не настроен.
- Разверните решение с помощью приложения SAM.
- Создайте новое пользовательское приложение SAML 2.0.
После выполнения шагов развертывания можно приступить к тестированию решения.
Проверить решение
Решение моделирует два варианта использования, чтобы продемонстрировать использование AWS SSO и политик на основе удостоверений SageMaker:
- Положительный вариант использования – Пользователь получает доступ к Studio из указанного диапазона CIDR через конечную точку VPC.
- Отрицательный вариант использования – Пользователь получает доступ к Studio с общедоступного IP-адреса.
Чтобы протестировать эти варианты использования, решение создало три Эластичное вычислительное облако Amazon (Amazon EC2) экземпляры:
- Частный хост – Экземпляр EC2 Windows в частной подсети, который может получить доступ к Studio (ваша локальная защищенная среда)
- Хозяин бастиона – Экземпляр EC2 Linux в общедоступной подсети, используемый для установки туннеля SSH к частному хосту в частной сети.
- Публичный хост – Экземпляр EC2 Windows в общедоступной подсети для демонстрации того, что пользователь не может получить доступ к Studio с неавторизованного IP-адреса.
Доступ к Test Studio из авторизованной сети
Выполните следующие действия, чтобы выполнить тест:
- Чтобы получить доступ к экземпляру Windows EC2 в частной сети, выполните команду, указанную в качестве значения выходного ключа SAM.
TunnelCommand
. Убедитесь, что закрытый ключ пары ключей, указанной в параметре, находится в каталоге, из которого запускается команда SSH-туннеля. Команда создает SSH туннель с локального компьютера наlocalhost:3389
к экземпляру Windows EC2 в частной сети. См. следующий пример кода: - На локальном рабочем столе или ноутбуке откройте новое соединение RDP (например, с помощью Microsoft Remote Desktop), используя
localhost
в качестве целевого удаленного хоста. Это соединение туннелируется через хост-бастион в частный экземпляр EC2 Windows. Используйте имя пользователяAdministrator
и пароль из вывода стекаSageMakerWindowsPassword
. - Откройте веб-браузер Firefox с удаленного рабочего стола.
- Перейдите на портал AWS SSO и войдите в него, используя учетные данные, связанные с именем пользователя, которое вы указали в качестве
ssoUserName
Параметр. - Выберите Безопасная демонстрация SageMaker Приложение AWS SSO с портала AWS SSO.
Вы будете перенаправлены в Studio IDE в новом окне браузера.
Доступ к Test 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.
Далее
Защита доступа к Студии является активной темой исследования, и есть другие соответствующие публикации о подобных подходах. Дополнительные сведения о других сервисах и архитектурах, которые вы можете использовать, см. в следующих сообщениях блога AWS Machine Learning:
Об авторах
Джером Бачелет работает архитектором решений в Amazon Web Services. Он преуспевает в том, чтобы помочь клиентам получить максимальную отдачу от AWS для достижения своих бизнес-целей. Джером имеет более чем 10-летний опыт работы с решениями по защите и безопасности данных. Помимо работы в облаке, Джером любит путешествовать и проводить время со своей женой и двумя дочерьми в районе Женевы, Швейцария.
Евгений Ильин является архитектором решений в AWS. Он имеет более чем 20-летний опыт работы на всех уровнях разработки программного обеспечения и архитектуры решений и использовал языки программирования от COBOL и Assembler до .NET, Java и Python. Он разрабатывает и кодирует нативные облачные решения, уделяя особое внимание большим данным, аналитике и инженерии данных.
- '
- "
- 100
- 7
- 9
- О нас
- доступ
- Учетная запись
- Действие
- активный
- адрес
- Все
- Amazon
- Amazon EC2
- Создатель мудреца Амазонки
- Amazon Web Services
- аналитика
- API
- API
- Применение
- архитектура
- ПЛОЩАДЬ
- Аутентификация
- разрешение
- автопилот
- AWS
- не являетесь
- Big Data
- Блог
- браузер
- бизнес
- призывают
- случаев
- вызов
- проблемы
- расходы
- облако
- Облако родное
- код
- Связь
- Вычисление
- Конфигурация
- связи
- связь
- Консоли
- потребитель
- Container
- Контейнеры
- Полномочия
- Клиенты
- данным
- защита данных
- безопасность данных
- Развитие
- DNS
- не
- эффект
- Конечная точка
- Проект и
- Окружающая среда
- пример
- выполнение
- Упражнение
- опыт
- эксперимент
- Экстракты
- в заключение
- финансовый
- финансовые услуги
- Firefox
- First
- Фокус
- следовать
- полный
- функция
- порождать
- GIF
- Как
- How To
- HTTPS
- IAM
- Личность
- осуществлять
- Осуществляющий
- промышленности
- интеграции.
- Интернет
- IP
- IP-адрес
- изоляция
- IT
- Java
- Джобс
- хранение
- Основные
- Языки
- УЧИТЬСЯ
- изучение
- линия
- Linux
- локальным
- обучение с помощью машины
- управление
- Microsoft
- модель
- сеть
- сеть
- Доступ к сети
- ноутбуки
- Предложения
- открытый
- Другое
- Пароль
- сборах
- политика
- Популярное
- Портал
- Блог
- мощностью
- Основной
- частная
- Секретный ключ
- Профиль
- Программирование
- языки программирования
- доказательство
- доказательство концепции
- для защиты
- защиту
- обеспечивать
- приводит
- полномочие
- что такое варган?
- Питон
- ассортимент
- переориентировать
- Требования
- исследованиям
- ресурс
- Полезные ресурсы
- ответ
- Run
- sagemaker
- безопасность
- Услуги
- выступающей
- набор
- аналогичный
- просто
- Software
- разработка программного обеспечения
- Решения
- Начало
- заявление
- диск
- Поддержанный
- Поддержка
- Швейцария
- система
- цель
- тестXNUMX
- Тестирование
- Через
- время
- знак
- трафик
- Обучение
- ui
- пользователей
- ценностное
- Виртуальный
- Web
- веб-браузер
- веб-сервисы
- окна
- в
- без
- рабочий
- Трудовые ресурсы
- работает
- лет