Gerenciar a configuração de locatário do Microsoft 365 usando o Microsoft365DSC e o Azure DevOps

Azure DevOps
Azure Key Vault
Azure Windows Virtual Machines
Microsoft 365

A solução descrita aqui controla as alterações feitas pelos administradores de serviço e adiciona um processo de aprovação às implantações para locatários do Microsoft 365. Ele pode ajudá-lo a evitar alterações não controladas em locatários do Microsoft 365. Ele também ajuda a evitar desvios de configuração entre vários locatários do Microsoft 365.

Arquitetura

Diagrama que mostra a arquitetura para automatizar alterações nas configurações de locatário do Microsoft 365.

Transfira um ficheiro do Visio desta arquitetura.

Fluxo de Trabalho

  1. O Admin 1 adiciona, atualiza ou exclui uma entrada na bifurcação do Admin 1 do arquivo de configuração do Microsoft 365.
  2. O Admin 1 confirma e sincroniza as alterações com o repositório bifurcado do Admin 1.
  3. O administrador 1 cria uma solicitação pull (PR) para mesclar as alterações no repositório principal.
  4. O pipeline de construção é executado no PR.
  5. Os administradores revisam o código e mesclam o PR.
  6. O PR mesclado dispara um pipeline para compilar arquivos MOF (Managed Object Format). O pipeline chama o Azure Key Vault para recuperar credenciais usadas nos MOFs.
  7. Uma tarefa do Azure PowerShell em um pipeline de vários estágios usa os arquivos MOF compilados para implantar alterações de configuração por meio do Microsoft365DSC.
  8. Os administradores validam as alterações em um locatário do Microsoft 365 em estágios.
  9. Os administradores recebem notificação do processo de aprovação no Azure DevOps para o locatário de produção do Microsoft 365. Os administradores aprovam ou rejeitam as alterações.

Componentes

  • O Azure Pipelines permite a integração contínua (CI) e a entrega contínua (CD) para testar e criar seu código e enviá-lo para qualquer destino. Os Pipelines do Azure permitirão que você coloque portas de qualidade para garantir que as alterações sejam implantadas de maneira controlada e consistente.
  • O Azure Key Vault melhora a segurança do armazenamento de tokens, senhas, certificados, chaves de API e outros segredos. Ele também fornece acesso rigorosamente controlado a esses segredos. O Azure Key Vault será usado para armazenar a entidade de serviço e o certificado usados para implantar alterações de configuração para locatários do Microsoft 365.
  • O Microsoft365DSC fornece automação para a implantação, configuração e monitoramento de locatários do Microsoft 365 por meio do PowerShell DSC. O Micrsosoft365DSC será usado para implantar alterações de configuração em locatários do Microsoft 365 por meio do Azure Pipelines.
  • O Windows PowerShell DSC é uma plataforma de gerenciamento no PowerShell. Você pode usá-lo para gerenciar sua infraestrutura de desenvolvimento usando um modelo de configuração como código. Esta é a tecnologia subjacente usada pelo Microsoft365DSC.

Alternativas

Você pode usar o DSC na Automação do Azure para armazenar configurações em um local central e adicionar relatórios de conformidade com o estado desejado.

Essa arquitetura usa o Cofre da Chave para armazenar certificados do Serviço de Aplicativo do Azure ou credenciais de usuário usadas para autenticação no locatário do Microsoft 365. O Key Vault fornece escalabilidade. Como alternativa, você pode usar variáveis de pipeline para reduzir a complexidade da solução. Usando uma VM e DSC do Windows do Azure, você pode aplicar e monitorar uma configuração para o locatário do Microsoft 365 utilizando o Microsoft365DSC. O Grupo de Ação do Azure pode ser usado para enviar emails para administradores do Microsoft 365 quando a VM do Windows do Azure deteta um desvio de configuração utilizando o Microsoft 365DSC. Além disso, um grupo de ação do Azure pode executar um webhook para acionar um RunBook do Azure para gerar um relatório de desvio de configuração no locatário do Microsoft 365.

Detalhes do cenário

