Azure Policy のゲスト構成機能について

Azure Policy を使用すると、Azure で実行されるマシンと Arc 対応マシンの両方について、マシン内の設定を監査または構成できます。 各タスクは、Windows および Linux のゲスト構成エージェントによって実行されます。 ゲスト構成拡張機能によりエージェントを介して次のような設定が管理されます。

  • オペレーティング システムの構成
  • アプリケーションの構成または存在
  • 環境設定

このドキュメントのビデオ チュートリアルを利用できます

ゲスト構成を有効にする

環境内のマシン (Azure 内のマシンと Arc 対応サーバーを含む) の状態を管理するには、以下の詳細を確認します。

リソース プロバイダー

Azure Policy のゲスト構成機能を使用するには、その前に、Microsoft.GuestConfiguration リソース プロバイダーを登録する必要があります。 ゲスト構成ポリシーの割り当てがポータルを通じて行われた場合、またはサブスクリプションが Azure Security Center に登録されている場合は、リソース プロバイダーが自動的に登録されます。 ポータルAzure PowerShell、または Azure CLI を使用して手動で登録できます。

Azure 仮想マシンの要件をデプロイする

マシン内の設定を管理するには、仮想マシン拡張機能を有効にします。また、マシンにはシステム マネージド ID が必要です。 拡張機能によって、適用可能なゲスト構成割り当てと、対応する依存関係がダウンロードされます。 ID は、マシンによるゲスト構成サービスの読み取りと書き込みを認証するために使用されます。 この拡張機能は Arc 接続マシン エージェントに含まれているため、Arc 対応サーバーには必要ありません。

重要

Azure 仮想マシンを管理するには、ゲスト構成拡張機能とマネージド ID が必要です。

多くのマシンに拡張機能を大規模にデプロイするには、ポリシー イニシアティブ Deploy prerequisites to enable guest configuration policies on virtual machines を割り当てます 対象は、管理しようとしているマシンが含まれる管理グループ、サブスクリプション、またはリソース グループです。

拡張機能とマネージド ID を 1 台のマシンにデプロイしたい場合は、それぞれのガイダンスに従ってください。

構成を適用するゲスト構成パッケージを使用するには、Azure VM ゲスト構成拡張機能のバージョン 1.29.24 以降が必要です。

拡張機能に設定されている制限

マシン内で実行されているアプリケーションへの拡張機能の影響を制限するため、ゲスト構成エージェントが CPU の 5% を超えることは許可されません。 この制限は、組み込み定義とカスタム定義の両方に存在します。 これは、Arc 接続マシン エージェントのゲスト構成サービスにも当てはまります。

検証ツール

マシン内では、ゲスト構成エージェントによりローカル ツールを使用してタスクが実行されます。

次の表では、サポートされている各オペレーティング システム上で使用されるローカル ツールの一覧を示します。 組み込みコンテンツの場合は、ゲスト構成によってこれらのツールの読み込みが自動的に処理されます。

オペレーティング システム 検証ツール Notes
Windows PowerShell Desired State Configuration v3 Azure Policy でのみ使用されるフォルダーにサイドローディングされます。 Windows PowerShell DSC と競合しません。 PowerShell Core はシステム パスに追加されません。
Linux PowerShell Desired State Configuration v3 Azure Policy でのみ使用されるフォルダーにサイドローディングされます。 PowerShell Core はシステム パスに追加されません。
Linux Chef InSpec Chef InSpec バージョン 2.2.61 が既定の場所にインストールされ、システム パスに追加されます。 Ruby と Python を含む InSpec パッケージの依存関係もインストールされます。

検証の頻度

ゲスト構成エージェントによって、新しい、または変更されたゲスト割り当てが、5 分ごとにチェックされます。 ゲスト割り当てを受信すると、その構成の設定が 15 分間隔でチェックされます。 複数の構成が割り当てられている場合は、1 つずつ順番に評価されます。 前の構成が完了するまで、次の構成は実行されないため、実行時間の長い構成は、すべての構成の間隔に影響します。

監査が完了すると、結果がゲスト構成サービスに送信されます。 ポリシー評価トリガーが発生すると、マシンの状態がゲスト構成リソース プロバイダーに書き込まれます。 この更新により、Azure Policy によって Azure Resource Manager のプロパティが評価されます。 オンデマンドの Azure Policy 評価により、ゲスト構成リソース プロバイダーから最新の値が取得されます。 ただし、マシン内で新しいアクティビティがトリガーされることはありません。 その後、状態は Azure Resource Graph に書き込まれます。

