Autorização para análise em escala de nuvem no Azure
Autorização é o ato de conceder a uma parte autenticada permissão para executar uma ação. O princípio fundamental de controle de acesso é dar aos usuários apenas o nível de acesso necessário para desempenhar suas funções e permitir apenas determinadas ações dentro de um escopo específico. A segurança baseada em função corresponde ao controle de acesso. Muitas organizações usam a segurança baseada em função para controlar o acesso com base em funções ou funções de trabalho definidas em vez de usuários individuais. Os usuários recebem uma ou mais funções de segurança e cada função recebe permissões autorizadas para executar tarefas específicas.
O Microsoft Entra ID é um provedor de identidade centralizado que concede autorização para acessar serviços de dados e armazenamento para cada usuário ou para cada aplicativo com base em uma identidade do Microsoft Entra.
Autorização de serviço Dados
O RBAC (controle de acesso baseado em função) do Azure e as ACLs (listas de controle de acesso) desempenham funções cruciais para gerenciar o acesso e garantir a segurança. O RBAC do Azure e as ACLs exigem que o usuário ou o aplicativo tenham uma identidade na ID do Microsoft Entra. Na análise em escala de nuvem, o RBAC é eficaz para bancos de dados e para o Azure Data Lake Storage. As ACLs são usadas principalmente no Data Lake Storage para fornecer controle de acesso refinado nos níveis de arquivo e diretório. As ACLs complementam o RBAC fornecendo permissões mais detalhadas dentro da hierarquia de armazenamento.
O RBAC do Azure fornece funções internas como Owner, Contributore Reader, mas você também pode criar funções personalizadas para necessidades específicas. As seguintes funções integradas são fundamentais para todos os tipos de recursos do Azure, incluindo serviços de dados do Azure:
Função | Descrição |
---|---|
Proprietário | Essa função tem acesso total ao recurso e pode gerenciar tudo sobre o recurso, incluindo o direito de conceder acesso a ele. |
Colaborador | Essa função pode gerenciar o recurso, mas não pode conceder acesso a ele. |
Leitor | Essa função pode exibir o recurso e as informações, exceto informações confidenciais, como chaves de acesso ou segredos, sobre o recurso. Eles não podem fazer nenhuma alteração no recurso. |
Observação
Alguns serviços têm funções RBAC específicas, como Contribuidor de dados do Storage Blob ou Colaborador da Data Factory, então você deve usar essas funções para esses serviços. RBAC é um modelo aditivo no qual adicionar atribuições de função é uma permissão ativa. O RBAC também dá suporte a atribuições de negação, que têm precedência sobre atribuições de função.
Dica
Ao planejar uma estratégia de controle de acesso, recomendamos que você conceda aos usuários apenas a quantidade de acesso necessária para executar seus trabalhos. Você também deve permitir apenas determinadas ações em um escopo específico.
Controle de acesso em bancos de dados do Azure
O RBAC em bancos de dados do Azure gira em torno de funções, escopos e permissões. O Azure fornece várias funções internas para gerenciamento de banco de dados. Uma dessas funções é de Colaborador do SQL Server, que permite o gerenciamento de servidores SQL e bancos de dados. Outra função é de Colaborador do Banco de Dados SQL, que permite o gerenciamento de bancos de dados SQL, mas não do próprio servidor. Além disso, você pode criar funções personalizadas que tenham permissões específicas para atender aos requisitos exclusivos.
Você pode atribuir funções em escopos diferentes, incluindo:
- No nível da assinatura, em que as funções se aplicam a todos os recursos dentro da assinatura.
- No nível do grupo de recursos, em que as funções se aplicam a todos os recursos dentro do grupo de recursos especificado.
- No nível do recurso, em que você pode atribuir funções diretamente a bancos de dados ou servidores individuais. Essa abordagem fornece controle preciso.
As permissões definem as ações que uma função pode executar, como o gerenciamento de configurações de leitura, gravação, exclusão ou segurança. Essas permissões são agrupadas em funções para simplificar o gerenciamento.
Em Banco de Dados SQL do Azure, você pode atribuir papéis a usuários, grupos ou aplicativos para controlar o acesso. Por exemplo, um administrador de banco de dados pode ser designado para a função Contribuidor do SQL Server para gerenciar o servidor e os bancos de dados. Funções como Colaborador de Banco de Dados SQL permitem que os usuários criem, atualizem e excluam bancos de dados, enquanto a função Gerenciador de Segurança SQL se concentra nas configurações de segurança.
No do Azure Cosmos DB, você pode atribuir funções para gerenciar o acesso a contas, bancos de dados e contêineres do Azure Cosmos DB. Funções integradas como Leitor de Conta Cosmos DB e Colaborador de Conta Cosmos DB fornecem vários níveis de acesso.
Em Banco de Dados do Azure para MySQL, Banco de Dados do Azure para PostgreSQLe Banco de Dados do Azure para MariaDB, você pode atribuir funções para gerenciar servidores de banco de dados e bancos de dados individuais. Você pode usar funções como Colaborador e Leitor para controlar o acesso.
Para obter mais informações, consulte funções internas do Azure para bancos de dados.
Controle de acesso no Data Lake Storage
O RBAC do Azure permite que você conceda acesso com granulação grosseira, como acesso de leitura ou gravação, a todos os dados da conta de armazenamento. As ACLs permitem que você conceda acesso refinado, como acesso de gravação a um diretório ou arquivo específico.
Em muitos cenários, você pode usar RBAC e ACLs juntos para fornecer controle de acesso abrangente no Data Lake Storage. Você pode usar o RBAC para gerenciar o acesso de alto nível aos dados, o que ajuda a garantir que somente usuários autorizados possam acessar o serviço. Em seguida, você pode aplicar ACLs na conta de armazenamento para controlar o acesso a arquivos e diretórios específicos, o que melhora a segurança.
O controle de acesso baseado em atributo do Azure baseia-se no RBAC do Azure adicionando condições de atribuição de função com base em atributos no contexto de ações específicas. Ele essencialmente permite que você refine as atribuições de RBAC adicionando condições. Por exemplo, você pode conceder acesso de leitura ou gravação a todos os objetos de dados em uma conta de armazenamento que tenham uma marca específica.
As funções a seguir permitem que uma entidade de segurança acesse dados em uma conta de armazenamento.
Função | Descrição |
---|---|
Proprietário de dados do blob de armazenamento | Essa função fornece acesso total aos contêineres de armazenamento de blobs e aos dados. Esse acesso permite que o principal de segurança defina o proprietário de um item e modifique as ACLs de todos os itens. |
Contribuidor de dados de blob de armazenamento | Essa função concede acesso de leitura, gravação e exclusão a contêineres de armazenamento de blobs e blobs. Esse acesso não permite que a entidade de segurança defina a propriedade de um item, mas pode modificar a ACL de itens que a entidade de segurança possui. |
Leitor de Dados do Blob de Armazenamento | Essa função pode ler e listar contêineres de armazenamento de blobs e blobs. |
Funções como Owner, Contributor, Readere Storage Account Contributor permitem que uma entidade de segurança gerencie uma conta de armazenamento, mas elas não fornecem acesso aos dados nessa conta. No entanto, essas funções, excluindo Reader, podem obter acesso às chaves de armazenamento, que podem ser usadas em várias ferramentas de cliente para acessar os dados. Para obter mais informações, veja Modelo de controle de acesso no Data Lake Storage.
Controle de acesso no Azure Databricks
O Azure Databricks fornece sistemas de controle de acesso para gerenciar o acesso no ambiente do Azure Databricks. Esses sistemas se concentram em objetos protegíveis e governança de dados. Os três principais sistemas de controle de acesso no Azure Databricks são:
- ACLs, que você pode usar para definir a permissão para acessar objetos do espaço de trabalho, como notebooks. Para obter mais informações, veja Visão geral do controle de acesso.
- Conta RBAC, que você pode usar para configurar a permissão para usar objetos em nível de conta, como entidades de serviço e grupos.
- Unity Catalog, que você pode usar para proteger e governar objetos de dados.
Além do controle de acesso em objetos, o Azure Databricks fornece funções internas na plataforma. Você pode atribuir funções a usuários, entidades de serviço e grupos. Para obter mais informações, veja Funções de administrador e direitos de espaço de trabalho.
Melhores práticas para autorização em análises em escala de nuvem
Este guia discute as práticas recomendadas para implementar o RBAC em ambientes de análise em escala de nuvem. Ele inclui princípios gerais de RBAC, controle de acesso a bancos de dados e práticas recomendadas de controle de acesso ao data lake para ajudar a garantir o gerenciamento de recursos seguro e eficiente.
Melhores práticas gerais do RBAC para análises em escala de nuvem
As práticas recomendadas a seguir podem ajudá-lo a começar a usar o RBAC:
Use funções RBAC para gerenciamento de serviços e operações e use funções específicas do serviço para acesso a dados e tarefas específicas da carga de trabalho. Use funções RBAC nos recursos do Azure para conceder permissão a entidades de segurança que precisam executar tarefas de gerenciamento de recursos e operações. Os princípios de segurança que precisam acessar dados no armazenamento não exigem uma função RBAC no recurso porque não precisam gerenciá-lo. Em vez disso, conceda permissão diretamente a objetos de dados. Por exemplo, conceda acesso de leitura a uma pasta no Data Lake Storage ou conceda permissões de usuário e tabela de banco de dados contido em um Banco de Dados SQL do Microsoft Azure.
Use funções RBAC integradas. Primeiro, use as funções de recurso internas do RBAC do Azure para gerenciar serviços e atribuir funções de operações para controlar o acesso. Crie e use funções personalizadas para recursos do Azure somente quando as funções internas não atenderem às suas necessidades específicas.
Use grupos para gerenciar o acesso. Atribua acesso a grupos do Microsoft Entra e gerencie associações de grupo para gerenciamento de acesso contínuo.
Considere os escopos de assinatura e grupo de recursos. Em ambientes de não produção, conceda acesso no escopo do grupo de recursos para separar as necessidades de acesso ao gerenciamento de serviços e operações em vez de conceder acesso a recursos individuais. Essa abordagem faz sentido porque, em ambientes de não produção, desenvolvedores e testadores precisam gerenciar recursos. Por exemplo, talvez seja necessário criar um pipeline de ingestão do Azure Data Factory ou um contêiner no Data Lake Storage.
No entanto, em ambientes de produção, você pode conceder acesso a recursos individuais para tarefas específicas da carga de trabalho, como suporte e operações do sistema de arquivos do data lake. Essa abordagem faz sentido em ambientes de produção porque os usuários só precisam usar recursos como exibir o status de um pipeline de ingestão agendado do Data Factory ou ler arquivos de dados no Data Lake Storage.
Não conceda acesso desnecessário no escopo da assinatura. O escopo da assinatura abrange todos os recursos dentro da assinatura.
Opte pelo acesso com privilégios mínimos. Selecione a função correta e única para o trabalho.
Melhores práticas de controle de acesso ao banco de dados
Implementar o RBAC eficaz é crucial para manter a segurança e a capacidade de gerenciamento em seu ambiente de análise. Esta seção fornece as práticas recomendadas para usar grupos do Microsoft Entra e funções internas e para evitar permissões diretas do usuário para ajudar a garantir um processo de gerenciamento de acesso simplificado e seguro.
Os ambientes de análise em escala de nuvem normalmente contêm vários tipos de soluções de armazenamento, incluindo PostgreSQL, MySQL, Banco de Dados SQL, Instância Gerenciada de SQL do Azure e Análise do Azure Synapse.
Use grupos do Microsoft Entra em vez de contas de usuário individuais. Recomendamos que você use grupos do Microsoft Entra para proteger objetos de banco de dados em vez de contas de usuário individuais do Microsoft Entra. Use grupos do Microsoft Entra para autenticar usuários e proteger objetos de banco de dados. Semelhante ao padrão do data lake, você pode usar a integração do seu aplicativo de dados para criar esses grupos.
Use funções internas para gerenciar o acesso. Crie funções personalizadas somente se precisar atender a requisitos específicos ou se as funções internas concederem muitas permissões.
Evite atribuir permissões a usuários individuais. Use funções, como funções de banco de dados ou de servidor, de forma consistente. As funções ajudam com relatórios e permissões de solução de problemas. O RBAC do Azure dá suporte apenas à atribuição de permissão por meio de funções.
Observação
Os aplicativos de dados podem armazenar produtos de dados confidenciais no Banco de Dados SQL, na Instância Gerenciada de SQL ou nos pools do Azure Synapse Analytics. Para obter mais informações, consulte Privacidade de dados para análise em escala de nuvem no Azure.
Práticas recomendadas de controle de acesso do Data Lake Storage
Em ambientes de dados modernos, o controle de acesso seguro e eficiente é primordial. O Data Lake Storage fornece mecanismos robustos para gerenciar o acesso por meio de ACLs. Esta seção descreve as práticas recomendadas para implementar o RBAC no Data Lake Storage e aplicar ACLs, grupos de segurança do Microsoft Entra e o princípio de privilégios mínimos para manter um ambiente de data lake mais seguro e gerenciável. Além disso, destaca a importância de alinhar ACLs com esquemas de particionamento de dados e usar o Catálogo do Unity para usuários do Azure Databricks para ajudar a garantir a segurança e a governança abrangentes.
Use ACLs para controle de acesso refinado. As ACLs desempenham um papel importante na definição do acesso em um nível granular. No Data Lake Storage, as ACLs trabalham com entidades de segurança para gerenciar o acesso refinado a arquivos e diretórios.
Aplique ACLs nos níveis de arquivo e pasta. Para controlar o acesso aos dados no data lake, recomendamos que você use ACLs no nível de arquivos e pastas. O Data Lake Storage também adota um modelo de ACL semelhante à interface de sistema operacional portátil (POSIX). POSIX é um grupo de padrões para sistemas operacionais. Um padrão define uma estrutura de permissão simples, mas poderosa, para acessar arquivos e pastas. O POSIX é amplamente usado para compartilhamentos de arquivos de rede e computadores Unix.
Use grupos de segurança do Microsoft Entra como o principal atribuído em uma entrada ACL. Em vez de atribuir diretamente usuários individuais ou entidades de serviço, use essa abordagem para adicionar e remover usuários ou entidades de serviço sem a necessidade de reaplicar ACLs a uma estrutura de diretório inteira. Basta adicionar ou remover usuários e entidades de serviço do grupo de segurança apropriado do Microsoft Entra.
Atribua acesso a grupos do Microsoft Entra e gerencie a associação de grupos para gerenciamento de acesso contínuo. Para obter mais informações, veja Modelo de controle de acesso no Data Lake Storage.
Aplique o princípio do menor privilégio às ACLs. Na maioria dos casos, os usuários devem ter permissão de leitura apenas para os arquivos e pastas necessários no data lake. Os usuários de dados não devem ter acesso ao contêiner da conta de armazenamento.
Alinhe ACLs com esquemas de particionamento de dados. As ACLs e o design de partição de dados devem ser alinhados para ajudar a garantir um controle eficaz de acesso a dados. Para saber mais, confira Particionamento no data lake.
Para usuários do Azure Databricks, controle exclusivamente o acesso a objetos de dados com o Catálogo do Unity. Conceder acesso direto ao nível de armazenamento para armazenamento em local externo no Data Lake Storage não honra nenhuma permissão concedida ou auditoria mantida pelo Unity Catalog. O acesso direto ignora a auditoria, a linhagem e outros recursos de segurança e monitoramento do Unity Catalog, incluindo controle de acesso e permissões. Portanto, você não deve conceder aos usuários do Azure Databricks acesso direto ao nível de armazenamento a tabelas e volumes gerenciados do Catálogo do Unity.