Share via


Como configurar o controlo de acesso para a área de trabalho do Azure Synapse

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

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

O controle de acesso Synapse pode ser simplificado alinhando funções e personas em 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 começar 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 controlo de acessos

Nota

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 espaços de trabalho.

Para proteger um espaço de trabalho Sinapse, você configurará os seguintes itens:

  • Grupos de Segurança, para agrupar utilizadores com requisitos de acesso semelhantes.
  • Funções do Azure, para controlar quem pode criar e gerir conjuntos de SQL, conjuntos do Apache Spark e runtimes de integração e aceder ao armazenamento do ADLS Gen2.
  • Funções do Synapse, para controlar o acesso a artefactos de código publicados e utilizar recursos de computação do Apache Spark e runtimes de integração.
  • Permissões do SQL, para controlar o acesso de plano administrativo e de dados a conjuntos de SQL.
  • Permissões do Git, para controlar quem pode acessar artefatos de código no controle do código-fonte se você configurar o suporte ao Git para espaços de trabalho.

Etapas para proteger um espaço de trabalho Synapse

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

Definição Nome padrão Descrição
Espaço de trabalho Sinapse workspace1 O nome que o espaço de trabalho do Azure Synapse terá.
ADLSGEN2 conta storage1 A conta ADLS para usar com seu espaço de trabalho.
Container (Contentor) container1 O contêiner em STG1 que o espaço de trabalho usará por padrão.
Locatário do Ative Directory contoso O nome do locatário do Ative Directory.

Etapa 1: configurar grupos de segurança

Nota

Durante a visualização, você foi incentivado a criar grupos de segurança e mapeá-los para as funções Azure Synapse Synapse SQL Administrator e Synapse Apache Spark Administrator. Com a introdução de novas funções e escopos Synapse RBAC mais refinados, agora você é incentivado a usar opções mais recentes para controlar o acesso ao seu espaço de trabalho. Eles oferecem maior flexibilidade de configuração e reconhecem que os desenvolvedores geralmente usam uma combinação de SQL e Spark para criar aplicativos de análise. Portanto, os desenvolvedores podem precisar de acesso a recursos individuais em vez de um espaço de trabalho inteiro. Saiba mais sobre o Synapse RBAC.

Crie os seguintes grupos de segurança para o seu espaço de trabalho:

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

Você atribuirá funções Synapse a esses grupos no escopo do espaço de trabalho em breve.

Crie também este grupo de segurança:

  • workspace1_SQLAdmins, grupo para usuários que precisam da autoridade de administração do SQL Ative Directory, dentro de pools SQL no espaço de trabalho.

O workspace1_SQLAdmins grupo para configurar permissões SQL quando você cria pools SQL.

Esses cinco grupos são suficientes para uma configuração básica. Mais tarde, você pode adicionar grupos de segurança para lidar com usuários que precisam de acesso mais especializado ou restringir o acesso apenas a recursos individuais.

Nota

Gorjeta

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 ADLS Gen2

Os espaços de trabalho Synapse usam contêineres de armazenamento padrão para:

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

Identifique as seguintes informações sobre seu armazenamento:

  • A conta ADLS Gen2 a ser usada no seu espaço de trabalho. Este documento chama-lhe storage1. storage1 é considerada a conta de armazenamento "principal" do seu espaço de trabalho.

  • O contêiner dentro storage1 do qual seu espaço de trabalho Synapse usará por padrão. Este documento chama-lhe container1.

  • Selecione Controlo de acesso (IAM) .

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

  • Atribua a seguinte função. Para obter os passos detalhados, veja o artigo Atribuir funções do Azure com o portal do Azure.

    Definição Valor
    Função Contribuidor de Dados de Blobs de Armazenamento
    Atribuir acesso a SERVICEPRINCIPAL
    Membros workspace1_SynapseAdministrators, workspace1_SynapseContributors e workspace1_SynapseComputeOperators

    Add role assignment page in Azure portal.

Etapa 3: Criar e configurar seu espaço de trabalho Synapse

No portal do Azure, crie um espaço de trabalho Synapse:

  • Selecione a sua subscrição

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

  • Nomeie o espaço de trabalho workspace1

  • Escolha storage1 a conta de armazenamento

  • Escolha container1 o contêiner que está sendo usado como o "sistema de arquivos".

  • Abra o WS1 no Synapse Studio

  • No Synapse Studio, navegue até Gerenciar>controle de acesso. No escopo do espaço de trabalho, atribua funções Synapse a grupos de segurança da seguinte maneira:

    • Atribua a função Synapse Administrator a workspace1_SynapseAdministrators
    • Atribua a função de Colaborador do Synapse a workspace1_SynapseContributors
    • Atribua a função Synapse Compute Operator a workspace1_SynapseComputeOperators

