Índice
Em ambientes Azure, alterações de acesso e permissões fazem parte da rotina operacional, atribuições e remoções de funções, mudanças de privilégios e outras operações relacionadas ao Azure RBAC geram eventos importantes para auditoria, investigações de segurança e construção de uma estratégia de observabilidade, centralizar esses eventos permite criar uma base consistente para acompanhar alterações de acesso e, futuramente, integrá-las a outras soluções de segurança e monitoramento.
Nesta primeira parte, vamos construir do zero uma arquitetura para centralizar eventos relacionados ao Azure RBAC utilizando o Azure Event Hubs. O Azure Activity Log será nossa fonte de eventos administrativos, enquanto o Event Hubs será responsável por recebê-los e distribuí-los. Também utilizaremos o Event Hubs Capture para persistir esses dados em uma Azure Storage Account, criando uma camada de retenção independente da retenção do Event Hub. Ao final, vamos gerar uma alteração de RBAC e validar todo o fluxo, desde o Activity Log até o armazenamento do evento.
Atenção: As implementações apresentadas em nossos artigos foram desenvolvidas com base em documentações oficiais e nas boas práticas recomendadas pela Microsoft. Entretanto, enfatizamos que qualquer implementação deve ser previamente testada em ambientes de homologação ou testes para garantir a segurança e a estabilidade do ambiente de produção
Vamos para o Hands On
Vamos colocar a arquitetura em prática, a partir daqui, construiremos cada componente passo a passo, começando pela estrutura que dará suporte à centralização e ao armazenamento dos eventos.
Vá para o o Azure Portal
- Clique na barra de pesquisa
- Procure por Resource Groups
- Assim que abrir clique em Create

De uma nome para seu Resource Group, depois clique em Review + create.

Criando a Storage Account
Nesta arquitetura, a Storage Account será utilizada pelo recurso Azure Event Hubs Capture, responsável por gravar automaticamente uma cópia dos eventos recebidos pelo Event Hub no Azure Blob Storage, isso permite manter os logs para auditoria, retenção e reprocessamento, sem depender apenas da retenção temporária do Azure Event Hubs.
Para este laboratório, utilizaremos a redundância Locally Redundant Storage (LRS). O LRS mantém três cópias dos dados dentro do mesmo datacenter, oferecendo alta disponibilidade local com o menor custo, sendo uma excelente opção para ambientes de estudo e demonstração. Em cenários de produção, a escolha da redundância deve considerar os requisitos de disponibilidade e recuperação de desastres da organização.
Na bara de pesquisa do Azure, procure por Storage Account depois clique sobre ela, assim que abrir, clique em Create

- Na guia Basics, selecione a Subscription e o Resource Group criado anteriormente, garantindo que todos os recursos da solução permaneçam organizados no mesmo ambiente.
- Defina um nome exclusivo para a Storage Account, como stidentitymonprod, seguindo um padrão de nomenclatura que facilite sua identificação. Em seguida, escolha a mesma região onde será implantado o Azure Event Hubs, reduzindo a latência e evitando custos adicionais com transferência de dados entre regiões.
- Em Primary service, mantenha Azure Blob Storage or Azure Data Lake Storage, pois utilizaremos o Blob Storage para armazenar os arquivos gerados pelo recurso Event Hubs Capture.
- Para Performance, selecione Standard, que oferece o melhor custo-benefício para armazenamento de logs. A opção Premium é recomendada para cargas de trabalho que exigem baixa latência, o que não é necessário neste cenário.
- Por fim, em Redundancy, escolha Locally-redundant storage (LRS). Essa opção mantém três cópias dos dados dentro do mesmo datacenter, proporcionando alta disponibilidade local com menor custo, sendo suficiente para o laboratório. Em ambientes de produção, a escolha da redundância deve considerar os requisitos de disponibilidade e recuperação de desastres da organização.

Advanced
Na guia Advanced, mantenha o Hierarchical namespace, SFTP e Cross-tenant replication desabilitados, pois esses recursos não são necessários para a arquitetura proposta, em Access tier, mantenha a opção Hot, ideal para dados acessados com frequência, como os arquivos gerados pelo Event Hubs Capture durante os testes e validações, as demais configurações podem permanecer com os valores padrão, pois não serão utilizadas neste laboratório. Após isso pode clicar em Review + create

As próximas abas apresentam diversas configurações relacionadas à disponibilidade, proteção de dados, rede e segurança da Storage Account. Para manter o foco na arquitetura proposta, utilizaremos apenas as configurações necessárias para este laboratório, mantendo as demais com seus valores padrão. Em cenários de produção, essas opções devem ser revisadas de acordo com os requisitos de segurança, conformidade e disponibilidade da organização.
Criando o Blob Container
Antes de criar o Azure Event Hubs, vamos criar o Blob Container que receberá os arquivos gerados pelo recurso Event Hubs Capture, cada evento capturado será gravado automaticamente nesse container, permitindo sua retenção para auditoria, análise ou reprocessamento.
Assim que criar a Storage Account, clique em Go to resource

