Compartilhar via


Como configurar o controle de acesso ao workspace do Azure Synapse

Este artigo ensina como controlar o acesso a um workspace do Microsoft Azure Synapse. Usaremos uma combinação de funções do Azure, Azure Synapse funções, permissões do SQL e do Git para conseguir isso.

Neste guia, você vai configurar um workspace e um sistema de controle de acesso básico. Você pode usar essas informações em muitos tipos de projetos do Synapse. Você também encontrará opções avançadas para um controle mais refinado, caso você precise.

O controle de acesso do Synapse pode ser simplificado alinhando funções e personas na sua organização com grupos de segurança. Isso permite que você gerencie o acesso a grupos de segurança simplesmente adicionando e removendo usuários.

Antes de iniciar este passo a passo, leia a Visão geral do controle de acesso do Azure Synapse para se familiarizar com os mecanismos de controle de acesso usados pelo Synapse Analytics.

Mecanismos de controle de acesso

Observação

A abordagem neste guia é criar grupos de segurança. Ao atribuir funções a esses grupos de segurança, você só precisa gerenciar associações dentro desses grupos para controlar o acesso aos workspaces.

Para proteger um workspace do Synapse, você configurará os seguintes itens:

  • Grupos de segurança, para agrupar usuários com requisitos de acesso semelhantes.
  • Funções do Azure, para controlar quem pode criar e gerenciar pools de SQL, pools do Apache Spark e runtimes de integração, além de acessar o armazenamento do ADLS Gen2.
  • Funções do Azure Synapse, para controlar o acesso a artefatos de código publicados, o uso de recursos de computação do Apache Spark e os runtimes de integração.
  • Permissões de SQL, para controlar o acesso administrativo e de plano de dados a pools de SQL.
  • Permissões do Git, para controlar quem poderá acessar os artefatos de código de acesso no controle do código-fonte se você configurar o suporte do Git para os workspaces.

Etapas para proteger um workspace do Synapse

Este documento usa nomes padrão para simplificar as instruções. Substitua-os pelos nomes de sua escolha.

Configuração Nome padrão Descrição
Workspace do Synapse workspace1 O nome que o workspace do Azure Synapse terá.
Conta do ADLSGEN2 storage1 A conta do ADLS a ser usada com seu workspace.
Contêiner container1 O contêiner no storage1 que o workspace usará por padrão.
Locatário do Microsoft Entra ID contoso O nome do locatário do Microsoft Entra ID.
Entidade de serviço SERVICEPRINCIPAL Uma entidade de serviço no seu locatário do Microsoft Entra ID.

ETAPA 1: configurar grupos de segurança

Dica

Recomendamos que você use opções granulares para controlar o acesso ao seu workspace, concedendo aos desenvolvedores acesso a recursos individuais, em vez de acesso a um workspace inteiro. Saiba mais sobre o RBAC do Synapse.

Crie os seguintes grupos de segurança para seu workspace:

  • workspace1_SynapseAdministrators, para usuários que precisam ter controle completo sobre um workspace. Adicione-se a esse grupo de segurança, pelo menos inicialmente.
  • workspace1_SynapseContributors, para os desenvolvedores que precisam desenvolver, depurar e publicar código em um serviço.
  • workspace1_SynapseComputeOperators , para os usuários que precisam gerenciar e monitorar pools do Apache Spark e runtimes de integração.
  • workspace1_SynapseCredentialUsers, para usuários que precisam depurar e executar pipelines de orquestração usando as credenciais da MSI (identidade de serviço gerenciado) do workspace e cancelar execuções de pipeline.

Em breve, você atribuirá funções do Synapse a esses grupos no escopo do workspace.

Crie também este grupo de segurança:

  • workspace1_SQLAdmins, grupo para usuários que precisam de autoridade de administrador de SQL do Active Directory em pools de SQL no workspace.

O grupo workspace1_SQLAdmins para configurar as permissões do SQL ao criar pools de SQL

Esses cinco grupos são suficientes para uma configuração básica. Posteriormente, adicione grupos de segurança para lidar com os usuários que precisam de acesso mais especializado ou restringir o acesso apenas a recursos individuais.

