Microsoft365DSC 및 Azure DevOps를 사용하여 Microsoft 365 테넌트 구성 관리

Azure DevOps
Azure Key Vault
Azure Windows Virtual Machines
Microsoft 365

여기에 설명된 솔루션은 서비스 관리자의 변경 내용을 추적하고 Microsoft 365 테넌트 배포에 승인 프로세스를 추가합니다. Microsoft 365 테넌트에서 추적되지 않은 변경 내용을 방지하는 데 도움이 될 수 있습니다. 또한 여러 Microsoft 365 테넌트 간의 구성 드리프트를 방지하는 데 도움이 됩니다.

아키텍처

Microsoft 365 테넌트 구성에 대한 변경 내용을 자동화하기 위한 아키텍처를 보여 주는 다이어그램

이 아키텍처의 Visio 파일을 다운로드합니다.

워크플로

  1. 관리자 1은 Microsoft 365 구성 파일의 관리자 1 포크에서 항목을 추가, 업데이트 또는 삭제합니다.
  2. 관리자 1은 변경 내용을 커밋하고 관리자 1의 포크된 리포지토리에 동기화합니다.
  3. 관리자 1은 변경 내용을 주 리포지토리에 병합하는 PR(끌어오기 요청)을 만듭니다.
  4. 빌드 파이프라인은 PR에서 실행됩니다.
  5. 관리자는 코드를 검토하고 PR을 병합합니다.
  6. 병합된 PR은 파이프라인을 트리거하여 MOF(Managed Object Format) 파일을 컴파일합니다. 파이프라인은 Azure Key Vault를 호출하여 MOF에서 사용되는 자격 증명을 검색합니다.
  7. 다단계 파이프라인의 Azure PowerShell 작업은 컴파일된 MOF 파일을 사용하여 Microsoft365DSC를 통해 구성 변경 내용을 배포합니다.
  8. 관리자는 스테이징된 Microsoft 365 테넌트에서 변경 내용의 유효성을 검사합니다.
  9. 관리자는 프로덕션 Microsoft 365 테넌트용 Azure DevOps의 승인 프로세스에서 알림을 받습니다. 관리자는 변경 내용을 승인하거나 거부합니다.

구성 요소

  • Azure Pipelines는 CI(연속 통합) 및 CD(지속적인 업데이트)를 사용하여 코드를 테스트 및 빌드하고 어떤 대상에든 제공합니다.
  • Azure Key Vault는 토큰, 암호, 인증서, API 키 및 기타 비밀에 대한 스토리지 보안을 개선합니다. 또한 이러한 비밀에 엄격하게 제어된 액세스를 제공합니다.
  • Microsoft365DSC는 PowerShell DSC를 통해 Microsoft 365 테넌트의 배포, 구성 및 모니터링을 위한 자동화를 제공합니다.
  • Windows PowerShell DSC는 PowerShell의 관리 플랫폼입니다. 이를 사용하여 코드로 구성 모델을 사용하여 개발 인프라를 관리할 수 있습니다.

대안

다음 단계로 Azure Automation의 DSC를 사용하여 중앙 위치에 구성을 저장하고 원하는 상태의 규정 준수 보고를 추가할 수 있습니다.

이 아키텍처는 Key Vault 사용하여 Microsoft 365 테넌트 인증에 사용되는 Azure App Service 인증서 또는 사용자 자격 증명을 저장합니다. Key Vault는 확장성을 제공합니다. 또는 파이프라인 변수를 사용하여 솔루션의 복잡성을 줄일 수 있습니다.

시나리오 정보

많은 회사에서 DevOps 사례를 채택하고 있으며 이러한 사례를 Microsoft 365 테넌트에 적용하려고 합니다. Microsoft 365용 DevOps를 채택하지 않으면 다음과 같은 몇 가지 일반적인 문제가 발생할 수 있습니다.

  • 잘못된 구성
  • 구성 변경 내용 추적과 관련된 문제점
  • 테넌트 수정에 대한 승인 프로세스 없음

이 문서에 설명된 솔루션을 사용하여 Azure DevOpsMicrosoft365DSC를 사용하여 Microsoft 365 테넌트 구성에 대한 변경 내용을 자동화할 수 있습니다. Microsoft365DSC는 DSC(PowerShell Desired State Configuration) 모듈입니다. 이를 사용하여 진정한 DevOps 스타일인 코드로 구성에서 Microsoft 365 테넌트를 구성 및 관리할 수 있습니다.

