Usar as identidades gerenciadas para acessar o Azure Cosmos DB de um trabalho do Azure Stream Analytics
O Azure Stream Analytics dá suporte à autenticação de identidade gerenciada para saída do Azure Cosmos DB. As identidades gerenciadas eliminam as limitações dos métodos de autenticação baseados em usuário, como a necessidade de autenticar novamente por causa de alterações de senha ou expirações de token de usuário que ocorrem a cada 90 dias. Quando você remove a necessidade de autenticar manualmente, suas implantações do Stream Analytics podem ser totalmente automatizadas.
Uma identidade gerenciada é um aplicativo gerenciado registrado no Microsoft Entra ID que representa um determinado trabalho do Stream Analytics. O aplicativo gerenciado é usado para autenticar um recurso de destino. Para obter mais informações sobre as identidades gerenciadas para o Azure Stream Analytics, consulte Identidades gerenciadas para o Azure Stream Analytics.
Este artigo mostra como habilitar a identidade gerenciada atribuída pelo sistema para uma saída do Azure Cosmos DB de um trabalho do Stream Analytics por meio do portal do Azure. Antes de habilitar a identidade gerenciada atribuída ao sistema, primeiro você deve ter um trabalho do Stream Analytics e um recurso do Azure Cosmos DB.
Criar uma identidade gerenciada
Primeiro, você cria uma identidade gerenciada para seu trabalho do Azure Stream Analytics.
No portal do Azure, abra seu trabalho do Azure Stream Analytics.
No menu de navegação à esquerda, selecione Identidade Gerenciada localizada em Configurar. Em seguida, marque a caixa ao lado de Usar a Identidade Gerenciada atribuída ao sistema e selecione Salvar.
Uma entidade de serviço para a identidade de trabalho do Stream Analytics é criada no Microsoft Entra ID. O ciclo de vida da identidade que acaba de ser criada é gerenciado pelo Azure. Quando o trabalho do Stream Analytics é excluído, a identidade associada (ou seja, a entidade de serviço) é excluída automaticamente pelo Azure.
Ao salvar a configuração, a OID (ID do objeto) da entidade de serviço é listada como a ID da Entidade de Segurança conforme mostrado abaixo:
A entidade de serviço tem o mesmo nome que o trabalho do Stream Analytics. Por exemplo, se o nome do trabalho for
MyASAJob
, o nome da entidade de serviço também seráMyASAJob
.
Conceda as permissões de trabalho do Stream Analytics para acessar a conta do Azure Cosmos DB
Para que o trabalho do Stream Analytics acesse o Azure Cosmos DB usando a identidade gerenciada, a entidade de serviço que você criou deve ter permissões especiais para a conta do Azure Cosmos DB. Nesta etapa, você pode atribuir uma função à identidade gerenciada atribuída ao sistema do seu trabalho de análise de fluxo. O Azure Cosmos DB tem várias funções internas que você pode atribuir à identidade gerenciada. Para essa solução, você pode usar a seguinte função:
Função interna |
---|
Colaborador de dados internos do Cosmos DB |
Importante
O RBAC (controle de acesso baseado em função) interno do plano de dados do Azure Cosmos DB não é exposto pelo portal do Azure. Para atribuir a função colaborador de dados interna do Cosmos DB, você precisa conceder permissão por meio do Azure Powershell. Para obter mais informações sobre o controle de acesso baseado em função com o Microsoft Entra ID para sua conta do Azure Cosmos DB, veja a documentação Configurar o controle de acesso baseado em função com o Microsoft Entra ID para sua conta do Azure Cosmos DB.
O comando a seguir pode ser usado para autenticar o trabalho ASA com o Azure Cosmos DB. O $accountName
e $resourceGroupName
são para sua conta do Azure Cosmos DB, e $principalId
é o valor obtido na etapa anterior, na guia Identidade do trabalho ASA. Você precisa ter acesso de "Colaborador" à conta do Azure Cosmos DB para que esse comando funcione conforme o esperado.
New-AzCosmosDBSqlRoleAssignment -AccountName $accountName -ResourceGroupName $resourceGroupName -RoleDefinitionId '00000000-0000-0000-0000-000000000002' -Scope "/" -PrincipalId $principalId
Observação
Devido à replicação global ou à latência de cache, pode haver um atraso quando as permissões são revogadas ou concedidas. As alterações devem ser refletidas dentro de 10 minutos. Embora a conexão de teste possa ser aprovada inicialmente, os trabalhos podem falhar ao iniciar até que as permissões sejam totalmente propagadas.
Importante
Se a conta do CosmosDB não estiver configurada para aceitar conexões de Todas as redes, você deverá selecionar Aceitar conexões de dentro de datacenters públicos do Azure.
Adicionar o Azure Cosmos DB como uma saída
Agora que sua identidade gerenciada está configurada, você está pronto para adicionar o recurso do Azure Cosmos DB como saída para seu trabalho do Stream Analytics.
Vá para o trabalho do Stream Analytics e navegue até a página Saídas em Topologia do Trabalho.
Selecione Adicionar > Azure Cosmos DB. Na janela de propriedades de saída, pesquise e selecione a conta do Azure Cosmos DB e selecione Identidade Gerenciada: atribuída pelo sistema no menu suspenso Modo de autenticação.
Preencha o restante das propriedades e selecione Salvar.