White paper de segurança do Azure Synapse Analytics: Controle de acesso
Nota
Este artigo faz parte da série de artigos do white paper de segurança do Azure Synapse Analytics. Para obter uma visão geral da série, consulte o white paper de segurança do Azure Synapse Analytics.
Dependendo de como os dados foram modelados e armazenados, a governança de dados e o controle de acesso podem exigir que desenvolvedores e administradores de segurança usem abordagens diferentes, ou combinação de técnicas, para implementar uma base de segurança robusta.
O Azure Synapse dá suporte a uma ampla gama de recursos para controlar quem pode acessar quais dados. Esses recursos são desenvolvidos com base em um conjunto de recursos avançados de controle de acesso, incluindo:
- Segurança no nível do objeto
- Segurança ao nível da linha
- Segurança ao nível da coluna
- Máscara de dados dinâmica
- Controle de acesso baseado em função Synapse
Segurança ao nível do objeto
Cada objeto em um pool SQL dedicado tem permissões associadas que podem ser concedidas a uma entidade de segurança. No contexto de usuários e contas de serviço, é assim que tabelas individuais, exibições, procedimentos armazenados e funções são protegidos. Permissões de objeto, como SELECT, podem ser concedidas a contas de usuário (logons SQL, usuários ou grupos do Microsoft Entra) e funções de banco de dados, o que fornece flexibilidade para administradores de banco de dados. Além disso, as permissões concedidas em tabelas e exibições podem ser combinadas com outros mecanismos de controle de acesso (descritos abaixo), como segurança em nível de coluna, segurança em nível de linha e mascaramento dinâmico de dados.
No Azure Synapse, todas as permissões são concedidas a usuários e funções no nível de banco de dados. Além disso, qualquer usuário que tenha recebido a função RBAC interna do Synapse Administrator no nível do espaço de trabalho recebe automaticamente acesso total a todos os pools SQL dedicados.
Além de proteger tabelas SQL no Azure Synapse, o pool SQL dedicado (anteriormente SQL DW), o pool SQL sem servidor e as tabelas Spark também podem ser protegidos. Por padrão, os usuários atribuídos à função de Colaborador de Dados de Blob de Armazenamento de data lakes conectados ao espaço de trabalho têm permissões de LEITURA, GRAVAÇÃO e EXECUÇÃO em todas as tabelas criadas pelo Spark quando os usuários executam código interativamente no bloco de anotações. Chama-se Microsoft Entra pass-through e aplica-se a todos os data lakes ligados à área de trabalho. No entanto, se o mesmo usuário executar o mesmo bloco de anotações por meio de um pipeline, o espaço de trabalho Managed Service Identity (MSI) será usado para autenticação. Portanto, para que o pipeline execute com êxito o MSI do espaço de trabalho, ele também deve pertencer à função de Colaborador de Dados de Blob de Armazenamento do data lake acessado.
Segurança ao nível da linha
A segurança em nível de linha permite que os administradores de segurança estabeleçam e controlem o acesso refinado a linhas de tabela específicas com base no perfil de um usuário (ou um processo) executando uma consulta. As características do perfil ou do usuário podem se referir à associação ao grupo ou ao contexto de execução. A segurança em nível de linha ajuda a impedir o acesso não autorizado quando os usuários consultam dados das mesmas tabelas, mas precisam ver subconjuntos de dados diferentes.
Nota
A segurança em nível de linha é suportada no Azure Synapse e no pool SQL dedicado (anteriormente SQL DW), mas não é suportada para o pool Apache Spark e o pool SQL sem servidor.
Segurança ao nível da coluna
A segurança em nível de coluna permite que os administradores de segurança definam permissões que limitam quem pode acessar colunas confidenciais em tabelas. Ele é definido no nível do banco de dados e pode ser implementado sem a necessidade de alterar o design do modelo de dados ou da camada de aplicativo.
Nota
A segurança em nível de coluna é suportada no Azure Synapse, exibições de pool SQL sem servidor e pool SQL dedicado (anteriormente SQL DW), mas não é suportada para tabelas externas de pool SQL sem servidor e pool Apache Spark. No caso de um pool SQL sem servidor, a solução alternativa de tabelas externas pode ser aplicada criando um modo de exibição sobre uma tabela externa.
Máscara de dados dinâmica
O mascaramento dinâmico de dados permite que os administradores de segurança restrinjam a exposição de dados confidenciais mascarando-os na leitura para usuários sem privilégios. Ele ajuda a impedir o acesso não autorizado a dados confidenciais, permitindo que os administradores determinem como os dados são exibidos no momento da consulta. Com base na identidade do usuário autenticado e sua atribuição de grupo no pool SQL, uma consulta retorna dados mascarados ou desmascarados. O mascaramento é sempre aplicado independentemente de os dados serem acessados diretamente de uma tabela ou usando um modo de exibição ou procedimento armazenado.
Nota
O mascaramento de dados dinâmicos é suportado no Azure Synapse e no pool SQL dedicado (anteriormente SQL DW), mas não é suportado para o pool Apache Spark e o pool SQL sem servidor.
Controle de acesso baseado em função Synapse
O Azure Synapse também inclui funções de controle de acesso baseado em função (RBAC) do Synapse para gerenciar diferentes aspetos do Synapse Studio. Aproveite essas funções internas para atribuir permissões a usuários, grupos ou outras entidades de segurança para gerenciar quem pode:
- Publique artefatos de código e liste ou acesse artefatos de código publicados.
- Execute código em pools Apache Spark e tempos de execução de integração.
- Acesse serviços vinculados (dados) protegidos por credenciais.
- Monitore ou cancele execuções de trabalho, revise logs de saída e execução de tarefas.
Próximos passos
No próximo artigo desta série de white papers, saiba mais sobre autenticação.