Partilhar via


Usar identidades gerenciadas para acessar o Azure Cosmos DB a partir de um trabalho do Azure Stream Analytics

O Azure Stream Analytics dá suporte à autenticação de identidade gerenciada para a saída do Azure Cosmos DB. As identidades gerenciadas eliminam as limitações dos métodos de autenticação baseados no usuário, como a necessidade de autenticar novamente devido a alterações de senha ou expirações de token de usuário que ocorrem a cada 90 dias. Quando você remove a necessidade de autenticação manual, 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 em um recurso de destino. Para obter mais informações sobre 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 ao 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, você deve primeiro 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. 

  1. No portal do Azure, abra seu trabalho do Azure Stream Analytics. 

  2. No menu de navegação esquerdo, selecione Identidade gerenciada localizada em Configurar. Em seguida, marque a caixa ao lado de Usar identidade gerenciada atribuída pelo sistema e selecione Salvar.

    System assigned managed identity

  3. Uma entidade de serviço para a identidade do trabalho do Stream Analytics é criada no Microsoft Entra ID. O ciclo de vida da identidade recém-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. 

    Quando você salva a configuração, a ID do objeto (OID) da entidade de serviço é listada como a ID da entidade principal, conforme mostrado abaixo:

    Principal ID

    A entidade de serviço tem o mesmo nome que o trabalho do Stream Analytics. Por exemplo, se o nome do seu trabalho for MyASAJob, o nome da entidade de serviço também MyASAJobserá . 

Conceder permissões de trabalho do Stream Analytics para acessar a conta do Azure Cosmos DB

Para que o trabalho do Stream Analytics acesse seu Azure Cosmos DB usando a identidade gerenciada, a entidade de serviço criada deve ter permissões especiais para sua conta do Azure Cosmos DB. Nesta etapa, você pode atribuir uma função à identidade gerenciada atribuída ao sistema do trabalho de análise de fluxo. O Azure Cosmos DB tem várias funções internas que você pode atribuir à identidade gerenciada. Para esta solução, você usará a seguinte função:

Função incorporada
Colaborador de dados integrado 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 por meio do Portal do Azure. Para atribuir a função de Colaborador de Dados Interno do Cosmos DB, você deve conceder permissão por meio do Azure Powershell. Para obter mais informações sobre o controle de acesso baseado em função com a ID do Microsoft Entra para sua conta do Azure Cosmos DB, consulte Configurar o controle de acesso baseado em função com a ID do Microsoft Entra para sua documentação de conta do Azure Cosmos DB.

O comando a seguir pode ser usado para autenticar seu trabalho ASA com o Azure Cosmos DB. O $accountName e são para sua conta do Azure Cosmos DB e $resourceGroupName o é o $principalId valor obtido na etapa anterior, na guia Identidade do seu trabalho ASA. Você precisa ter acesso de "Colaborador" à sua conta do Azure Cosmos DB para que esse comando funcione corretamente.

New-AzCosmosDBSqlRoleAssignment -AccountName $accountName -ResourceGroupName $resourceGroupName -RoleDefinitionId '00000000-0000-0000-0000-000000000002' -Scope "/" -PrincipalId $principalId

Nota

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 quando são iniciados antes que as permissões se propaguem totalmente.

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 uma saída ao seu trabalho do Stream Analytics. 

  1. Vá para o trabalho do Stream Analytics e navegue até a página Saídas em Topologia do trabalho.

  2. Selecione Adicionar > Azure Cosmos DB. Na janela de propriedades de saída, pesquise e selecione sua conta do Azure Cosmos DB e selecione Identidade gerenciada: sistema atribuído no menu suspenso Modo de autenticação .

  3. Preencha o restante das propriedades e selecione Salvar.

Próximos passos