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
- Saiba como criar um grupo de segurança neste artigo: Criar um grupo básico e adicionar membros usando o Microsoft Entra ID.
- Saiba como adicionar um grupo de segurança de outro grupo de segurança em Adicionar ou remover um grupo de outro grupo usando o Microsoft Entra ID.
- Ao criar um grupo de segurança, certifique-se de que o Tipo de Grupo seja Segurança. Não há suporte para grupos do Microsoft 365 para o Azure SQL.
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
. Ostorage1
é 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 decontainer1
.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
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 armazenamentoEscolha
container1
para o contêiner que está sendo usado como "filesystem".Abra
workspace1
no Synapse StudioEm 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
- Atribuir a função de Administrador do Synapse a
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 seguidacontainer1
.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.
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
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:
Para conceder aos usuários acesso ao pool de SQL sem servidor, 'Interno' e aos bancos de dados.
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.
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
.Para conceder acesso ao pool de SQL sem servidor, 'Interno', os scripts podem ser executados por qualquer membro do grupo
workspace1_SQLAdmins
ou do grupoworkspace1_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:
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;
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];
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:
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
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.
- Você pode se conectar ao seu workspace de redes públicas com e sem uma rede virtual gerenciada. Para obter mais informações, consulte Configurações de conectividade.
- O acesso de redes públicas pode ser controlado habilitando o recurso de acesso à rede pública ou o firewall do workspace.
- Como alternativa, você pode se conectar ao seu workspace usando um ponto de extremidade privado gerenciado e um link privado. Os workspaces do Azure Synapse sem a Rede Virtual Gerenciada pelo Azure Synapse Analytics não têm a capacidade de se conectar por meio de pontos de extremidade privados gerenciados.
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.