Configurar o Azure Private Link para o repositório analítico do Azure Cosmos DB
APLICA-SE A: NoSQL MongoDB Gremlin
Neste artigo, você aprenderá como configurar pontos de extremidade privados gerenciados para o repositório analítico do Azure Cosmos DB. Se você estiver usando o repositório transacional, consulte Pontos de extremidade privados para o artigo do repositório transacional. Usando pontos de extremidade privados gerenciados, você pode restringir o acesso à rede do seu repositório analítico do Azure Cosmos DB a uma Rede Virtual Gerenciada associada ao seu espaço de trabalho do Azure Synapse. Os endpoints privados gerenciados estabelecem um link privado para sua loja analítica.
Nota
Se você estiver usando Zonas DNS Privadas para o Azure Cosmos DB e desejar criar um ponto de extremidade privado gerenciado pelo Synapse para o subrecurso do repositório analítico, deverá primeiro criar uma zona DNS para o repositório analítico (privatelink.analytics.cosmos.azure.com
) vinculado à rede virtual do Azure Cosmos DB.
Habilitar um ponto de extremidade privado para o repositório analítico
Configurar o espaço de trabalho do Azure Synapse Analytics com uma rede virtual gerenciada e exfiltração de dados
Crie um espaço de trabalho no Azure Synapse Analytics com a exfiltração de dados habilitada. Com a proteção contra exfiltração de dados, você pode garantir que usuários mal-intencionados não possam copiar ou transferir dados de seus recursos do Azure para locais fora do escopo da sua organização.
As seguintes restrições de acesso são aplicáveis quando a proteção contra exfiltração de dados está ativada para um espaço de trabalho do Azure Synapse Analytics:
Se você estiver usando o Azure Spark for Azure Synapse Analytics, o acesso só será permitido aos pontos de extremidade privados gerenciados aprovados para o repositório analítico do Azure Cosmos DB.
Se você estiver usando pools SQL sem servidor Synapse, poderá consultar qualquer conta do Azure Cosmos DB usando o Azure Synapse Link. No entanto, as solicitações de gravação que criam tabelas externas como selecionar (CETAS) só são permitidas para o aprovado gerenciar pontos de extremidade privados na rede virtual do espaço de trabalho.
Nota
Não é possível alterar a rede virtual gerenciada e a configuração de exfiltração de dados após a criação do espaço de trabalho.
Adicionar um ponto de extremidade privado gerenciado para o repositório analítico do Azure Cosmos DB
Nota
Para executar algumas das etapas abaixo, você precisará alterar temporariamente a configuração de rede da conta do Azure Cosmos DB. Vá para a guia Rede no portal e clique na opção Permitir acesso do Portal do Azure. Após a configuração do seu ponto de extremidade privado, você pode reverter essa ação e desabilitar o acesso.
Inicie sessão no portal do Azure.
No portal do Azure, navegue até o espaço de trabalho do Synapse Analytics e abra o painel Visão geral .
Inicie o Synapse Studio navegando até o painel Introdução e selecione Abrir em Abrir Synapse Studio.
No Synapse Studio, abra a guia Gerenciar .
Navegue até Pontos de extremidade privados gerenciados e selecione Novo
Selecione o tipo >de conta do Azure Cosmos DB (API para NoSQL) Continuar.
Preencha o formulário Novo ponto de extremidade privado gerenciado com os seguintes detalhes:
- Nome - Nome do seu ponto de extremidade privado gerenciado. Este nome não pode ser atualizado após a sua criação.
- Descrição - Forneça uma descrição amigável para identificar seu ponto de extremidade privado.
- Assinatura do Azure - Selecione uma conta do Azure Cosmos DB na lista de contas disponíveis em suas assinaturas do Azure.
- Nome da conta do Azure Cosmos DB - Selecione uma conta existente do Azure Cosmos DB do tipo SQL ou MongoDB.
- Subrecurso de destino - Selecione uma das seguintes opções: Analítico: se você quiser adicionar o ponto de extremidade privado para o repositório analítico do Azure Cosmos DB. NoSQL (ou MongoDB): Se você quiser adicionar OLTP ou endpoint de conta transacional.
Nota
Você pode adicionar pontos de extremidade privados do repositório transacional e do repositório analítico à mesma conta do Azure Cosmos DB em um espaço de trabalho do Azure Synapse Analytics. Se você quiser apenas executar consultas analíticas, talvez queira mapear apenas o ponto de extremidade privado analítico.
Depois de criar, vá para o nome do ponto de extremidade privado e selecione Gerenciar aprovações no portal do Azure.
Navegue até sua conta do Azure Cosmos DB, selecione o ponto de extremidade privado e selecione Aprovar.
Navegue de volta para o espaço de trabalho do Synapse Analytics e clique em Atualizar no painel Pontos de extremidade privados gerenciados. Verifique se o ponto de extremidade privado está no estado Aprovado .
Usar o Apache Spark para o Azure Synapse Analytics
Se você criou um espaço de trabalho do Azure Synapse com a proteção contra exfiltração de dados ativada, o acesso de saída do Synapse Spark às contas do Azure Cosmos DB será bloqueado, por padrão. Além disso, se o Azure Cosmos DB já tiver um ponto de extremidade privado existente, o Synapse Spark será impedido de acessá-lo.
Para permitir o acesso aos dados do Azure Cosmos DB:
Se você estiver usando o Azure Synapse Link para consultar dados do Azure Cosmos DB, adicione um ponto de extremidade privado analítico gerenciado para a conta do Azure Cosmos DB.
Se você estiver usando gravações/leituras em lote e/ou streaming de gravações/leituras para o repositório transacional, adicione um ponto de extremidade privado SQL ou MongoDB gerenciado para a conta do Azure Cosmos DB. Além disso, você também deve definir connectionMode como Gateway, conforme mostrado no seguinte trecho de código:
# 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()
Usando pools SQL sem servidor Synapse
Os pools SQL sem servidor Synapse usam recursos multilocatários que não são implantados na rede virtual gerenciada. Se a conta do Azure Cosmos DB tiver um ponto de extremidade privado existente, o pool SQL sem servidor Synapse será bloqueado de acessar a conta, devido a verificações de isolamento de rede na conta do Azure Cosmos DB.
Para configurar o isolamento de rede para esta conta a partir de um espaço de trabalho Synapse:
Permita que o espaço de trabalho Synapse acesse a conta do Azure Cosmos DB especificando
NetworkAclBypassResourceId
a configuração na conta.Utilizar o PowerShell
Update-AzCosmosDBAccount -Name MyCosmosDBDatabaseAccount -ResourceGroupName MyResourceGroup -NetworkAclBypass AzureServices -NetworkAclBypassResourceId "/subscriptions/subId/resourceGroups/rgName/providers/Microsoft.Synapse/workspaces/wsName"
Utilizar a CLI do Azure
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"
Nota
A conta do Azure Cosmos DB e o espaço de trabalho do Azure Synapse Analytics devem estar sob o mesmo locatário do Microsoft Entra.
Agora você pode acessar a conta de pools SQL sem servidor, usando consultas T-SQL no Azure Synapse Link. No entanto, para garantir o isolamento de rede para os dados no repositório analítico, você deve adicionar um ponto de extremidade privado gerenciado analítico para essa conta. Caso contrário, os dados no repositório analítico não serão bloqueados do acesso público.
Importante
Se você estiver usando o Azure Synapse Link e precisar de isolamento de rede para seus dados no repositório analítico, deverá mapear a conta do Azure Cosmos DB no espaço de trabalho Synapse usando o ponto de extremidade privado gerenciado analítico.