Usar identidades gerenciadas para o acesso a Banco de Dados SQL do Azure ou Azure Synapse Analytics em um trabalho do Azure Stream Analytics

Azure Stream Analytics dá suporte à autenticação de identidade Managed Identity para coletores de saída Banco de Dados SQL do Azure e Azure Synapse Analytics. As identidades gerenciadas eliminam as limitações dos métodos de autenticação baseados no usuário, como a necessidade de autenticação 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 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. Este artigo mostra como habilitar a Identidade Gerenciada para um Banco de Dados SQL do Azure ou uma saída do Azure Synapse Analytics de um trabalho do Stream Analytics por meio do portal do Azure.

Visão geral

Este artigo mostra as etapas necessárias para conectar sua tarefa do Stream Analytics ao banco de dados SQL do Azure ou à piscina de SQL do Azure Synapse Analytics usando o modo de autenticação de Identidade Gerenciada.

  • Primeiro, você cria uma identidade gerenciada atribuída pelo sistema para seu trabalho do Stream Analytics. Essa é a identidade do seu trabalho em Microsoft Entra ID.

  • Adicione um administrador Active Directory ao seu SQL Server ou ao Workspace do Synapse, que habilita a autenticação Microsoft Entra ID (Identidade Gerenciada) para esse recurso.

  • Em seguida, crie um usuário independente que represente a identidade do trabalho do Stream Analytics no banco de dados. Sempre que o trabalho do Stream Analytics interage com o banco de dados SQL ou o recurso do BD SQL do Synapse, essa é a identidade à qual ele se referirá para verificar quais permissões seu trabalho do Stream Analytics tem.

  • Conceda permissões ao job do Stream Analytics para acessar seu Banco de Dados SQL ou os pools SQL do Synapse.

  • Por fim, adicione seu Banco de Dados SQL do Azure/Azure Synapse Analytics como saída no trabalho do Stream Analytics.

Pré-requisitos

Para usar esse recurso, você precisa de:

  • Uma tarefa de Azure Stream Analytics.

  • Um recurso de Banco de Dados SQL do Azure.

Criar uma identidade gerenciada

Primeiro, crie uma identidade gerenciada para seu trabalho de Azure Stream Analytics.

  1. No portal Azure, abra o trabalho Azure Stream Analytics.

  2. 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.

    Selecionar identidade gerenciada atribuída pelo sistema

    Microsoft Entra ID cria um principal de serviço para a identidade da tarefa do Stream Analytics. Azure gerencia o ciclo de vida da identidade recém-criada. Quando você exclui o trabalho do Stream Analytics, o Azure exclui automaticamente a identidade associada, ou seja, a entidade de serviço.

  3. Você também pode alternar para identidades gerenciadas atribuídas pelo usuário.

  4. Quando você salva a configuração, a ID do Objeto (OID) do principal do serviço aparece como a ID do Principal, conforme mostrado na seção a seguir:

    ID do objeto mostrado como ID Principal

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

Selecionar um administrador Active Directory

Depois de criar uma identidade gerenciada, selecione um administrador Active Directory.

  1. Acesse o recurso do Banco de Dados SQL do Azure ou do Pool de SQL do Azure Synapse Analytics. Selecione o workspace do SQL Server ou do Synapse no qual o recurso está. Você pode encontrar o link para esses recursos na página de visão geral do recurso ao lado do nome do servidor ou do nome do workspace.

  2. Selecione Active Directory Admin ou SQL Active Directory Admin em Configurações, para SQL Server e Synapse Workspace, respectivamente. Em seguida, selecione Definir administrador.

    página de administração do Active Directory

  3. Na página Active Directory administrador, pesquise um usuário ou grupo para ser administrador do SQL Server e selecione Select. Esse usuário pode criar o Usuário de Banco de Dados Independente na próxima seção.

    Adicionar administrador do Active Directory

    A página de administração do Active Directory mostra todos os membros e grupos do seu Active Directory. Usuários ou grupos desabilitados não podem ser selecionados, pois não são suportados como administradores do Microsoft Entra. Consulte a lista de administradores com suporte na seção Microsoft Entra recursos e limitações da seção Usar autenticação Microsoft Entra para autenticação com o Banco de Dados SQL ou Azure Synapse.

  4. Selecione Salvar na página do administrador do Active Directory. O processo de alteração do administrador leva alguns minutos.

Criar um usuário de banco de dados independente

Em seguida, crie um usuário de banco de dados independente em seu banco de dados SQL do Azure ou Azure Synapse mapeado para a identidade Microsoft Entra. O usuário do banco de dados contido não tem um login para o banco de dados primário, mas é mapeado para uma identidade no diretório associado ao banco de dados. A identidade Microsoft Entra pode ser uma conta de usuário individual ou um grupo. Nesse caso, você deseja criar um usuário de banco de dados independente para seu trabalho do Stream Analytics.