Observação

Dica

Os usuários individuais do Synapse podem usar a ID do Microsoft Entra no portal do Azure para exibir suas associações de grupo. Isso permite que eles determinem quais funções foram concedidas.

ETAPA 2: preparar sua conta de armazenamento do ADLS Gen2

Os workspaces do Synapse usam contêineres de armazenamento padrão para:

  • Armazenamento de arquivos de dados de backup para tabelas do Spark
  • Logs de execução para trabalhos do Spark
  • Gerenciamento de bibliotecas que você escolheu instalar

Identifique as seguintes informações sobre seu armazenamento:

  • A conta do ADLS Gen2 a ser usada para seu workspace. Este documento a chama de storage1. O storage1 é considerado a conta de armazenamento "primária" para seu workspace.

  • O contêiner dentro de storage1 que o workspace do Synapse usará por padrão. Este documento a chama de container1.

  • Selecione IAM (Controle de acesso) .

  • Selecione Adicionar>Adicionar atribuição de função para abrir a página Adicionar atribuição de função.

  • Atribua a função a seguir. Para ver as etapas detalhadas, confira Atribuir funções do Azure usando o portal do Azure.

    Configuração Valor
    Função Colaborador de dados de blob de armazenamento
    Atribuir acesso a SERVICEPRINCIPAL
    Membros workspace1_SynapseAdministrators, workspace1_SynapseContributors e workspace1_SynapseComputeOperators

    Página Adicionar atribuição de função no portal do Azure.

ETAPA 3: criar e configurar o workspace do Synapse

No portal do Azure, crie um workspace do Synapse:

  • Selecionar sua assinatura

  • Selecione ou crie um grupo de recursos para o qual você tem uma função Proprietário do Azure.

  • Dê ao workspace o nome workspace1

  • Escolha storage1 para a Conta de armazenamento

  • Escolha container1 para o contêiner que está sendo usado como "filesystem".

  • Abra workspace1 no Synapse Studio

  • Em Synapse Studio, navegue até Gerenciar>Controle de Acesso. No escopo do workspace, atribua funções do Synapse a grupos de segurança da seguinte maneira:

    • Atribuir a função de Administrador do Synapse a workspace1_SynapseAdministrators
    • Atribuir a função de Colaborador de Synapse a workspace1_SynapseContributors
    • Atribuir a função de Operador de Computação do Synapse a workspace1_SynapseComputeOperators

ETAPA 4: conceder o acesso de MSI do workspace ao contêiner de armazenamento padrão

Para executar pipelines e realizar tarefas do sistema, o Azure Synapse requer que a MSI (identidade do serviço gerenciado) tenha acesso container1 à conta ADLS Gen2 padrão, para o workspace. Para obter mais informações, consulte Identidade gerenciada do workspace do Azure Synapse.

  • Abrir o portal do Azure

  • Localize a conta de armazenamento, storage1 e, em seguida container1.

  • Selecione IAM (Controle de acesso) .

  • Para acessar a página Adicionar atribuição de função, selecione Adicionar>Adicionar atribuição de função.

  • Atribua a função a seguir. Para ver as etapas detalhadas, confira Atribuir funções do Azure usando o portal do Azure.

    Configuração Valor
    Função Colaborador de dados de blob de armazenamento
    Atribuir acesso a MANAGEDIDENTITY
    Membros nome da identidade gerenciada

    Observação

    O nome da identidade gerenciada também é o nome do workspace.

    Página Adicionar atribuição de função no portal do Azure.

ETAPA 5: conceder aos administradores do Synapse uma função de Colaborador do Azure para o workspace