Etapa 4: Conceder ao espaço de trabalho acesso MSI ao contêiner de armazenamento padrão

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

  • Abra o portal do Azure

  • Localize a conta de armazenamento e, em seguidacontainer1, storage1.

  • Selecione Controlo de acesso (IAM) .

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

  • Atribua a seguinte função. Para obter os passos detalhados, veja o artigo Atribuir funções do Azure com o portal do Azure.

    Definição Valor
    Função Contribuidor de Dados de Blobs de Armazenamento
    Atribuir acesso a IDENTIDADE GERENCIADA
    Membros Nome da identidade gerenciada

    Nota

    O nome da identidade gerenciada também é o nome do espaço de trabalho.

    Add role assignment page in Azure portal.

Etapa 5: Conceder aos administradores do Synapse uma função de Colaborador do Azure para o espaço de trabalho

Para criar pools SQL, pools Apache Spark e tempos de execução de integração, os usuários precisam de uma função de Colaborador do Azure para o espaço de trabalho, no mínimo. 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 SQL, pools do Apache Spark e tempos de execução de integração, você precisa de uma função de Colaborador no nível do grupo de recursos.

  • Abra o portal do Azure

  • Localize o espaço de trabalho, workspace1

  • Selecione Controlo de acesso (IAM) .

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

  • Atribua a seguinte função. Para obter os passos detalhados, veja o artigo Atribuir funções do Azure com o portal do Azure.

    Definição Valor
    Função Contribuidor
    Atribuir acesso a SERVICEPRINCIPAL
    Membros workspace1_SynapseAdministrators

    Add role assignment page in Azure portal.

Etapa 6: Atribuir uma função de administrador do Ative Directory SQL

O criador do espaço de trabalho é atribuído automaticamente como administrador do SQL Ative Directory para o espaço de trabalho. Apenas um único usuário ou um grupo pode receber essa função. Nesta etapa, você atribui o administrador do Ative Directory SQL para o espaço de trabalho ao workspace1_SQLAdmins grupo de segurança. Isso dá ao grupo acesso de administrador altamente privilegiado a todos os pools SQL e bancos de dados no espaço de trabalho.

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

Nota

O passo 6 é opcional. Você pode optar por conceder ao workspace1_SQLAdmins grupo um papel menos privilegiado. Para atribuir db_owner ou outras funções SQL, você deve executar scripts em cada banco de dados SQL.

Etapa 7: Conceder acesso a pools SQL

Por padrão, o Synapse Administrator também recebe a função SQL para pools SQL db_owner sem servidor no espaço de trabalho.

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

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

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

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

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

Gorjeta

Você pode conceder acesso a todos os bancos de dados SQL executando as seguintes etapas para cada pool SQL. As permissões de escopo do Configure-Workspace da seção são uma exceção à regra e permitem que você atribua a um usuário uma função sysadmin no nível do espaço de trabalho.

Etapa 7a: Pool 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 SQL sem servidor, Built-in.

Nota

Nos exemplos de script, substitua o 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 login. Altere para o contexto do master banco de dados.

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

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

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

Configurar permissões com escopo de espaço de trabalho

Você pode conceder acesso total a todos os pools SQL sem servidor no espaço de trabalho. Execute o script neste exemplo no master banco de dados:

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

Etapa 7b: configurar pools SQL dedicados

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

  1. Crie um usuário no banco de dados executando os seguintes comandos. Selecione o banco de dados de destino 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 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 de db_owner. No entanto, db_owner permissão é necessária para que os usuários do Spark leiam e gravem diretamente do Spark em ou de um pool SQL.

Você pode executar consultas para confirmar se pools 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 controlo de acesso está agora concluída.

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

Passo 9: Segurança da rede

Como etapa final para proteger seu espaço de trabalho, você deve proteger o acesso à rede, usando o firewall do espaço de trabalho.

Passo 10: Conclusão

Seu espaço de trabalho agora está totalmente configurado e protegido.

Suporte a cenários mais avançados

Este guia concentrou-se na criação de um sistema básico de controle de acesso. Você pode oferecer 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 a Git para o espaço de trabalho para cenários de desenvolvimento mais avançados, incluindo CI/CD. Enquanto estiver no modo Git, as permissões do Git e o Synapse RBAC determinarão se um usuário pode confirmar alterações em sua ramificação de trabalho. A publicação no serviço ocorre apenas a partir da ramificação de colaboração. Considere a criação de um grupo de segurança para desenvolvedores que precisam desenvolver e depurar atualizações em uma ramificação de trabalho, mas não precisam publicar alterações no serviço ativo.

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

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

Desative 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 pools SQL. A autenticação local para todos os recursos dentro do espaço de trabalho pode ser desabilitada durante ou após a criação do espaço de trabalho. Para obter mais informações sobre a autenticação somente Microsoft Entra, consulte Desabilitando a autenticação local no Azure Synapse Analytics.

Próximos passos