サポートされているクライアントの種類

ゲスト構成ポリシー定義には、新しいバージョンが含まれます。 ゲスト構成クライアントに互換性がない場合、Azure Marketplace で入手できる古いバージョンのオペレーティング システムは除外されます。 次の表に、Azure イメージでサポートされているオペレーティング システムを示します。 テキスト ".x" は、Linux ディストリビューションの新しいマイナー バージョンを表すシンボルです。

Publisher 名前 バージョン
Amazon Linux 2
Canonical Ubuntu Server 14.04 - 20.x
Credativ Debian 8 - 10.x
Microsoft Windows Server 2012 - 2019
Microsoft Windows クライアント Windows 10
Oracle Oracle-Linux 7.x - 8.x
OpenLogic CentOS 7.3 -8.x
Red Hat Red Hat Enterprise Linux* 7.4 - 8.x
SUSE SLES 12 SP3-SP5、15.x

* Red Hat CoreOS はサポートされていません。

カスタム仮想マシン イメージは、上の表のいずれかのオペレーティング システムである限り、ゲスト構成ポリシー定義によってサポートされます。

ネットワークの要件

Azure の仮想マシンは、ローカル ネットワーク アダプターまたは Private Link を使用して、ゲスト構成サービスと通信できます。

Azure Arc マシンは、オンプレミスのネットワーク インフラストラクチャを使用して接続し、Azure サービスにアクセスして、コンプライアンスの状態を報告します。

Azure の仮想ネットワークを介して通信する

Azure のゲスト構成リソース プロバイダーと通信するには、マシンはポート 443 で Azure データセンターに対してアウトバウンド アクセスを行う必要があります。 Azure 内のネットワークで送信トラフィックが許可されていない場合は、ネットワーク セキュリティ グループの規則で例外を構成します。 Azure データセンターの IP 範囲の一覧を手動で管理するのではなく、サービス タグ "AzureArcInfrastructure" と "Storage" を使用して、ゲスト構成とストレージのサービスを参照できます。 ゲスト構成のコンテンツ パッケージは Azure Storage によってホストされるため、両方のタグが必要です。

仮想マシンは、ゲスト構成サービスとの通信に Private Link を使用できます。 この機能を有効にするには、名前 EnablePrivateNetworkGC と値 TRUE を使用してタグを適用します。 タグは、ゲスト構成ポリシー定義をマシンに適用する前または後に適用できます。

Azure 仮想パブリック IP アドレスを使用してトラフィックがルーティングされて、Azure プラットフォーム リソースとの、セキュリティで保護された認証済みチャネルが確立されます。

Azure Arc 対応サーバー

Azure Arc によって接続されている Azure の外部にあるノードには、ゲスト構成サービスへの接続が必要です。 ネットワークとプロキシの要件に関する詳細は、Azure Arc のドキュメントで提供されています。

プライベート データセンターの Arc 対応サーバーについては、次のパターンを使用してトラフィックを許可します。

  • ポート: 送信インターネット アクセスには TCP 443 のみが必要です
  • グローバル URL: *.guestconfiguration.azure.com

Azure 外部のコンピューターにポリシーを割り当てる

ゲスト構成に使用できる監査ポリシー定義には、Microsoft.HybridCompute/machines リソースの種類が含まれます。 ポリシー割り当てのスコープ内にあるサーバー向け Azure Arc にオンボードされているすべてのマシンが自動的に追加されます。

マネージド ID の要件

イニシアチブ "仮想マシンでゲスト構成ポリシーを有効にするための前提条件をデプロイする" のポリシー定義を使用すると、システムによって割り当てられたマネージド ID が有効になります (まだ存在しない場合)。 ID の作成を管理するイニシアチブには、2 つのポリシー定義があります。 ポリシー定義内の IF 条件により、Azure のマシン リソースの現在の状態に基づいて正しい動作が保証されます。

現時点でマシンにマネージド ID がない場合、有効なポリシーは次のようになります: ID のない仮想マシンでゲスト構成の割り当てを有効にするためにシステム割り当てマネージド ID を追加する

現時点でマシンにユーザー割り当てのシステム ID がある場合、有効なポリシーは次のようになります: ユーザー割り当て ID がある VM でゲスト構成の割り当てを有効にするためにシステム割り当てマネージド ID を追加する

可用性