Para criar pools de SQL, Pools do Apache Spark e runtimes de integração, no mínimo, os usuários precisam de uma função Colaborador do Azure no workspace. Uma função de Colaborador também permite que os usuários gerenciem recursos, incluindo pausa e dimensionamento. Para usar o portal do Azure ou o Synapse Studio para criar pools de SQL, Pools do Apache Spark e runtimes de integração, você precisa de uma função Colaborador no nível do grupo de recursos.

  • Abrir o portal do Azure

  • Localizar o workspace, workspace1

  • Selecione IAM (Controle de acesso) .

  • Para acessar a página Adicionar atribuição de função, selecione Adicionar>Adicionar atribuição de função.

  • Atribua a função a seguir. Para ver as etapas detalhadas, confira Atribuir funções do Azure usando o portal do Azure.

    Configuração Valor
    Função Colaborador (listado em “Funções de administrador com privilégios“)
    Atribuir acesso a SERVICEPRINCIPAL
    Membros workspace1_SynapseAdministrators

    Página Adicionar atribuição de função no portal do Azure.

ETAPA 6: atribuir uma função de administrador de SQL do Active Directory

O criador do workspace é atribuído automaticamente como Administrador de SQL do Active Directory para o workspace. Apenas um usuário ou um grupo pode receber essa função. Nesta etapa, atribua o Administrador de SQL do Active Directory para o workspace ao grupo de segurança workspace1_SQLAdmins. Isso dá ao grupo acesso de administrador altamente privilegiado a todos os pools e bancos de dados SQL no workspace.

  • Abrir o portal do Azure
  • Navegue até workspace1
  • Em Configurações, selecione ID do Microsoft Entra
  • Selecione Definir administrador e escolha workspace1_SQLAdmins

Observação

A Etapa 6 é opcional. Você pode optar por conceder ao grupo workspace1_SQLAdmins uma função com menos privilégios. Para atribuir db_owner ou outras funções SQL, você precisa executar scripts em cada banco de dados SQL.

ETAPA 7: conceder acesso a pools de SQL

O Administrador do Synapse também recebe, por padrão, a função db_owner de SQL para pools de SQL sem servidor no workspace.

O acesso aos pools de SQL para outros usuários é controlado por meio das permissões do SQL. A atribuição de permissões do SQL requer que os scripts de SQL sejam executados em cada banco de dados SQL pós-criação. Veja a seguir exemplos que exigem que você execute esses scripts:

  1. Para conceder aos usuários acesso ao pool de SQL sem servidor, 'Interno' e aos bancos de dados.

  2. Para conceder aos usuários acesso a bancos de dados de pool de SQL dedicados. Os scripts de SQL de exemplo estão incluídos posteriormente neste artigo.

  3. Para conceder acesso a um banco de dados do pool de SQL dedicado, os scripts podem ser executados pelo criador do workspace ou por qualquer membro do grupo workspace1_SynapseAdministrators.

  4. Para conceder acesso ao pool de SQL sem servidor, 'Interno', os scripts podem ser executados por qualquer membro do grupo workspace1_SQLAdmins ou do grupo workspace1_SynapseAdministrators.

Dica

Você pode conceder acesso a todos os bancos de dados SQL executando as etapas a seguir para cada pool de SQL. A seção Configurar permissões no escopo do workspace é uma exceção à regra e permite que você atribua a um usuário uma função sysadmin no nível do workspace.

Etapa 7a: pool de SQL sem servidor, Integrado

Você pode usar os exemplos de script nesta seção para dar aos usuários permissão para acessar um banco de dados individual ou todos os bancos de dados no pool de SQL sem servidor, Built-in.

Observação

Nos exemplos de script, substitua alias pelo alias do usuário ou grupo que está recebendo acesso. Substitua o domínio pelo domínio da empresa que você está usando.

Configurar permissões com escopo de banco de dados

Você pode conceder aos usuários acesso a um único banco de dados SQL sem servidor com as etapas descritas neste exemplo:

  1. Crie um logon. Altere-o para o contexto do banco de dados master.

    --In the master database
    CREATE LOGIN [alias@domain.com] FROM EXTERNAL PROVIDER;
    
  2. Crie um usuário no banco de dados. Altere o contexto para seu banco de dados.

    -- In your database
    CREATE USER alias FROM LOGIN [alias@domain.com];
    
  3. Adicione o usuário como membro da função especificada no banco de dados (nesse caso, a função db_owner).

    ALTER ROLE db_owner ADD member alias; -- Type USER name from step 2
    

