Настройка Приватного канала Azure для аналитического хранилища Azure Cosmos DB
Область применения: Nosql Mongodb Гремлин
Из этой статьи вы узнаете, как настроить управляемые частные конечные точки для аналитического хранилища Azure Cosmos DB. Если вы используете транзакционное хранилище, перейдите к статье Частные конечные точки для транзакционного хранилища. С помощью управляемых частных конечных точек вы можете ограничить сетевой доступ к аналитическому хранилищу Azure Cosmos DB, разрешая доступ только из управляемой виртуальной сети, связанной с рабочей областью Azure Synapse. Управляемые частные конечные точки позволяют создать приватный канал к аналитическому хранилищу.
Примечание.
Если вы используете Частная зона DNS зоны для Azure Cosmos DB и хотите создать управляемую частную конечную точку Synapse в подресурс аналитического хранилища, необходимо сначала создать зону DNS для аналитического хранилища (privatelink.analytics.cosmos.azure.com
), связанную с виртуальной сетью Azure Cosmos DB.
Настройка частной конечной точки для аналитического хранилища
Настройка рабочей области Azure Synapse Analytics с управляемой виртуальной сетью и извлечением данных
Создайте рабочую область в Azure Synapse Analytics с защитой от кражи данных. Защита от кражи данных позволяет гарантировать, что злоумышленники не смогут копировать или передавать данные из ресурсов Azure в расположения за пределами организации.
Когда включена защита от кражи данных для рабочей области Azure Synapse Analytics, применяются следующие ограничения доступа:
Если вы используете Azure Spark для Azure Synapse Analytics, доступ разрешается только утвержденным управляемым частным конечным точкам аналитического хранилища Azure Cosmos DB.
Если вы используете бессерверные пулы SQL в Synapse, вы можете обращаться к любой учетной записи Azure Cosmos DB с помощью Azure Synapse Link. Но любые запросы на запись, которые создают внешние таблицы операцией SELECT (CETAS), разрешены только утвержденным частным конечным точкам управления в виртуальной сети рабочей области.
Примечание.
Конфигурацию управляемой виртуальной сети и защиты от кражи данных невозможно изменить после создания рабочей области.
Добавление частных конечных точек для аналитического хранилища Azure Cosmos DB
Войдите на портал Azure.
На портале Azure перейдите к рабочей области Synapse Analytics и откройте панель Обзор.
Запустите Synapse Studio, перейдя в область Начало работы и выбрав операцию Открыть в разделе Открыть Synapse Studio.
В Synapse Studio откройте вкладку Управление.
Перейдите к разделу Управляемые частные конечные точки и щелкните Создать.
Выберите тип >учетной записи Azure Cosmos DB (API для NoSQL).
Заполните форму New managed private endpoint (Новая управляемая частная конечная точка) следующими сведениями:
- Имя: имя управляемой частной конечной точки. Это имя невозможно изменить после создания.
- Описание: введите понятное описание для частной конечной точки.
- Подписка Azure: выберите учетную запись Azure Cosmos DB из списка учетных записей, доступных в ваших подписках Azure.
- Имя учетной записи Azure Cosmos DB: выберите существующую учетную запись Azure Cosmos DB с типом SQL или MongoDB.
- Целевой вложенный ресурс — выберите один из следующих вариантов: Аналитический: если вы хотите добавить частную конечную точку для аналитического хранилища Azure Cosmos DB. NoSQL (или MongoDB): если вы хотите добавить конечную точку OLTP или транзакционной учетной записи.
Примечание.
Вы можете добавить частные конечные точки хранилища транзакций и аналитического хранилища в одну учетную запись Azure Cosmos DB в рабочей области Azure Synapse Analytics. Если вы хотите выполнять только аналитические запросы, может потребоваться лишь сопоставить аналитическую частную конечную точку.
После создания выберите имя новой частной конечной точки и щелкните Manage approvals in Azure portal (Управление утверждениями на портале Azure).
Перейдите к своей учетной записи Azure Cosmos DB, выберите частную конечную точку и щелкните Утвердить.
Вернитесь к рабочей области Synapse Analytics и щелкните Обновить на панели Управляемые частные конечные точки. Убедитесь, что частная конечная точка находится в состоянии Утверждено.
Использование Apache Spark для Azure Synapse Analytics
Если вы создали рабочую область Azure Synapse с включенной защитой от кражи данных, то исходящий доступ из Synapse Spark к учетным записям Azure Cosmos DB будет заблокирован по умолчанию. Кроме того, если у Azure Cosmos DB уже есть частная конечная точка, Synapse Spark не сможет к ней обращаться.
Чтобы разрешить доступ к данным в Azure Cosmos DB, сделайте следующее:
Если вы используете Azure Synapse Link для запроса данных из Azure Cosmos DB, добавьте управляемую частную конечную точку с типом Аналитический для учетной записи Azure Cosmos DB.
Если вы используете пакетные или потоковые операции записи или чтения в хранилище транзакций, добавьте управляемую частную конечную точку SQL или MongoDB для учетной записи Azure Cosmos DB. Кроме того, нужно указать для параметра connectionMode значение Gateway, как показано в следующем фрагменте кода:
# Write a Spark DataFrame into an Azure Cosmos DB container # To select a preferred lis of regions in a multi-region account, add .option("spark.cosmos.preferredRegions", "<Region1>, <Region2>") YOURDATAFRAME.write\ .format("cosmos.oltp")\ .option("spark.synapse.linkedService", "<your-Cosmos-DB-linked-service-name>")\ .option("spark.cosmos.container","<your-Cosmos-DB-container-name>")\ .option("spark.cosmos.write.upsertEnabled", "true")\ .option("spark.cosmos.connection.mode", "Gateway")\ .mode('append')\ .save()
Использование бессерверного пула SQL в Synapse
Бессереверные пулы SQL в Synapse используют поддержку нескольких клиентов без развертывания в управляемой виртуальной сети. Если учетная запись Azure Cosmos DB имеет существующую частную конечную точку, бессерверный пул SQL Synapse не сможет получить доступ к такой учетной записи из-за контроля сетевой изоляции в учетной записи Azure Cosmos DB.
Чтобы настроить для этой учетной записи доступ в режиме сетевой изоляции из рабочей области Synapse, сделайте следующее:
Разрешите рабочей области Azure Synapse доступ к учетной записи Azure Cosmos DB, указав параметр
NetworkAclBypassResourceId
в учетной записи.PowerShell
Update-AzCosmosDBAccount -Name MyCosmosDBDatabaseAccount -ResourceGroupName MyResourceGroup -NetworkAclBypass AzureServices -NetworkAclBypassResourceId "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Synapse/workspaces/wsName"
Использование Azure CLI
az cosmosdb update --name MyCosmosDBDatabaseAccount --resource-group MyResourceGroup --network-acl-bypass AzureServices --network-acl-bypass-resource-ids "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Synapse/workspaces/wsName"
Примечание.
Учетная запись Azure Cosmos DB и рабочая область Azure Synapse Analytics должны находиться в одном клиенте Microsoft Entra.
Теперь вы можете обращаться к учетной записи из бессерверных пулов SQL и выполнять в ней запросы T-SQL через Azure Synapse Link. Однако, чтобы гарантировать сетевую изоляцию данных в аналитическом хранилище, необходимо добавить в эту учетную запись управляемую частную конечную точку с типом Аналитический. В противном случае будет возможен общий доступ к данным в этом аналитическом хранилище.
Внимание
Если вы используете Azure Synapse Link и вам нужна сетевая изоляция данных в аналитическом хранилище, необходимо сопоставить учетную запись Azure Cosmos DB с рабочей областью Synapse, настроив управляемую частную конечную точку с типом Аналитический.
Следующие шаги
- Ознакомьтесь с запросами к аналитическому хранилищу, выполняемыми с помощью Azure Synapse Spark 3.
- Ознакомьтесь с запросами к аналитическому хранилищу, выполняемыми с помощью Azure Synapse Spark 2.
- Ознакомьтесь с запросами к аналитическому хранилищу, выполняемыми с помощью бессерверных пулов SQL в Azure Synapse.