ゲスト割り当ては Azure のマシン リソースの拡張機能であるため、高可用性ソリューションを設計しているお客様は、仮想マシンの冗長性計画の要件を検討する必要があります。 ペアになっている Azure リージョンにゲスト割り当てリソースがプロビジョニングされている場合、ペアの少なくとも一方のリージョンが使用可能であれば、ゲスト割り当てレポートを使用できます。 ペアになっていない Azure リージョンが使用できなくなった場合は、リージョンが復元されるまで、ゲスト割り当てのレポートにアクセスすることはできません。

高可用性アプリケーションのアーキテクチャを検討する場合 (特に、高可用性を提供するためにロード バランサーソリューションの背後にある可用性セットに仮想マシンがプロビジョニングされている場合)、ソリューション内のすべてのマシンに、同じパラメーターを含む同じポリシー定義を割り当てるのがベスト プラクティスです。 可能であれば、すべてのマシンにまたがる単一のポリシー割り当てを採用することにより、管理オーバーヘッドが最小限に抑えられます。

Azure Site Recovery によって保護されているマシンの場合は、プライマリ サイト内のマシンと同じパラメーター値を使用した同じ定義の Azure Policy 割り当てのスコープ内にセカンダリ サイト内のマシンを入れるようにします。

データの保存場所

ゲスト構成により、顧客データが格納および処理されます。 既定では、顧客データはペアになっているリージョンにレプリケートされます。 単独配置リージョンの場合は、すべての顧客データがそのリージョンに格納され、処理されます。

ゲスト構成のトラブルシューティング

ゲスト構成のトラブルシューティングの詳細については、Azure Policy のトラブルシューティングに関する記事を参照してください。

複数の割り当て

ポリシー割り当てで異なるパラメーターが使用されている場合、現在、ゲスト構成ポリシー定義では、同じゲスト割り当てはマシンごとに 1 回だけ割り当てることができます。

Azure 管理グループへの割り当て

"ゲスト構成" カテゴリの Azure Policy 定義は、効果が "AuditIfNotExists" の場合にのみ管理グループに割り当てることができます。 効果が "DeployIfNotExists" のポリシー定義は、管理グループに割り当てることはできません。

クライアントのログ ファイル

ログ ファイルは、ゲスト構成拡張機能によって次の場所に書き込まれます。

Windows: C:\ProgramData\GuestConfig\gc_agent_logs\gc_agent.log

Linux

  • Azure VM: /var/lib/GuestConfig/gc_agent_logs/gc_agent.log
  • Arc 対応サーバー: /var/lib/GuestConfig/arc_policy_logs/gc_agent.log

ログのリモート収集

ゲスト構成の構成またはモジュールのトラブルシューティングでは最初に、コマンドレットを使用して、「ゲスト構成パッケージの成果物をテストする方法」の手順を実行する必要があります。 それでうまくいかない場合は、クライアント ログを収集すると問題の診断に役立ちます。

Windows

Azure VM の実行コマンドを使用して、ログ ファイルから情報をキャプチャします。次の PowerShell スクリプトの例が役立ちます。

$linesToIncludeBeforeMatch = 0
$linesToIncludeAfterMatch = 10
$logPath = 'C:\ProgramData\GuestConfig\gc_agent_logs\gc_agent.log'
Select-String -Path $logPath -pattern 'DSCEngine','DSCManagedEngine' -CaseSensitive -Context $linesToIncludeBeforeMatch,$linesToIncludeAfterMatch | Select-Object -Last 10

Linux

Azure VM の実行コマンドを使用して、ログ ファイルから情報をキャプチャします。次の Bash スクリプトの例が役立ちます。

linesToIncludeBeforeMatch=0
linesToIncludeAfterMatch=10
logPath=/var/lib/GuestConfig/gc_agent_logs/gc_agent.log
egrep -B $linesToIncludeBeforeMatch -A $linesToIncludeAfterMatch 'DSCEngine|DSCManagedEngine' $logPath | tail

エージェント ファイル

ゲスト構成エージェントにより、コンテンツ パッケージがマシンにダウンロードされて、内容が抽出されます。 どのコンテンツがダウンロードされ、保管されたか確認するには、下に示すフォルダーの場所を参照します。

Windows: c:\programdata\guestconfig\configuration

Linux: /var/lib/GuestConfig/Configuration

ゲスト構成のサンプル

ゲスト構成の組み込みポリシーのサンプルは、次の場所で入手できます。

次のステップ