Conhecido como o “substituto” do Active Directory, o Azure AD é a solução de identidade cloud-native da Microsoft. Essa ferramenta é muito mais do que um simples provedor de identidade. Nela temos capacidades de segurança, gestão de dispositivos, autenticação híbrida, federação de aplicações e muito mais.
Estamos tratando de uma ferramenta poderosíssima, não apenas dentro do escopo Azure mas também fora. Suas capacidades oferecem a possibilidade de gerir, controlar e proteger os recursos a ele conectados.
Hoje falaremos de alguns conceitos básicos sobre identidades na nuvem pública, sobre algumas funcionalidades fornecidas pela ferramenta e como ela pode ajudar a garantir a boa operação e a segurança do seu ambiente Azure.
Controlando e protegendo recursos no Azure
O Azure AD é a porta de entrada para os recursos do Azure. Com ele nós operamos a primeira camada de segurança dentro da nuvem pública. É nele que realizaremos a autenticação e a autorização de todos os usuários que acessam não somente o console do Azure mas também todas as aplicações federadas no tenant (o conceito de tenant será explicado mais pra frente neste mesmo artigo).
Mas não estamos falando apenas de uma ferramenta de autenticação e autorização. Ele fornece as capacidades para gestão de bases de usuário gigantescas, permitindo às empresas uma melhor governança dos recursos existentes. Com ele podemos gerir usuários, aplicações e até dispositivos (cenário comum em empresas que fornecem aos funcionários dispositivos como laptops e celulares para trabalho).
A observabilidade nunca foi tão importante para as empresas quanto hoje. É essencial que os times de segurança e auditoria possam monitorar e consultar todas as ações realizadas no ambiente. Essas capacidades são entregues de maneira nativa pelo Azure AD. Com ele temos o registro completo dos logins dos usuários (sign-in logs)e também o registro das ações realizadas dentro da plataforma por eles (audit logs).
A ferramenta é extremamente poderosa e essas foram apenas algumas funcionalidades que estão disponíveis para serem utilizadas. Agora vamos falar um pouco sobre algumas funcionalidades e alguns conceitos da solução, para que você consiga entender o básico e para que fique confortável para os próximos artigos sobre o tema.
Tenant
Conhecido também como locatário (se você visualiza os recursos em português), representa o Azure AD de uma organização. O tenant é o “objeto” que centraliza todas as capacidades do Azure AD e é nele que faremos a criação dos usuários, dos grupos, das políticas de segurança, das aplicações federadas e de muitos outros recursos disponíveis.
Devemos entender que uma subscription SEMPRE estará conectada a 1 tenant do Azure AD.
Empresas podem ter mais de 1 tenant de Azure AD em seu ambiente por diversos motivos (como por exemplo: para executar testes diversos no ambiente) mas não é interessante que exista mais de um tenant produtivo, pois a operação se tornará muito mais complexa e isso consequentemente aumenta a superfície de ataques, visto que falhas de configuração serão mais comuns.
O simples desenho acima representa a relação quantitativa entre uma subsciption e o azure ad tenant. Uma subscription SEMPRE confiará em um tenant, pois ele será o responsável por controlar o acesso à própria subscription e a todos os recursos que estiverem dentro dela.
É importante comentar que um tenant pode estar conectado à várias subscriptions diferentes ao mesmo tempo, mas uma subscription só pode estar conectada a um tenant de cada vez.
Understanding Tenants, Subscriptions, Regions and Geographies in Azure — DevOpsSchool.com
Este desenho representa bem a relação entre o tenant e os outros recursos do Azure. Um tenant pode conter múltiplas subscriptions (que são estruturas que ficam abaixo dos management groups) e uma subscription pode conter múltiplos resource groups (que são as estruturas lógicas onde efetivamente criamos os recursos).
Uma coisa que devemos deixar clara é: o tenant do Azure AD é um recurso apartado das suas subscritptions. O tenant não é criado e gerenciado como um banco de dados ou um cluster AKS por exemplo. Ele é uma estrutura segregada dos componentes hierárquicos do Azure (root management group, management group e subscriptions).
Explicado o conceito de tenant e a relação com algumas das outras estruturas do Azure, vamos falar sobre permissionamento na nuvem e explicar um conceito muito famoso chamado RBAC.
RBAC
O role based access control (ou em português, controle de acesso baseado em função) tem como propósito permitir o controle de acesso aos recursos do Azure (e Azure AD) baseado na função que o usuário exercerá.
Esse modelo de controle garante maior flexibilidade no permissionamento, pois dessa forma os times de segurança podem criar funções que se adaptem aos cargos dos funcionários da empresa e delegar a eles as permissões necessárias para que possam realizar suas atividades.
Para entendermos melhor o funcionamento das RBACs, vamos ao exemplo:
Temos 4 funcionários, como demonstra o desenho acima. O engenheiro é responsável pela criação dos recursos que serão utilizados pelos diversos times e também pela criação das policies de acesso para aumentar a segurança do ambiente. A desenvolvedora é responsável pela construção dos códigos das aplicações, então o acesso necessário para ela é apenas aos recursos da solução, que foram criados pelo engenheiro. A designer não precisa de nenhum acesso dentro da Azure, pois seu trabalho se dá fora dos recursos da plataforma, em ferramentas externas (como Adobe). O último funcionário é responsável por toda a gestão dos acessos, é ele quem criará os usuários, grupos e fará a reinicialização das senhas quando necessário.
Esse exemplo nos permitiu entender como o controle de acesso baseado em função capacita os times para que gerenciem e forneçam acesso aos recursos da nuvem pública com eficiência e para que adicionalmente, consigam aplicar o princípio do privilégio mínimo. Aplicando esse princípio, diminuímos a chance de termos problemas causados por usuários mal intencionados.
Privilégio mínimo: princípio da área de cibersegurança que busca garantir que os usuários detém apenas os acessos NECESSÁRIOS e nada mais.
Funções do Azure x Funções do Azure AD
Agora que você entendeu como funcionam as funções (RBAC), é importante saber distinguir as funções do Azure AD e do Azure.
Como comentado anteriormente, o tenant do Azure AD e os recursos do Azure são duas coisas diferentes, consequentemente as funções para o controle de acesso também são diferentes entre eles.
Azure AD RBAC: permissionamento para ações que os usuários poderão executar no tenant. Essas ações englobam: gerenciar usuários e grupos, criação de políticas de acesso condicional, usuário de helpdesk, administrador de aplicações, entre dezenas de outras funções;
Azure RBAC: as funções do Azure existem para permitir o controle de acesso aos recursos da plataforma, recursos esses como: bancos de dados, filas, tópicos de eventos, cofres de senha, máquinas virtuais, etc. Com as funções do Azure nós podemos controlar quais ações os usuários poderão executar e em qual escopo (recurso, resource group, subscription e até management group).
Esses foram alguns conceitos gerais sobre Azure AD e sobre identidades, para que você pudesse começar a se ambientar com os termos e conceitos que giram em torno do Azure AD. Nos próximos artigos, entraremos no detalhe de algumas funcionalidades da plataforma e buscaremos sempre trazer uma visão de segurança para os apresentados.
Espero que tenha aproveitado a leitura e me coloco a disposição para responder suas dúvidas.
Até logo!