組織は、Azure ガバナンス ビジュアライザーを使用して、Azure テナントについて関連するガバナンス情報を取得できます。 このツールでは次の情報を取得できます。
- 管理グループの階層。"
- カスタム ポリシー定義、孤立したカスタム ポリシー定義、ポリシー割り当てなどのポリシー情報。
- カスタム ロール定義、孤立したカスタム ロール定義、ロールの割り当てなど、ロールベースのアクセス制御 (RBAC) 情報。
- Azure のセキュリティとベスト プラクティスの分析。
- Microsoft Entra ID の分析情報。
Azure ガバナンス ビジュアライザーは、GitHub ワークフローを使用して自動化する必要があります。 ビジュアライザーは、概要を HTML、MD、CSV ファイルとして出力します。 生成された HTML レポートには、組織内の承認されたユーザーが簡単にアクセスできるようにするのが理想的です。 この記事では、Azure ガバナンス ビジュアライザーの実行を自動化し、Azure App Service の Web Apps 機能にレポート出力を安全かつコスト効率よくホストする方法について説明します。
実装例は、Azure ガバナンス ビジュアライザー アクセラレータの GitHub で入手できます。
Architecture
このアーキテクチャの Visio ファイルをダウンロードします。
データ フロー
このソリューション アーキテクチャでは次のワークフローを実装します。
- タイマーによって GitHub Actions のフローがトリガーされます。
- このフローにより、Azure への OpenID Connect 接続が確立されます。 その後、Azure ガバナンス ビジュアライザー ツールが実行されます。 このツールは、HTML、MD、CSV レポートの形式で必要な分析情報を収集します。
- レポートは GitHub リポジトリにプッシュされます。
- Azure ガバナンス ビジュアライザー ツールの HTML 出力が App Service に発行されます。
ユーザー フロー
このフローでは、ユーザーがツールを使用する方法について説明します。
- ユーザーは App Service URL を参照して、ビジュアライザーの HTML レポートにアクセスします。 ユーザーは、Microsoft Entra ID 承認を通じた認証が必要になります。
- ユーザーは、ビジュアライザーによって提供される分析情報を確認できます。
コンポーネント
このシナリオで示される自動化は、次のコンポーネントで構成されます。
- Microsoft Entra ID は、シングル サインオン、多要素認証、条件付きアクセスを提供するエンタープライズ ID サービスです。
- Azure App Service は、クラウド アプリケーションを作成およびデプロイするためのフル マネージドのプラットフォームです。 これにより、Web アプリが実行する一連のコンピューティング リソースを定義し、Web アプリをデプロイし、デプロイ スロットを構成できます。
- GitHub は、開発者がソフトウェア プロジェクトをビルド、出荷、保守するために頻繁に使用する、Microsoft の人気のある SaaS オファリングです。
- GitHub Actions は、このアーキテクチャの継続的インテグレーションと継続的デプロイ機能を提供します。
代替
Azure ガバナンス ビジュアライザーは、ローカル コンピューターで直接実行できる PowerShell スクリプトです。 ビジュアライザーは、GitHub Actions の一部として実行して、環境に関する最新の情報を受け取るように構成できます。 ビジュアライザーは、GitHub または Azure DevOps で発行できる出力として Wiki を生成します。
また、ビジュアライザーはセキュリティで保護されたコスト効率の高い他のホスティング プラットフォーム (Azure Static Web Apps など) でもホストできます。
シナリオの詳細
Azure のガバナンス ビジュアライザーは、Azure テナントの管理グループ階層をサブスクリプション レベルまで反復処理する PowerShell ベースのスクリプトです。 Azure Policy、RBAC、Microsoft Entra ID、Blueprints など、最も関連性の高い Azure ガバナンス機能がキャプチャされます。 収集されたデータから、Azure ガバナンス ビジュアライザーは、これらのすべての情報をナビゲーションしやすい HTML レポートで視覚化します。
考慮事項
以降の考慮事項には、ワークロードの品質向上に使用できる一連の基本原則である Azure "Well-Architected Framework" の要素が組み込まれています。 詳細については、「Microsoft Azure Well-Architected Framework」を参照してください。
セキュリティ
セキュリティは、重要なデータやシステムの意図的な攻撃や悪用に対する保証を提供します。 詳細については、「セキュリティの重要な要素の概要」を参照してください。
レポート HTML を、このデータを表示する権限を持つユーザーのみに制限することが重要です。 このデータは、セキュリティ制御を含む Azure ランドスケープを公開しているため、内部と外部の両方の脅威にとって宝の山となります。
Microsoft Entra 認証を使用して、アクセスを承認された個人に制限します。 Web Apps 認証を使用してこのサービスを提供することを検討します。 GitHub のデプロイ コードは、Web Apps を構成し、デプロイする前に認証が有効になっていることをアクティブに確認します。
ネットワーク セキュリティ制御を適用して、プライベート エンドポイント経由でのみサイトをチームに公開することを検討します。 また、トラフィックを制限するには、Web Apps の IP 制限の使用を検討します。
Azure Web アプリのアクセス ログを有効にして、アクセスを監査できるようにします。 これらのログを Log Analytics ワークスペースに送信するように Azure Web アプリを構成します。
セキュリティで保護された通信が Azure Web アプリで有効になっていることを確認します。 HTTPS と FTP のみが許可され、TLS の最小バージョンは 1.2 として構成されます。
Microsoft Defender for Cloud の Microsoft Defender for App Service の使用を検討します。
Azure Web アプリの最新バージョンのランタイム スタックを使用します。
このサービス プリンシパルのシークレットを定期的にローテーションし、そのアクティビティを監視するようにします。 必要なすべての情報を収集するために、デプロイされるビジュアライザーは、Microsoft Entra ID アクセス許可を持つサービス プリンシパルに依存します。
セキュリティ制御の詳細については、「App Service 用の Azure セキュリティ ベースライン」を参照してください。
コストの最適化
コストの最適化とは、不要な費用を削減し、運用効率を向上させる方法を検討することです。 詳しくは、コスト最適化の柱の概要に関する記事をご覧ください。
B1 (Basic) レベルは、App Service にデプロイされた Azure Web アプリに使用されます。 App Service は、軽量になるように Azure ガバナンス ビジュアライザー ツールの HTML 出力をホストします。
GitHub のサンプルでは App Service のインスタンスが 1 つだけデプロイされますが、必要に応じてさらにデプロイすることもできます。
オペレーショナル エクセレンス
オペレーショナル エクセレンスは、アプリケーションをデプロイし、それを運用環境で実行し続ける運用プロセスをカバーします。 詳細については、「オペレーショナル エクセレンスの重要な要素の概要」を参照してください。
このソリューションは、主にビジュアライザー ツールの HTML 出力をホストする Azure Web アプリで構成されます。 Web アプリの診断設定を有効にして、トラフィックの監視、監査ログ、メトリックへのアクセスなどを行うことをお勧めします。
Web アプリのパフォーマンスを監視することが重要です。 そうすることで、ビジュアライザーの使用量に応じてスケールアップまたはスケールアウトする必要があるかどうかを特定するのに役立ちます。
また、Azure Web アプリの最新バージョンのランタイム スタックを常に実行することも重要です。
Azure ガバナンス ビジュアライザーは、バージョンを定期的に更新し、新しい機能、バグ修正、機能強化を提供しています。 GitHub リポジトリでは、専用の GitHub ワークフローが更新プロセスを処理します。 レビューとマージが可能な変更で pull request を開くだけで、ビジュアライザーのコードを自動または手動で更新する、構成可能なオプションがあります。
アクセラレータのコードは、App Service の Bicep コードの新しい設定、またはビジュアライザーの前提条件に関する新しい手順で更新される場合があります。 GitHub リポジトリでは、専用の GitHub ワークフローがこの更新プロセスを処理します。 レビューとマージが可能な変更で pull request を開くだけで、ビジュアライザーのコードを自動または手動で更新する、構成可能なオプションがあります。
このシナリオのデプロイ
このシナリオをデプロイするには、 Azure Governance Visualizer accelerator GitHub リポジトリを参照してください。
共同作成者
この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。
プリンシパルの作成者:
- Seif Bassem | クラウド ソリューション アーキテクト
公開されていない LinkedIn プロフィールを見るには、LinkedIn にサインインしてください。