이 문서에서는 서비스 관리자가 수행한 변경 내용을 추적하고 Microsoft 365 테넌트에 배포에 승인 프로세스를 추가하는 솔루션을 설명합니다. 이렇게 하면 Microsoft 365 테넌트에 대한 추적되지 않은 변경 내용을 방지하고 여러 Microsoft 365 테넌트 간의 구성 드리프트를 방지할 수 있습니다.
아키텍처
이 아키텍처의 Visio 파일을 다운로드합니다.
워크플로
- 관리자 1은 Microsoft 365 구성 파일의 Admin 1 포크에 있는 항목을 추가, 업데이트 또는 삭제합니다.
- 관리자 1은 변경 내용을 커밋하고 관리자 1의 포크된 리포지토리에 동기화합니다.
- 관리자 1은 변경 내용을 주 리포지토리에 병합하는 PR(끌어오기 요청)을 만듭니다.
- 빌드 파이프라인은 PR에서 실행됩니다.
- 관리자는 코드를 검토하고 PR을 병합합니다.
- 병합된 PR은 파이프라인을 트리거하여 MOF(Managed Object Format) 파일을 컴파일합니다. 파이프라인은 Azure Key Vault를 호출하여 MOF 파일에 사용되는 자격 증명을 검색합니다.
- 다단계 파이프라인의 Azure PowerShell 작업은 컴파일된 MOF 파일을 사용하여 Microsoft365DSC를 통해 구성 변경 내용을 배포합니다.
- 관리자는 스테이징된 Microsoft 365 테넌트에서 변경 내용의 유효성을 검사합니다.
- 관리자는 프로덕션 Microsoft 365 테넌트용 Azure DevOps의 승인 프로세스에서 알림을 받습니다. 관리자는 변경 내용을 승인하거나 거부합니다.
구성 요소
- Azure Pipelines 는 지속적인 통합 및 지속적인 업데이트를 위한 Azure DevOps 서비스입니다. Azure Pipelines를 사용하여 코드를 테스트 및 빌드하고 모든 대상에 제공합니다. 또한 Azure Pipelines를 사용하여 품질 게이트를 구현하여 제어되고 일관된 방식으로 변경 내용을 배포할 수 있습니다.
- Key Vault 는 토큰, 암호, 인증서, API 키 및 기타 비밀에 대한 스토리지 보안을 향상시킵니다. 또한 이러한 비밀에 엄격하게 제어된 액세스를 제공합니다. Key Vault를 사용하여 Microsoft 365 테넌트에 구성 변경 내용을 배포하는 데 사용하는 서비스 주체 및 인증서를 저장합니다.
- Microsoft365DSC 는 PowerShell DSC(Desired Stage Configuration)를 통해 Microsoft 365 테넌트 배포, 구성 및 모니터링을 위한 자동화를 제공합니다. Microsoft365DSC를 사용하여 Azure Pipelines를 통해 Microsoft 365 테넌트에 구성 변경 내용을 배포합니다.
- Windows PowerShell DSC는 PowerShell의 관리 플랫폼입니다. 이를 사용하여 코드로 구성 모델을 사용하여 개발 인프라를 관리할 수 있습니다. 이 모델은 Microsoft365DSC에서 사용하는 기본 기술입니다.
대안
Azure Automation의 DSC를 사용하여 중앙 위치에 구성을 저장하고 원하는 상태의 규정 준수 보고를 추가할 수 있습니다.
이 아키텍처는 Key Vault 사용하여 Microsoft 365 테넌트 인증에 사용되는 Azure App Service 인증서 또는 사용자 자격 증명을 저장합니다. Key Vault는 확장성을 제공합니다. 또는 파이프라인 변수를 사용하여 솔루션의 복잡성을 줄일 수 있습니다. Windows 및 DSC용 Azure VM(가상 머신)을 사용하면 Microsoft365DSC를 사용하는 Microsoft 365 테넌트에 구성을 적용하고 모니터링할 수 있습니다. Azure 작업 그룹을 사용하여 Azure Windows VM이 Microsoft 365DSC를 사용하여 구성 드리프트를 검색할 때 Microsoft 365 관리자에게 이메일을 보낼 수 있습니다. 또한 Azure 작업 그룹은 웹후크를 실행하여 Azure Runbook을 트리거하여 Microsoft 365 테넌트 내에서 구성 드리프트 보고서를 생성할 수 있습니다.
시나리오 정보
많은 회사에서 DevOps 사례를 채택하고 있으며 이러한 사례를 Microsoft 365 테넌트에 적용하려고 합니다. Microsoft 365용 DevOps를 채택하지 않으면 다음과 같은 몇 가지 일반적인 문제가 발생할 수 있습니다.
- 잘못된 구성
- 구성 변경 내용 추적과 관련된 문제점
- 테넌트 수정에 대한 승인 프로세스 없음
이 문서에 설명된 솔루션을 사용하여 Azure DevOps 및 Microsoft365DSC를 사용하여 Microsoft 365 테넌트 구성에 대한 변경 내용을 자동화할 수 있습니다. Microsoft365DSC는 PowerShell DSC 모듈입니다. 이를 사용하여 코드로 구성되는 진정한 DevOps 스타일로 Microsoft 365 테넌트를 구성하고 관리할 수 있습니다.
잠재적인 사용 사례
이 솔루션은 다음에서 DevOps 도구 및 사례를 사용하여 제어되고 자동화된 방식으로 Microsoft 365 테넌트 구성을 관리하는 데 도움이 될 수 있습니다.
- 개발, 테스트, 수용 및 프로덕션 환경
- 관리 서비스 공급자 시나리오와 같은 여러 고객 테넌트
고려 사항
이러한 고려 사항은 워크로드의 품질을 향상시키는 데 사용할 수 있는 일단의 지침 원칙인 Azure Well-Architected Framework의 핵심 요소를 구현합니다. 자세한 내용은 Microsoft Azure Well-Architected Framework를 참조하세요.
PowerShell DSC로 시작하는 대부분의 사람들은 학습하는 데 시간이 걸린다는 것을 알게 됩니다. PowerShell을 확실하게 이해하고 스크립트를 만든 경험이 있다면 도움이 됩니다.
보안
우수한 보안은 중요한 데이터 및 시스템에 대한 고의적인 공격과 악용을 방어합니다. 자세한 내용은 보안성에 대한 디자인 검토 검사 목록을 참조하세요.
대부분의 Microsoft365DSC 리소스는 사용자 이름 및 암호를 통한 인증을 지원합니다. Microsoft 모범 사례에서는 다단계 인증을 권장하므로 이러한 유형의 인증은 권장하지 않습니다. Microsoft 365 리소스에서 지원하는 경우 애플리케이션 자격 증명이 기본 방법입니다. Microsoft 365의 SharePoint, Microsoft Entra ID 및 기타 리소스는 애플리케이션 자격 증명을 지원합니다.
Azure DevOps에서 Microsoft365DSC 솔루션을 빌드하는 경우 Azure Pipelines의 보안 및 승인 프로세스를 활용하여 프로덕션 테넌트로의 배포를 보호할 수도 있습니다.
비용 최적화
비용 최적화는 불필요한 비용을 줄이고 운영 효율성을 높이는 방법을 찾는 것입니다. 자세한 내용은 비용 최적화를 위한 디자인 검토 검사 목록을 참조하세요.
Azure DevOps 가격 책정 정보는 Azure DevOps 가격 책정을 참조하세요. Key Vault를 솔루션에 통합하는 경우 Key Vault 가격 책정을 참조하세요.
Azure 가격 계산기를 사용하여 비용을 예측할 수도 있습니다.
운영 효율성
운영 우수성은 애플리케이션을 배포하고 프로덕션에서 계속 실행하는 운영 프로세스를 다룹니다. 자세한 내용은 Operational Excellence에 대한 디자인 검토 검사 목록을 참조하세요.
일부 운영팀은 Azure DevOps를 개발자용 도구로 간주합니다. 그러나 이러한 팀은 Azure DevOps를 사용하면 혜택을 받을 수 있습니다. 운영 팀은 다음을 수행할 수 있습니다.
- 해당 스크립트를 리포지토리에 저장하고 소스 제어 및 버전 관리 추가
- 스크립트 배포 자동화
- 보드를 사용하여 작업 및 프로젝트를 추적합니다.
코드로 구성 모델을 사용하는 것은 일회성 작업이 아닙니다. 이는 작업 방식의 변화이며 모든 팀 구성원에게 근본적인 변화입니다. 더 이상 수동으로 변경할 필요가 없습니다. 대신 모든 것이 스크립트에서 구현되고 자동으로 배포됩니다. 모든 팀 구성원은 이러한 변경을 위해 기술을 익혀야 합니다.
성능 효율성
성능 효율성은 사용자가 배치된 요구 사항을 효율적인 방식으로 충족하기 위해 워크로드의 크기를 조정할 수 있는 기능입니다. 자세한 내용은 성능 효율성에 대한 디자인 검토 검사 목록을 참조하세요.
여러 환경, 여러 워크로드 또는 여러 팀으로 작업할 때 이 솔루션을 사용할 수 있습니다. 전문가가 각 워크로드를 승인하도록 유효성 검사 프로세스를 구성할 수 있습니다. 개발, 테스트, 수용 및 프로덕션 시나리오를 비롯한 시나리오 또는 여러 조직에 대해 여러 테넌트에 배포하도록 솔루션을 확장할 수도 있습니다.
시나리오 배포
Microsoft 365DSC 및 Azure DevOps를 사용하여 진정한 DevOps 스타일에서 Microsoft 365를 관리하는 Microsoft 365 DSC 백서는 이 시나리오를 배포하는 자세한 단계를 제공합니다.
참가자
Microsoft에서 이 문서를 유지 관리하고 있습니다. 원래 다음 기여자가 작성했습니다.
보안 주체 작성자:
- Derek Smay | 선임 클라우드 솔루션 아키텍트
다음 단계
- Microsoft365DSC 및 Azure DevOps를 사용하여 진정한 DevOps 스타일에서 Microsoft 365 관리
- Microsoft365DSC 소스 코드
- Microsoft365DSC YouTube 채널
- Microsoft365DSC 사이트
- Microsoft365DSC 내보내기 생성기 도구