Acesse a Storage Account criada anteriormente.
- No menu lateral, selecione Data storage > Containers.
- Clique em Add Container.
- Defina um nome para o container, por exemplo: Capture, depois clique em create

Criando o Event Hubs Namespace
No portal do Azure, procure por Event Hub, e clique sobre ele

- Selecione a sua Subscrition de a preferencialmente em manter a mesma opção que já está sendo utilizada.
- Aqui muito importante selecionar o mesmo Resource Group
- Utilizaremos o nome evhns-identity-monitoring-prd
- A região East US, mantendo os recursos principais da solução na mesma região.
- Em Pricing tier, selecionamos Standard, pois esse tier oferece os recursos necessários para nossa arquitetura, incluindo Event Hubs Capture, que utilizaremos para armazenar os eventos automaticamente na Storage Account.
- Para Throughput Units, manteremos 1, suficiente para o volume de eventos gerado neste laboratório, essa capacidade pode ser aumentada posteriormente conforme o volume de dados.
- O Auto-inflate permanecerá desabilitado neste momento, esse recurso permite aumentar automaticamente a capacidade quando o volume de eventos cresce e pode ser abordado posteriormente quando tratarmos de escalabilidade e preparação para produção.
- Clique em Review + create

Criando o Event Hub
Após a criação do Event Hubs Namespace, clique na tela Go to Resource

Ou, se preferir acessar o seu Event Hub diretamente pelo portal do Azure, utilize a barra de pesquisa e procure por Event Hubs. Em seguida, selecione o Event Hubs Namespace que criamos anteriormente.
No menu lateral, na seção Entities, clique em Event Hubs e depois em + Event Hub.

Configurando o Event Hub
Em Partition count, utilizaremos 2 partições. As partições permitem dividir o fluxo de eventos para que diferentes consumidores possam processá-los em paralelo, aumentando a capacidade de processamento, para o volume esperado neste laboratório, duas partições são suficientes; em ambientes de produção, esse número deve ser dimensionado conforme o volume de eventos e a estratégia de consumo.
Em Cleanup policy, manteremos Delete e configuraremos o Retention time para 168 horas (7 dias). Durante esse período, os eventos permanecem disponíveis no Event Hub para consumo ou reprocessamento e, após o limite definido, são removidos automaticamente, depois clique em Next Capture
Atenção: Neste laboratório estamos utilizando o Azure Event Hubs Standard. Nesse tier, a retenção de eventos pode ser configurada por até 7 dias, por isso definimos o Retention time como 168 horas. Durante esse período, os eventos permanecem disponíveis no Event Hub para consumo ou reprocessamento e, após o prazo configurado, tornam-se indisponíveis, esse limite varia conforme o tier utilizado. Enquanto o Standard suporta até 7 dias, os tiers Premium e Dedicated podem chegar a 90 dias. Ainda assim, o Event Hubs é um serviço de streaming de eventos, não uma solução de armazenamento de longo prazo. Por isso, nesta arquitetura utilizaremos o Event Hubs Capture para persistir os eventos na Storage Account. Leia mais aqui.

Na seção Capture, vamos selecionar nossa Storage Accout, clique em Select Container

Selecione a Storage Account e o Container criados anteriormente para armazenar os eventos capturados, depois clique em Select, você ira voltar para a tela de configuração do seu Event Hub
Feito isso pode Clicar em Review + create

Configurar a Shared Access Policy
Dentro do Event Hub Namespace, acesse o Event Hub que acabamos de criar
- Na seção Settings, clique em Shared Access policies
- Depois clique em Add
- Em policy name de um nome
- Selecione Send, e depois em Create
Dessa forma, aplicamos o princípio do menor privilégio, permitindo que essa política seja utilizada apenas para publicar eventos no Event Hub, sem conceder permissões para leitura ou gerenciamento.

Configurar Azure Activity Log para o Event Hub
O Azure Activity Log pode ser acessado diretamente pela Subscription > Activity Log ou de forma centralizada pelo Azure Monitor > Activity Log. Ambos permitem visualizar os eventos administrativos gerados no Azure. Neste artigo, utilizaremos o Azure Monitor, pois ele centraliza os recursos de monitoramento e facilita a configuração da exportação dos logs para o Azure Event Hubs.
Importante: não é necessário realizar uma configuração prévia do Azure Monitor para visualizar o Azure Activity Log. Esses eventos são coletados automaticamente pelo Azure e podem ser acessados tanto em Subscription > Activity Log quanto em Azure Monitor > Activity Log. Neste laboratório utilizaremos o caminho pelo Azure Monitor apenas por conveniência, mas você pode realizar a configuração a partir da própria Subscription.
- No barra se pesuisa, procure por Azure Minitor
- Clique sobre ele par abrir
- Depois em Activity log
- Em seguida em Export Activity logs

