Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo ensina como controlar o acesso a um workspace do Microsoft Azure Synapse. Usaremos uma combinação de funções do Azure, funções do Azure Synapse, 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 guia, leia a visão geral do controle de acesso ao espaço de trabalho do Azure Synapse para se familiarizar com os mecanismos de controle utilizados pela 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 quem pode 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 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 | Description |
|---|---|---|
| espaço de trabalho 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 tenant do Microsoft Entra ID. |
| Entidade de Serviço | SERVICEPRINCIPAL |
Um service principal no seu locatário do Microsoft Entra ID. |
ETAPA 1: configurar grupos de segurança
Dica
Use opções granulares para controlar o acesso ao seu espaço de trabalho. Conceda aos desenvolvedores acesso a recursos individuais, em vez de um espaço de trabalho inteiro. Para mais informações sobre o Synapse RBAC, veja O que é o controle de acesso baseado em funções (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 para configurar as permissões do SQL workspace1_SQLAdmins 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 a outro grupo de segurança neste artigo: 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. Os grupos do Microsoft 365 não têm suporte no SQL do Azure.
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 lhes 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 subjacentes 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 chama isso de
storage1. Astorage1é considerada a conta de armazenamento "primária" para seu workspace.O contêiner dentro de
storage1que o workspace do Synapse usará por padrão. Este documento chama isso decontainer1.Selecione Controle de acesso (IAM).
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 SERVICEPRINCIPALMembros 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:
Selecione sua assinatura
Selecione ou crie um grupo de recursos para o qual você tem uma função Owner do Azure.
Dê ao workspace o nome
workspace1Escolha
storage1para a Conta de armazenamentoEscolha
container1para o contêiner que está sendo usado como "filesystem".Abra
workspace1no 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 Synapse Compute Operator 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 de serviço gerenciado) tenha acesso a container1 na conta ADLS Gen2 padrão do workspace. Para mais informações, veja Identidades gerenciadas para Azure Synapse Analytics.
Abrir o portal do Azure
Encontre a conta de armazenamento,
storage1, e, em seguida,container1.Selecione Controle de acesso (IAM).
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 do Blob de Armazenamento Atribuir acesso a IDENTIDADE GERENCIADA 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 pausar e escalar. 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
Localize o workspace,
workspace1Selecione Controle de acesso (IAM).
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 (incluído em "Funções de administrador privilegiadas") Atribuir acesso a SERVICEPRINCIPALMembros workspace1_SynapseAdministrators
Passo 6: Atribua uma função de Administrador SQL Microsoft Entra ID
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 grupo de segurança workspace1_SQLAdmins como o Administrador SQL do Active Directory do workspace. 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, à 'Built-in' e aos seus 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, 'Built-in', os scripts podem ser executados por qualquer membro do grupo
workspace1_SQLAdminsou 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, Interno
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 login. Altere 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 SQL do Azure Synapse:
Crie um usuário no banco de dados executando os seguintes comandos. Selecione o banco de dados alvo na lista suspensa Conectar a:
--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 requiredConceda ao usuário um perfil 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 de db_owner. No entanto, a permissão db_owner é necessária para que os usuários do Spark possam ler e gravar diretamente do Spark em ou a partir de um pool 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 usuários dos 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 passo final para proteger seu espaço de trabalho, proteja o acesso à rede usando o firewall do workspace.
- Você pode se conectar ao seu workspace a partir de redes públicas, com e sem uma rede virtual gerenciada. Para obter mais informações, consulte Azure Synapse Analytics configurações de conectividade.
- Controle o acesso a partir de redes públicas ativando o recurso de acesso à rede pública ou o firewall do workspace.
- Alternativamente, conecte-se ao seu espaço de trabalho usando um endpoint privado gerenciado e o Link Privado do Azure for Azure Synapse Analytics. Workspaces do Azure Synapse que não utilizam o Azure Synapse Analytics Managed Rede Virtual não conseguem se conectar por meio de endpoints privados gerenciados.
Passo 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 fazer commit das alterações no branch de trabalho dele. A publicação no serviço só ocorre a partir 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 com escopo restrito a pools do Spark, runtimes de integração ou credenciais específicos.
Impedir que os operadores acessem 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.