Configurar permissões no escopo do workspace

É possível conceder acesso completo a todos os pools de SQL sem servidor no workspace. Execute o script neste exemplo no banco de dados master:

CREATE LOGIN [alias@domain.com] FROM EXTERNAL PROVIDER;
ALTER SERVER ROLE sysadmin ADD MEMBER [alias@domain.com];

Etapa 7b: configurar pools de SQL dedicados

Você pode conceder acesso a um banco de dados de pool SQL único e dedicado. Use estas etapas no editor de script de SQL do Azure Synapse:

  1. Crie um usuário no banco de dados executando os seguintes comandos. Selecione o banco de dados de destino no Conexão para lista suspensa:

    --Create user in the database
    CREATE USER [<alias@domain.com>] FROM EXTERNAL PROVIDER;
    -- For Service Principals you would need just the display name and @domain.com is not required
    
  2. Conceda ao usuário uma função para acessar o banco de dados:

    --Grant role to the user in the database
    EXEC sp_addrolemember 'db_owner', '<alias@domain.com>';
    

Importante

db_datareader e db_datawriter funções de banco de dados podem fornecer permissão de leitura/gravação quando você não quiser conceder permissões db_owner. No entanto, a permissão db_owner é necessária para que os usuários do Spark façam leituras e gravações diretamente do Spark de maneira bidirecional em ou de pool de SQL.

Você pode executar consultas para confirmar que pools de SQL sem servidor podem consultar contas de armazenamento depois de criar seus usuários.

ETAPA 8: adicionar usuários a grupos de segurança

A configuração inicial do seu sistema de controle de acesso agora está concluída.

Agora você pode adicionar e remover os usuários aos grupos de segurança que você configurou para gerenciar o acesso a eles. Você pode atribuir manualmente usuários às funções do Azure Synapse, mas isso define permissões de forma inconsistente. Em vez disso, apenas adicione usuários aos grupos de segurança ou remova-os de lá.

ETAPA 9: segurança de rede

Como etapa final para proteger seu workspace, você deve proteger o acesso à rede usando o firewall do workspace.

ETAPA 10: conclusão

Agora seu workspace está totalmente configurado e protegido.

Como dar suporte a cenários mais avançados

Este guia se concentrou na configuração de um sistema de controle de acesso básico. Você pode dar suporte a cenários mais avançados criando grupos de segurança adicionais e atribuindo a esses grupos funções mais granulares em escopos mais específicos. Considere os seguintes casos:

Habilite o suporte ao Git do workspace para cenários de desenvolvimento mais avançados, incluindo CI/CD. No modo Git, as permissões Git e o RBAC do Synapse determinarão se um usuário pode confirmar as alterações no branch de trabalho dele. A publicação no serviço só ocorre do branch de colaboração. Considere criar um grupo de segurança para desenvolvedores que precisam desenvolver e depurar atualizações em uma ramificação de trabalho, mas que não precisam publicar alterações no serviço ativo.

Restrinja o acesso do desenvolvedor a recursos específicos. Crie outros grupos de segurança adicionais mais refinados para os desenvolvedores que precisam de acesso apenas a recursos específicos. Atribua a esses grupos funções apropriadas do Azure Synapse que estejam no escopo de pools do Spark, runtimes de integração ou credenciais específicos.

Restrinja o acesso dos operadores a artefatos de código. Crie grupos de segurança para operadores que precisam monitorar o status operacional de recursos de computação do Synapse e ver logs, mas que não precisam de acesso ao código nem para publicar atualizações no serviço. Atribua a esses grupos a função de Operador de Computação com escopo para pools do Spark e runtimes de integração específicos.

Desabilitar a autenticação local. Ao permitir apenas a autenticação do Microsoft Entra, você pode gerenciar centralmente o acesso aos recursos do Azure Synapse, como os pools de SQL. A autenticação local para todos os recursos no workspace pode ser desabilitada durante ou após a criação do workspace. Para obter mais informações sobre a autenticação somente do Microsoft Entra, consulte Como desabilitar a autenticação local no Azure Synapse Analytics.