Интеграция учетных данных Azure AD в модули Kubeflow notebook

#azure #kubernetes #openid-connect #azure-aks #kubeflow

#azure #kubernetes #OpenID-подключение #azure-aks #kubeflow

Вопрос:

В настоящее время я настраиваю среду Kubeflow в Azure с помощью AKS. Все настроено и работает (пользователи могут входить в платформу kubeflow, используя учетные данные Azure AZ, и запускать модули блокнота в своем собственном пространстве имен). Я предполагаю, что эти учетные данные AD встроены где-то в процессе создания контейнера, и мне интересно, можно ли использовать эти учетные данные для других сервисов, интегрированных с AD?

Пример использования:

Пользователь работает в записной книжке Jupyter, запущенной с платформы Kubeflow. Пользователь хочет получить доступ к данным в большом двоичном объекте хранилища Azure. Вместо того, чтобы входить в Azure из сеанса notebook, в контейнере уже хранятся их учетные данные.

Это звучит разумно, но я не уверен, что это действительно можно сделать безопасным способом.

Ответ №1:

Предполагая, что вы следуете инструкциям в разделе Проверка подлинности с использованием OIDC в Azure: нет, это невозможно при использовании конфигурации по умолчанию.

Способ работы OIDC заключается в возврате токена с заданной аудиторией (с кем он должен использоваться) и грантов (что, по его словам, вы должны уметь делать). Токен, который выдается Kubeflow, действителен только для основной аудитории службы Kubeflow; другими словами, вы не можете использовать тот же токен и использовать его с API Azure. Это сделано специально и является одним из ключевых факторов безопасности OIDC. Предоставление Kubeflow разрешений на выдачу большего количества токенов (обычно с помощью разрешения user_impersonation) создает довольно серьезную проблему безопасности — теперь любой, кому удастся скомпрометировать этот секрет приложения, может получить мощные токены вместо токенов ограниченной области, как обычно.

Если ресурсы, к которым они должны получить доступ, не относятся к конкретным пользователям, о которых идет речь, aad-pod-identity можно использовать для предоставления токена доступа к модулям, которые запускают пользователи, вместо того, чтобы требовать от них повторного входа в систему.