Para obter mais informações, confira Autenticação universal com o Banco de Dados SQL e o Azure Synapse Analytics (suporte do SSMS para MFA).

  1. Conecte-se ao banco de dados SQL do Azure ou Azure Synapse usando SQL Server Management Studio. O User name é um usuário Microsoft Entra com a permissão ALTER ANY USER. O administrador definido no SQL Server é um exemplo. Use o Microsoft Entra ID – Universal com autenticação MFA.

    Conectar para SQL Server

    O nome do servidor <SQL Server name>.database.windows.net pode ser diferente em regiões diferentes. Por exemplo, a região da China deve usar <SQL Server name>.database.chinacloudapi.cn.

    Você pode especificar um banco de dados SQL do Azure ou Azure Synapse específico acessando Options > Connection Properties > Connect to Database.

    Propriedades de conexão do SQL Server

  2. Ao se conectar pela primeira vez, você pode encontrar a seguinte janela:

    Nova janela de regra de firewall

    1. Em caso afirmativo, vá para o recurso SQL Server ou workspace do Synapse no portal do Azure. Na seção Segurança , abra a página Firewalls e rede virtual ou Firewalls .
    2. Adicione uma nova regra com qualquer nome de regra.
    3. Use o endereço IP De da janela Nova Regra de Firewall para o IP inicial.
    4. Use o endereço IP Destino da janela Nova Regra de Firewall para IP de destino.
    5. Selecione Save e tente se conectar de SQL Server Management Studio novamente.
  3. Após se conectar, crie o usuário contido do banco de dados. O comando SQL a seguir cria um usuário de banco de dados independente que tem o mesmo nome do trabalho do Stream Analytics. Certifique-se de incluir os colchetes ao redor do ASA_JOB_NAME. Use a sintaxe T-SQL a seguir e execute a consulta.

    CREATE USER [ASA_JOB_NAME] FROM EXTERNAL PROVIDER;
    

    Para verificar se você adicionou o usuário de banco de dados contido corretamente, execute o seguinte comando no SSMS no banco de dados relevante e verifique se o ASA_JOB_NAME está na coluna "name".

    SELECT * FROM <SQL_DB_NAME>.sys.database_principals
    WHERE type_desc = 'EXTERNAL_USER'
    
  4. Para o Microsoft Entra ID verificar se o job do Stream Analytics tem acesso ao Banco de Dados SQL, você precisa conceder permissão ao Microsoft Entra para se comunicar com o banco de dados. Para fazer isso, acesse novamente a página Firewalls e rede virtual ou Firewalls no portal do Azure e habilite Permitir que serviços e recursos do Azure acessem este servidor ou workspace.

    Firewall e rede virtual

Conceder permissões para tarefas no Stream Analytics

Depois de criar um usuário de banco de dados contido e conceder acesso aos serviços Azure no portal, conforme descrito na seção anterior, seu trabalho do Stream Analytics tem permissão da Identidade Gerenciada para CONNECT ao recurso de banco de dados SQL do Azure usando a Identidade Gerenciada. Conceda as permissões SELECT e INSERT para o trabalho do Stream Analytics, pois o trabalho precisa dessas permissões posteriormente no fluxo de trabalho do Stream Analytics. A permissão SELECT permite que o trabalho teste sua conexão com a tabela no banco de dados SQL do Azure. A permissão INSERT permite testar consultas de ponta a ponta do Stream Analytics depois de configurar uma entrada e a saída do banco de dados SQL do Azure.

Você pode conceder essas permissões ao trabalho do Stream Analytics usando SQL Server Management Studio. Para obter mais informações, consulte a referência GRANT (Transact-SQL) .

Para conceder permissão a apenas uma determinada tabela ou objeto no banco de dados, use a sintaxe T-SQL a seguir e execute a consulta.

GRANT CONNECT TO ASA_JOB_NAME;
GRANT SELECT, INSERT ON OBJECT::TABLE_NAME TO ASA_JOB_NAME;

Como alternativa, você pode clicar com o botão direito do mouse em seu banco de dados SQL do Azure ou Azure Synapse no SQL Server Management Studio e selecionar Properties > Permissions. No menu de permissões, você pode ver o trabalho do Stream Analytics que você adicionou anteriormente e pode conceder ou negar permissões manualmente conforme achar adequado.

Para examinar todas as permissões que você adicionou ao usuário ASA_JOB_NAME , execute o seguinte comando no SSMS no banco de dados pertencente:

SELECT dbprin.name, dbprin.type_desc, dbperm.permission_name, dbperm.state_desc, dbperm.class_desc, object_name(dbperm.major_id)
FROM sys.database_principals dbprin
LEFT JOIN sys.database_permissions dbperm
ON dbperm.grantee_principal_id = dbprin.principal_id
WHERE dbprin.name = '<ASA_JOB_NAME>'

Criar uma saída Banco de Dados SQL do Azure ou Azure Synapse

Note

Ao usar Instância Gerenciada de SQL (MI) como uma entrada de referência, você deve configurar um ponto de extremidade público em seu Instância Gerenciada de SQL. Você deve especificar o nome de domínio completo com a porta ao configurar a propriedade do banco de dados. Por exemplo: sampleserver.public.database.windows.net,3342.

Depois de configurar sua identidade gerenciada, você estará pronto para adicionar uma saída Banco de Dados SQL do Azure ou Azure Synapse ao trabalho do Stream Analytics.

Crie uma tabela no Banco de Dados SQL com o esquema de saída apropriado. Você precisa fornecer o nome desta tabela ao adicionar a saída do Banco de Dados SQL ao trabalho do Stream Analytics. Além disso, verifique se o trabalho tem permissões SELECT e INSERT para testar a conexão e executar consultas do Stream Analytics. Se você ainda não fez isso, consulte a seção Conceder permissões de trabalho do Stream Analytics .

  1. Volte para o trabalho do Stream Analytics e vá para a página Saídas em Topologia de Trabalho.

  2. Selecione Adicionar > Banco de Dados SQL. Na janela de propriedades de saída do coletor de saída do Banco de Dados SQL, selecione Identidade Gerenciada na lista suspensa do modo de Autenticação.

  3. Preencha o restante das propriedades. Para saber mais sobre como criar uma saída do Banco de Dados SQL, consulte Criar uma saída do Banco de Dados SQL com o Stream Analytics. Quando terminar, selecione Salvar.

  4. Depois de selecionar Salvar, um teste de conexão para o recurso é disparado automaticamente. Depois que esse teste for concluído com êxito, você configurou seu trabalho do Stream Analytics para se conectar ao Banco de Dados SQL do Azure ou ao Banco de Dados SQL do Synapse usando o modo de autenticação de identidade gerenciada.

Etapas adicionais para dados de referência do SQL

Quando você usa dados de referência do SQL, Azure Stream Analytics requer que você configure a conta de armazenamento do trabalho. O trabalho usa essa conta de armazenamento para armazenar conteúdo relacionado ao trabalho do Stream Analytics, como instantâneos de dados de referência do SQL.
Siga estas etapas para configurar uma conta de armazenamento associada:

  1. Na página do job de Stream Analytics, em Configurar no menu à esquerda, selecione Configurações da conta de armazenamento.

  2. Na página de trabalho do Stream Analytics, selecioneas configurações da conta de armazenamento em Configurar no menu à esquerda.

  3. Na página configurações da conta de armazenamento , selecione Adicionar conta de armazenamento.

  4. Siga as instruções para definir as configurações da conta de armazenamento.

    Captura de tela da página de configurações da conta de armazenamento de um trabalho do Stream Analytics.

Importante

  • Para autenticar usando um cadeia de conexão, você deve desabilitar as configurações de firewall da conta de armazenamento.
  • Para autenticar usando a Identidade Gerenciada, você deve adicionar seu trabalho do Stream Analytics à lista de controle de acesso da conta de armazenamento para a função Colaborador de Dados do Blob de Armazenamento e a função Colaborador de Dados da Tabela de Armazenamento. Se você não conceder acesso ao trabalho, o trabalho não poderá executar nenhuma operação. Para obter mais informações sobre como conceder acesso, consulte Use Azure RBAC para atribuir um acesso de identidade gerenciada a outro recurso.

Etapas adicionais com a identidade gerenciada atribuída pelo usuário

Repita as etapas se você selecionou a identidade gerenciada atribuída pelo usuário para conectar o ASA ao Synapse:

  1. Crie um usuário de banco de dados independente. Substitua ASA_Job_Name por User-Assigned Managed Identity. Veja o exemplo a seguir.
    CREATE USER [User-Assigned Managed Identity] FROM EXTERNAL PROVIDER;
    
  2. Conceda permissões à User-Assigned Managed Identity. Substitua ASA_Job_Name por User-Assigned Managed Identity.

Para obter mais detalhes, consulte as seções anteriores.

Remover identidade gerenciada

Você exclui a identidade gerenciada que criou para um trabalho do Stream Analytics somente quando exclui o trabalho. Não é possível excluir a identidade gerenciada sem excluir o trabalho. Se você não quiser mais usar a identidade gerenciada, altere o método de autenticação para a saída. A identidade gerenciada continuará existindo até que você exclua o trabalho e ele será usado se você decidir usar a autenticação de identidade gerenciada novamente.

Próximas Etapas