Узнайте, как использовать защиту от эксфильтрации Synapse, частные конечные точки и аутентификацию Azure AD для создания безопасного подключения.
1. Введение
Функции Azure — это популярный инструмент для создания REST API. Команды могут использовать API для предоставления доступа к своим приложениям, которые затем могут использоваться другими командами. Распространенным шаблоном является подключение конвейеров Synapse к функциям Azure, например, для выполнения небольших вычислений, предоставленных другими командами, создания метаданных или отправки уведомлений. В этом блоге аспекты безопасности при подключении Synapse к функциям Azure обсуждаются следующим образом.
- Synapse защита от эксфильтрации данных для предотвращения внутренних атак
- Частные конечные точки, чтобы ограничить доступ к Функциям Azure только для внутреннего использования.
- Аутентификация Azure ADс использованием удостоверения для доступа к Функциям Azure.
- Внесение в белый список управляемого удостоверения Synapse как единственного разрешенного удостоверения для доступа к Функциям Azure.
В этом сообщении блога и репозитории git securely-connect-synapse-azure-function
обсуждается безопасное подключение Synapse к Функциям Azure. См. также обзор ниже.
В оставшейся части этого блога развернут проект, в котором конвейер Synapse подключен к функции Azure. В следующей главе развернут проект
2. Разверните проект: безопасно подключите Synapse к функции Azure.
В этой главе выполняются следующие шаги:
- 2.0 Предпосылки
- 2.1 Развертывание функций Synapse и Azure
- 2.2 Настройка соединений с частными конечными точками
- 2.3 Настройка аутентификации Azure AD
- 2.4 Развертывание конвейера Synapse
2.0 Предпосылки
Для этого руководства необходимы следующие ресурсы:
- Аккаунт Azure
- Azure CLI
- Azure PowerShell (только для версии 2.3 требуется Powershell, команды CLI других пунктов можно легко изменить на bash)
Наконец, клонируйте приведенный ниже репозиторий git на свой локальный компьютер. Если у вас не установлен git, вы можете просто загрузить zip-файл с веб-страницы.
https://github.com/rebremer/securely-connect-synapse-to-azure-functions
2.1 Развертывание функций Synapse и Azure
В этой части рабочая область Synapse и функции Azure создаются со следующими свойствами:
- Рабочая область Synapse развернута с помощью управляемой виртуальной сети, которая позволяет команде создавать частные конечные точки для других служб PaaS в Azure (например, хранилище, SQL, а также функции Azure).
- Рабочая область Synapse развернута с включенной защитой от кражи данных. Это означает, что эти данные могут передаваться только через частные конечные точки, которые были предварительно утверждены (например, частные конечные точки к службам в том же арендаторе Azure AD, где развернут Synapse).
- Функция Azure создается на языке Python и развертывается в базовом SKU.
См. Scripts/1_deploy_resources.ps1
сценарий Azure CLI в этой части.
2.2 Настройка соединений с частными конечными точками
В этой части настраивается подключение по частной ссылке между рабочей областью Synapse и функцией Azure со следующими свойствами:
- Инициировать частную конечную точку из виртуальной сети, управляемой Synapse, в функцию Azure.
- Утвердить частную конечную точку в функции Azure. После утверждения частной конечной точки функция Azure больше не доступна в общедоступном Интернете. Интерфейс развертывания scm по-прежнему открыт для Интернета, можно также решить ограничить доступ к этому полному доменному имени, добавив эту ссылку, см. здесь
См. Scripts/2_Setup_private_endpoint_Synapse_FunctionApp.ps1
сценарий Azure PowerShell в этой части. После развертывания вы найдете утвержденную частную конечную точку в Synapse, см. ниже.
2.3 Настройка внесения в белый список аутентификации Azure AD Synapse Manged Identity
В этой части настраивается проверка подлинности между Synapse и функцией Azure со следующими свойствами:
- Проверка подлинности Azure AD настроена для функции Azure.
- Управляемое удостоверение Synapse занесено в белый список, поскольку только идентификатор объекта Azure AD может активировать функцию Azure.
См. Scripts/3_Setup_AzureAD_auth_Synapse_FunctionApp.ps1
сценарий Azure CLI в этой части. После развертывания вы найдете управляемое удостоверение Synapse в качестве разрешенной функции доступа пользователя, см. также ниже.
2.4 Развертывание конвейера Synapse
В этой части развертывается конвейер Synapse со следующими свойствами:
- Конвейер Synapse получает доступ к функции Azure с помощью веб-действия.
- В веб-активности для подключения функции используется частная конечная точка, поэтому вызов не блокируется защитой от эксфильтрации данных Synapse.
- В веб-действиях управляемое удостоверение, назначенное системой, используется для аутентификации в функции Azure.
См. Scripts/4_deploy_synapse_pipeline.ps1
сценарий Azure CLI в этой части. После развертывания URL-адрес функции Azure и идентификатор ресурса Azure AD заполнены правильно, см. также ниже.
3. Заключение
Функции Azure — это популярный инструмент для создания API-интерфейсов REST для предоставления служб как внутренним, так и внешним. Рабочая область Synapse — это пример, в котором можно использовать API-интерфейсы других команд. Инженеры данных могут использовать конвейеры Synapse для приема метаданных, отправки уведомлений и/или выполнения небольших вычислений, предоставляемых другими командами. В этом блоге аспекты безопасности при подключении Synapse к функциям обсуждаются следующим образом:
- Synapse защита от эксфильтрации данных для предотвращения внутренних атак
- Частные конечные точки, чтобы ограничить доступ к функциям Azure.
- Поставщик аутентификации Azure AD для ограничения управления учетными данными
- Управляемое удостоверение Synapse внесено в белый список для доступа к Функциям Azure.
См. также этот репозиторий git securely-connect-synapse-azure-function
и архитектуру ниже.