잠재적인 사용 사례

이 솔루션은 다음에서 DevOps 도구 및 사례를 사용하여 제어되고 자동화된 방식으로 Microsoft 365 테넌트 구성을 관리하는 데 도움이 될 수 있습니다.

  • 개발, 테스트, 수용 및 프로덕션 환경
  • 관리 서비스 공급자 시나리오에서와 같이 여러 고객 테넌트

고려 사항

이러한 고려 사항은 워크로드의 품질을 향상시키는 데 사용할 수 있는 일단의 지침 원칙인 Azure Well-Architected Framework의 핵심 요소를 구현합니다. 자세한 내용은 Microsoft Azure Well-Architected Framework를 참조하세요.

PowerShell DSC로 시작하는 대부분의 사람들은 학습하는 데 시간이 걸린다는 것을 알게 됩니다. PowerShell을 확실하게 이해하고 스크립트를 만든 경험이 있다면 도움이 됩니다.

작업

일부 운영팀은 Azure DevOps를 개발자용 도구로 간주합니다. 그러나 이러한 팀은 Azure DevOps를 사용하면 혜택을 받을 수 있습니다. 운영 팀은 다음을 수행할 수 있습니다.

  • 해당 스크립트를 리포지토리에 저장하고 소스 제어 및 버전 관리 추가
  • 스크립트 배포 자동화
  • 보드를 사용하여 작업, 프로젝트 등 추적

코드로 구성 모델을 사용하는 것은 일회성 작업이 아닙니다. 이는 작업 방식의 변화이며 모든 팀 구성원에게 근본적인 변화입니다. 더 이상 수동으로 변경할 필요가 없습니다. 대신 모든 것이 스크립트에서 구현되고 자동으로 배포됩니다. 모든 팀 구성원은 이러한 변경을 위해 기술을 익혀야 합니다.

확장성

여러 환경, 여러 워크로드 및/또는 여러 팀으로 작업할 때 이 솔루션을 사용할 수 있습니다. 전문가가 각 워크로드를 승인하도록 유효성 검사 프로세스를 구성할 수 있습니다. 솔루션을 확장하여 개발/테스트/수용/프로덕션 시나리오 및/또는 여러 조직을 위해 여러 테넌트에 배포할 수도 있습니다.

확장성을 더욱 높이기 위해 Datum과 같은 집계 구성 데이터 솔루션을 사용할 수 있습니다.

보안

대부분의 Microsoft365DSC 리소스는 사용자 이름 및 암호를 통한 인증을 지원합니다. 그러나 Microsoft 모범 사례에서는 다단계 인증을 권장하므로 이러한 유형의 인증은 권장하지 않습니다. 애플리케이션 자격 증명은 Microsoft 365 리소스에서 지원하는 기본 방법입니다. 예를 들어 SharePoint Online, Microsoft Entra ID 및 기타 리소스는 애플리케이션 자격 증명을 지원합니다.

Azure DevOps에서 Microsoft365DSC 솔루션을 빌드하는 경우 Azure Pipelines의 보안 및 승인 프로세스를 활용하여 프로덕션 테넌트로의 배포를 보호할 수도 있습니다.

DevOps

Azure DevOps Server에서 이 솔루션을 실행할 수 있습니다. GitHub Actions을 사용하여 GitHub에서 유사한 솔루션을 만들 수 있습니다.

비용 최적화

비용 최적화는 불필요한 비용을 줄이고 운영 효율성을 높이는 방법을 찾는 것입니다. 자세한 내용은 비용 최적화 핵심 요소 개요를 참조하세요.

Azure DevOps 가격 책정 정보는 Azure DevOps 가격 책정을 참조하세요. 솔루션에 Key Vault를 통합하는 경우 여기에서 가격 책정 정보를 찾을 수 있습니다.

Azure 가격 계산기를 사용하여 비용을 예측할 수도 있습니다.

참가자

Microsoft에서 이 문서를 유지 관리하고 있습니다. 원래 다음 기여자가 작성했습니다.

보안 주체 작성자:

다음 단계