Clique em Add diagnostic setting

Como o objetivo desta arquitetura é monitorar eventos relacionados à identidade e ao Azure RBAC, selecionaremos apenas a categoria Administrative, essa categoria registra operações realizadas no plano de controle do Azure, incluindo ações relacionadas à criação, alteração e remoção de atribuições de funções (role assignments).
As demais categorias, como Service Health, Resource Health, Autoscale, Recommendation e Policy, não serão selecionadas, pois não fazem parte do escopo de monitoramento definido para este laboratório.
Em Destination details, selecione Stream to an event hub, pois queremos encaminhar esses eventos administrativos para o Azure Event Hubs criado anteriormente, depois selecione seu Event Hub que criamos, e em Event Hub Policy Name, selecione send-policy, e por fim, clique em Save

Gerando eventos de Azure RBAC e validando a arquitetura
Com a arquitetura configurada, vamos gerar uma alteração de Azure RBAC para validar o fluxo de ponta a ponta, o objetivo é confirmar que a operação seja registrada no Azure Activity Log, encaminhada ao Event Hub e posteriormente armazenada na Storage Account por meio do Capture.
Para simular isso acesse sua Subscriptions → Subscription-Prod (no meu caso) → Access control (IAM), e atribua uma Role, pode ser a de Reader

Para visualizar os eventos recebidos diretamente no Event Hub, acesse o Event Hubs Namespace > Data Explorer, selecione o Event Hub evh-identity-events, mantenha All partition IDs, utilize o consumer group $Default e selecione Oldest position. Em seguida, clique em View events. Os eventos recebidos serão exibidos na tela e, ao selecionar um deles, o conteúdo completo poderá ser analisado em Event body, permitindo verificar informações como a operação executada, identidade responsável, recurso, horário e status da ação.

Validando o Event Hubs Capture na Storage Account
Acesse a Storage Account que criamos para esse Laboratorio
- No meu caso e a stidentitymonprod
- Depois clique em Data storage → Containers
- epois clique em capture

Como configuramos o Capture com janela de 5 minutos, deverão existir pastas criadas automaticamente seguindo uma estrutura parecida com:
evhns-identity-monitoring-prd / evh-identity-events / <PartitionId> / <Year> / <Month> / <Day> / <Hour> / ...

Como podemos observar, o Event Hubs Capture criou o arquivo no formato Avro dentro da Storage Account, seguindo a estrutura definida durante sua configuração. Isso confirma que os eventos recebidos pelo Event Hub estão sendo persistidos no Azure Blob Storage, concluindo a validação do fluxo construído nesta primeira parte.
Como ficou nossa arquitetura na Parte 1
Após todas as configurações e validações realizadas, chegamos à arquitetura abaixo, as alterações de Azure RBAC são registradas pelo Azure Activity Log, encaminhadas por meio do Diagnostic Setting ao Azure Event Hubs e, através do Event Hubs Capture, persistidas no Azure Blob Storage.

Conclusão
Nesta primeira parte, construímos a base da nossa arquitetura de monitoramento e validamos o fluxo de eventos relacionados ao Azure RBAC. Configuramos o Azure Activity Log para encaminhar eventos administrativos ao Azure Event Hubs e utilizamos o Event Hubs Capture para persistir esses dados no Azure Blob Storage.
Mais importante do que apenas configurar os serviços, validamos o fluxo de ponta a ponta, desde uma alteração de RBAC até a chegada dos eventos ao Event Hub e sua persistência na Storage Account.
Na Parte 2, ampliaremos essa arquitetura integrando o Microsoft Entra ID, trazendo eventos de identidade para o mesmo modelo de centralização e armazenamento.
Links de referência
O que é o Azure Event Hubs?
Azure Event Hubs Capture
Log de atividades no Azure Monitor
Monitorar os Hubs de Eventos do Azure
Chegamos ao final desta primeira parte!
O que você achou dessa arquitetura para centralizar eventos relacionados ao Azure RBAC utilizando o Azure Event Hubs?
Sua organização já utiliza uma arquitetura semelhante para centralização e retenção de eventos de identidade e acesso?
Na Parte 2, vamos ampliar essa arquitetura integrando também os eventos do Microsoft Entra ID ao fluxo que construímos.
Compartilhe sua experiência com a comunidade, deixe sua opinião nos comentários e conte como sua empresa realiza o monitoramento de identidades e acessos.