Muitas empresas estão adotando práticas de DevOps e querem aplicar essas práticas aos seus locatários do Microsoft 365. Se você não adotar o DevOps para Microsoft 365, poderá encontrar alguns problemas comuns:

  • Configuração incorreta
  • Desafios com o acompanhamento de alterações de configuração
  • Nenhum processo de aprovação para modificações de locatário

Você pode usar a solução descrita neste artigo para automatizar alterações nas configurações de locatário do Microsoft 365 usando o Azure DevOps e o Microsoft365DSC. O Microsoft365DSC é um módulo de Configuração de Estado Desejado (DSC) do PowerShell. Você pode usá-lo para configurar e gerenciar locatários do Microsoft 365 em um verdadeiro estilo DevOps: configuração como código.

Potenciais casos de utilização

Esta solução pode ajudá-lo a gerenciar a configuração do locatário do Microsoft 365 de forma controlada e automatizada, usando ferramentas e práticas de DevOps, em:

  • Ambientes de desenvolvimento, teste, aceitação e produção.
  • Vários locatários de clientes, como em um cenário de provedor de serviços gerenciados.

Considerações

Essas considerações implementam os pilares do Azure Well-Architected Framework, que é um conjunto de princípios orientadores que podem ser usados para melhorar a qualidade de uma carga de trabalho. Para obter mais informações, consulte Microsoft Azure Well-Architected Framework.

A maioria das pessoas que estão começando com o PowerShell DSC acham que leva um tempo para aprendê-lo. Isso ajuda se você tiver uma sólida compreensão do PowerShell e experiência com a criação de scripts.

Segurança

A maioria dos recursos do Microsoft365DSC suporta autenticação via nome de usuário e senha. Mas não recomendamos esse tipo de autenticação porque as práticas recomendadas da Microsoft recomendam a autenticação multifator. As credenciais do aplicativo são o método preferencial, onde suportado pelos recursos do Microsoft 365. Por exemplo, o SharePoint Online, o Microsoft Entra ID e outros recursos oferecem suporte a credenciais de aplicativo.

Se você criar uma solução Microsoft365DSC no Azure DevOps, também poderá aproveitar a segurança no Azure Pipelines e um processo de aprovação para proteger a implantação para seu locatário de produção.

Otimização de custos

A otimização de custos consiste em procurar formas de reduzir despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, consulte Visão geral do pilar de otimização de custos.

Para obter informações sobre preços do Azure DevOps, consulte Preços do Azure DevOps. Se incorporar o Key Vault na sua solução, pode encontrar informações sobre preços aqui.

Você também pode usar a calculadora de preços do Azure para estimar custos.

Excelência operacional

Algumas equipes de operações consideram o Azure DevOps uma ferramenta para desenvolvedores. Mas essas equipes podem se beneficiar do uso do Azure DevOps. As equipas de operações podem:

  • Armazene seus scripts em um repositório e adicione controle de origem e controle de versão.
  • Automatize implantações de scripts.
  • Use quadros para acompanhar tarefas, projetos e muito mais.

Usar um modelo de configuração como código não é uma tarefa única. É uma mudança na sua forma de trabalhar e uma mudança fundamental para todos os membros da equipa. Você não faz mais alterações manualmente. Em vez disso, tudo é implementado em scripts e implantado automaticamente. Todos os membros da equipe precisam ter as habilidades para fazer essa mudança.

Eficiência de desempenho

Você pode usar essa solução quando estiver trabalhando com vários ambientes, várias cargas de trabalho e/ou várias equipes. Você pode configurar o processo de validação para que os especialistas precisem aprovar cada carga de trabalho. Você também pode estender a solução para implantação a vários locatários, para um cenário de desenvolvimento/teste/aceitação/produção e/ou para várias organizações.

Implementar este cenário

O whitepaper Microsoft365 DSC, Managing Microsoft 365 in true DevOps style with Microsoft365DSC and Azure DevOps, fornece etapas detalhadas para implantar esse cenário.

Contribuidores

Este artigo está sendo mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.

Autor principal:

  • Derek Smay - Brasil | Arquiteto de Soluções Cloud Sênior

Próximos passos

Governança de ponta a ponta no Azure ao usar CI/CD