Настройка Приватного канала 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

  1. Войдите на портал Azure.

  2. На портале Azure перейдите к рабочей области Synapse Analytics и откройте панель Обзор.

  3. Запустите Synapse Studio, перейдя в область Начало работы и выбрав операцию Открыть в разделе Открыть Synapse Studio.

  4. В Synapse Studio откройте вкладку Управление.

  5. Перейдите к разделу Управляемые частные конечные точки и щелкните Создать.

    Create a new private endpoint for analytical store.

  6. Выберите тип >учетной записи Azure Cosmos DB (API для NoSQL).

    Select Azure Cosmos DB API for NoSQL to create a private endpoint.

  7. Заполните форму 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. Если вы хотите выполнять только аналитические запросы, может потребоваться лишь сопоставить аналитическую частную конечную точку.

    Choose analytical for the target subresource.

  8. После создания выберите имя новой частной конечной точки и щелкните Manage approvals in Azure portal (Управление утверждениями на портале Azure).

  9. Перейдите к своей учетной записи Azure Cosmos DB, выберите частную конечную точку и щелкните Утвердить.

  10. Вернитесь к рабочей области Synapse Analytics и щелкните Обновить на панели Управляемые частные конечные точки. Убедитесь, что частная конечная точка находится в состоянии Утверждено.

    Verify that the private endpoint is approved.

Использование 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, сделайте следующее:

  1. Разрешите рабочей области 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.

  2. Теперь вы можете обращаться к учетной записи из бессерверных пулов SQL и выполнять в ней запросы T-SQL через Azure Synapse Link. Однако, чтобы гарантировать сетевую изоляцию данных в аналитическом хранилище, необходимо добавить в эту учетную запись управляемую частную конечную точку с типом Аналитический. В противном случае будет возможен общий доступ к данным в этом аналитическом хранилище.

Важно!

Если вы используете Azure Synapse Link и вам нужна сетевая изоляция данных в аналитическом хранилище, необходимо сопоставить учетную запись Azure Cosmos DB с рабочей областью Synapse, настроив управляемую частную конечную точку с типом Аналитический.

Следующие шаги