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 が、pull request (PR) を作成して、変更をメイン リポジトリにマージします。
  4. ビルド パイプラインが PR に対して実行されます。
  5. 管理者がコードをレビューし、PR をマージします。
  6. マージされた PR がパイプラインをトリガーして、Managed Object Format (MOF) ファイルをコンパイルします。 パイプラインが 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 は、Microsoft 365 テナントのデプロイ、構成、監視を PowerShell DSC を介して自動化します。
  • 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 は、PowerShell Desired State Configuration (DSC) モジュールです。 これを使用すると、Microsoft 365 テナントを真の DevOps スタイルであるコードとしての構成で構成および管理できます。

考えられるユース ケース

このソリューションは、DevOps ツールとプラクティスを以下に対して使用して、Microsoft 365 テナント構成を制御された方法で自動的に管理するのに役立ちます。

  • 開発、テスト、受け入れ、および運用環境。
  • マネージド サービス プロバイダー シナリオのような複数の顧客テナント。

考慮事項

以降の考慮事項には、ワークロードの品質向上に使用できる一連の基本原則である Azure "Well-Architected Framework" の要素が組み込まれています。 詳細については、「Microsoft Azure Well-Architected Framework」を参照してください。

PowerShell DSC を初めて使用する人の多くが、その使い方を学習するのにいくらか時間がかかると感じています。 PowerShell について十分に理解し、スクリプトを作成した経験があると役立ちます。

Operations

運用チームの中には、Azure DevOps が開発者向けのツールであると考えているチームもあります。 しかし、そのようなチームも、Azure DevOps を使用することでメリットを得られます。 運用チームは次のことを行えます。

  • スクリプトをリポジトリに保存し、ソース管理とバージョン管理を追加する。
  • スクリプトのデプロイを自動化する。
  • ボードを使用して、タスクやプロジェクトなどを追跡する。

コードとしての構成モデルの使用は、1 回限りのタスクではありません。 これは、作業方法の変化であり、チーム メンバー全員にとって根本的な変更です。 手動で変更を加える必要はもはやなくなります。 代わりに、すべてはスクリプトで実装され、自動的にデプロイされます。 チーム メンバー全員が、この変更を行うスキルを持つ必要があります。

スケーラビリティ

このソリューションは、複数の環境、複数のワークロード、または複数のチームを操作している場合に使用できます。 検証プロセスを構成して、専門家による各ワークロードの承認が必要となるようにすることができます。 また、ソリューションを開発/テスト/受け入れ/実稼働シナリオや複数の組織向けに拡張して、複数のテナントにデプロイすることもできます。

スケーラビリティをさらに高めるため、Datum のような集計構成データ ソリューションを使用できます。

セキュリティ

ほとんどの Microsoft365DSC リソースは、ユーザー名とパスワードによる認証をサポートしています。 ですが、Microsoft のベスト プラクティスでは多要素認証が推奨されるので、この種類の認証はお勧めしません。 アプリケーション資格情報は推奨される方法で、Microsoft 365 によってサポートされています。 たとえば、SharePoint Online、Microsoft Entra ID などのリソースがアプリケーション資格情報をサポートしています。

Azure DevOps 上で Microsoft365DSC ソリューションを構築する場合は、Azure Pipelines のセキュリティと認証プロセスを利用して、実稼働テナントへのデプロイを保護できます。

DevOps

このソリューションは Azure DevOps Server で実行できます。 GitHub Actions を使用することで、同様のソリューションを作成できます。

コストの最適化

コストの最適化とは、不要な費用を削減し、運用効率を向上させる方法を検討することです。 詳しくは、コスト最適化の柱の概要に関する記事をご覧ください。

Azure DevOps の価格情報については、「Azure DevOps の料金」を参照してください。 ソリューションに Key Vault を組み込む場合は、こちらから価格情報をご確認いただけます。

Azure 料金計算ツールを使用してコストを見積もることもできます。

共同作成者

この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。

プリンシパル作成者:

  • Derek Smay |シニア カスタマー エンジニア

次のステップ