Azure マシンの構成について

注意

この記事では、サポート終了 (EOL) 状態が近づいている Linux ディストリビューションである CentOS について説明します。 適宜、使用と計画を検討してください。

Azure Policy のマシン構成機能を使用すると、Azure で実行されているコンピューターとハイブリッド Arc 対応のコンピューターで、オペレーティングシステムの設定をコードとして監査または構成することができます。 この機能は、マシンごとに直接使用することも、Azure Policy を使用して大規模に調整することもできます。

Azure の構成リソースは、拡張リソースとして設計されています。 各構成は、コンピューターのプロパティの追加のセットと考えることができます。 構成には、次のような設定を含めることができます。

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

構成は、ポリシー定義とは別です。 マシン構成では Azure Policy を使用して、構成をコンピューターに動的に割り当てます。 手動で、あるいは Automanage など他の Azure サービスを利用して、コンピューターに設定を割り当てることもできます。

各シナリオの例を次の表に示します。

説明 ストーリーの例
構成管理 ソース管理のコードとして、サーバーの完全な表現が必要です。 展開には、サーバーのプロパティ (サイズ、ネットワーク、記憶域) とオペレーティングシステムとアプリケーションの設定の構成が含まれている必要があります。 "このコンピューターは、web サイトをホストするように構成された web サーバーである必要があります。"
コンプライアンス スコープ内のすべてのマシンに対して、既存のマシンには事後対応的に、新しいマシンにはデプロイ時に事前対応的に、設定を監査またはデプロイしたいと思っています。 "すべてのコンピューターは TLS 1.2 を使用する必要があります。 既存のマシンを監査すると、必要な場所に制御された方法で大規模に変更をリリースできます。 新しいマシンの場合は、デプロイ時に設定を適用します。"

構成による設定ごとの結果は、[ゲストの割り当て] ページで見ることができます。 Azure Policy 割り当てによって構成が調整された場合は、[コンプライアンスの詳細] ページで [前回の評価済みリソース] リンクを選択できます。

このドキュメントのビデオ チュートリアルを利用できます。 (近日公開予定)

マシン構成を有効にする

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

リソース プロバイダー

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

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

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

重要

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

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

拡張機能とマネージド ID を 1 台のマシンにデプロイする場合は、「Azure portal を使用して Azure VM で Azure リソースのマネージド ID を構成する」を参照してください。

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

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

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

検証ツール

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

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

オペレーティング システム 検証ツール Notes
Windows PowerShell Desired State Configuration v2 Azure Policy でのみ使用されるフォルダーにサイドローディングされます。 Windows PowerShell DSC と競合しません。 PowerShell はシステム パスに追加されません。
Linux PowerShell Desired State Configuration v3 Azure Policy でのみ使用されるフォルダーにサイドローディングされます。 PowerShell はシステム パスに追加されません。
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 名前 バージョン
Alma AlmaLinux 9
Amazon Linux 2
Canonical Ubuntu Server 14.04 - 22.x
Credativ Debian 8 - 10.x
Microsoft CBL-Mariner 1 - 2
Microsoft Windows クライアント Windows 10
Microsoft Windows Server 2012 - 2022
Oracle Oracle-Linux 7.x - 8.x
OpenLogic CentOS 7.3 - 8.x
Red Hat Red Hat Enterprise Linux* 7.4 - 9.x
Rocky Rocky Linux 9
SUSE SLES 12 SP3-SP5、15.x

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

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

ネットワークの要件

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

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

Azure と Azure Arc 対応仮想マシンが Azure のマシン構成リソース プロバイダーと通信するために必要な Azure Storage エンドポイントの一覧を次に示します。

  • oaasguestconfigac2s1.blob.core.windows.net
  • oaasguestconfigacs1.blob.core.windows.net
  • oaasguestconfigaes1.blob.core.windows.net
  • oaasguestconfigases1.blob.core.windows.net
  • oaasguestconfigbrses1.blob.core.windows.net
  • oaasguestconfigbrss1.blob.core.windows.net
  • oaasguestconfigccs1.blob.core.windows.net
  • oaasguestconfigces1.blob.core.windows.net
  • oaasguestconfigcids1.blob.core.windows.net
  • oaasguestconfigcuss1.blob.core.windows.net
  • oaasguestconfigeaps1.blob.core.windows.net
  • oaasguestconfigeas1.blob.core.windows.net
  • oaasguestconfigeus2s1.blob.core.windows.net
  • oaasguestconfigeuss1.blob.core.windows.net
  • oaasguestconfigfcs1.blob.core.windows.net
  • oaasguestconfigfss1.blob.core.windows.net
  • oaasguestconfiggewcs1.blob.core.windows.net
  • oaasguestconfiggns1.blob.core.windows.net
  • oaasguestconfiggwcs1.blob.core.windows.net
  • oaasguestconfigjiws1.blob.core.windows.net
  • oaasguestconfigjpes1.blob.core.windows.net
  • oaasguestconfigjpws1.blob.core.windows.net
  • oaasguestconfigkcs1.blob.core.windows.net
  • oaasguestconfigkss1.blob.core.windows.net
  • oaasguestconfigncuss1.blob.core.windows.net
  • oaasguestconfignes1.blob.core.windows.net
  • oaasguestconfignres1.blob.core.windows.net
  • oaasguestconfignrws1.blob.core.windows.net
  • oaasguestconfigqacs1.blob.core.windows.net
  • oaasguestconfigsans1.blob.core.windows.net
  • oaasguestconfigscuss1.blob.core.windows.net
  • oaasguestconfigseas1.blob.core.windows.net
  • oaasguestconfigsecs1.blob.core.windows.net
  • oaasguestconfigsfns1.blob.core.windows.net
  • oaasguestconfigsfws1.blob.core.windows.net
  • oaasguestconfigsids1.blob.core.windows.net
  • oaasguestconfigstzns1.blob.core.windows.net
  • oaasguestconfigswcs1.blob.core.windows.net
  • oaasguestconfigswns1.blob.core.windows.net
  • oaasguestconfigswss1.blob.core.windows.net
  • oaasguestconfigswws1.blob.core.windows.net
  • oaasguestconfiguaecs1.blob.core.windows.net
  • oaasguestconfiguaens1.blob.core.windows.net
  • oaasguestconfigukss1.blob.core.windows.net
  • oaasguestconfigukws1.blob.core.windows.net
  • oaasguestconfigwcuss1.blob.core.windows.net
  • oaasguestconfigwes1.blob.core.windows.net
  • oaasguestconfigwids1.blob.core.windows.net
  • oaasguestconfigwus2s1.blob.core.windows.net
  • oaasguestconfigwus3s1.blob.core.windows.net
  • oaasguestconfigwuss1.blob.core.windows.net

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

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

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

重要

カスタム パッケージのプライベート リンク経由で通信するには、パッケージの場所へのリンクを許可された URL の一覧に追加する必要があります。

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

Azure の外部のパブリック エンドポイント経由で通信する

オンプレミスまたは他のクラウドにあるサーバーを Azure Arc に接続することで、マシンの構成を使ってそれらを管理できます。

Azure Arc 対応サーバーの場合は、次のパターンを使ってトラフィックを許可します。

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

Azure Arc とマシンの構成の主要なシナリオのために Azure Connected Machine Agent で必要なすべてのネットワーク エンドポイントの完全な一覧については、Azure Arc 対応サーバーのネットワーク要件に関する記事をご覧ください。

Arc 対応サーバーでプライベート リンクを使用すると、組み込みのポリシー パッケージがプライベート リンク経由で自動的にダウンロードされます。 この機能を有効にするために、Arc 対応サーバーでタグを設定する必要はありません。

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

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

マネージド ID の要件

イニシアチブ "Deploy prerequisites to enable guest configuration policies on virtual machines" のポリシー定義を使用すると、システムによって割り当てられたマネージド ID が有効になります (まだ存在しない場合)。 ID の作成を管理するイニシアチブには、2 つのポリシー定義があります。 ポリシー定義内の if 条件により、Azure のマシン リソースの現在の状態に基づいて正しい動作が保証されます。

重要

これらの定義により、既存の User-Assigned ID (存在する場合) に加えて、ターゲット リソースに システム割り当てマネージド ID が作成されます。 既存のアプリケーションでは、ユーザー割り当て ID を要求で指定しない限り、マシンでは既定でシステム割り当て ID が代わりに使用されます。 詳細情報

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

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

可用性

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

高可用性アプリケーションの場合、ソリューション内のすべてのマシンに、同じパラメーターを持つ同じポリシー定義を割り当てることをお勧めします。 これは、ロード バランサー ソリューションの背後で仮想マシンが可用性セットでプロビジョニングされるシナリオに特に当てはまります。 すべてのマシンにまたがる単一のポリシー割り当てが、管理上のオーバーヘッドが最も少なくなります。

Azure Site Recovery によって保護されているマシンについて、プライマリおよびセカンダリ サイト内のマシンが同じ定義の Azure Policy 割り当てのスコープ内になるようにします。 両方のサイトで同じパラメーター値を使用します。

データの保存場所

マシン構成により、顧客データが格納および処理されます。 既定では、顧客データはペアのリージョンにレプリケートされます。シンガポール、ブラジル南部、アジア太平洋のリージョンについては、すべての顧客データがそのリージョンで格納・処理されます。

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

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

複数の割り当て

現時点では、複数の割り当てをサポートしているのは、一部の組み込みマシン構成ポリシー定義のみです。 ただし、最新バージョンの GuestConfiguration PowerShell モジュールを使ってマシン構成パッケージとポリシーを作成した場合は、既定で、すべてのカスタム ポリシーが複数の割り当てをサポートします。

複数の割り当てをサポートする組み込みマシン構成ポリシー定義の一覧を次に示します。

id DisplayName
/providers/Microsoft.Authorization/policyDefinitions/5fe81c49-16b6-4870-9cee-45d13bf902ce Windows サーバーでローカル認証方法を無効にする必要がある
/providers/Microsoft.Authorization/policyDefinitions/fad40cac-a972-4db0-b204-f1b15cced89a Linux マシンでローカル認証方法を無効にする必要がある
/providers/Microsoft.Authorization/policyDefinitions/f40c7c00-b4e3-4068-a315-5fe81347a904 [プレビュー]: 仮想マシンでゲスト構成の割り当てを有効にするためにユーザー割り当てマネージド ID を追加する
/providers/Microsoft.Authorization/policyDefinitions/63594bb8-43bb-4bf0-bbf8-c67e5c28cb65 [プレビュー]: Linux マシンは、Azure コンピューティングの STIG コンプライアンス要件を満たしている必要がある
/providers/Microsoft.Authorization/policyDefinitions/50c52fc9-cb21-4d99-9031-d6a0c613361c [プレビュー]: Windows マシンは、Azure コンピューティングの STIG コンプライアンス要件を満たしている必要がある
/providers/Microsoft.Authorization/policyDefinitions/e79ffbda-ff85-465d-ab8e-7e58a557660f [プレビュー]: OMI がインストールされている Linux マシンには、バージョン 1.6.8-1 以降が必要である
/providers/Microsoft.Authorization/policyDefinitions/934345e1-4dfb-4c70-90d7-41990dc9608b 指定された証明書が信頼されたルートに含まれていない Windows マシンを監査する
/providers/Microsoft.Authorization/policyDefinitions/08a2f2d2-94b2-4a7b-aa3b-bb3f523ee6fd DSC 構成が準拠していない Windows マシンを監査する
/providers/Microsoft.Authorization/policyDefinitions/c648fbbb-591c-4acd-b465-ce9b176ca173 指定された Windows PowerShell 実行ポリシーのない Windows マシンを監査する
/providers/Microsoft.Authorization/policyDefinitions/3e4e2bd5-15a2-4628-b3e1-58977e9793f3 指定された Windows PowerShell モジュールがインストールされていない Windows マシンを監査する
/providers/Microsoft.Authorization/policyDefinitions/58c460e9-7573-4bb2-9676-339c2f2486bb Windows Serial Console が有効になっていない Windows マシンを監査する
/providers/Microsoft.Authorization/policyDefinitions/e6ebf138-3d71-4935-a13b-9c7fdddd94df 指定されたサービスがインストールされて '実行中' になっていない Windows マシンを監査する
/providers/Microsoft.Authorization/policyDefinitions/c633f6a2-7f8b-4d9e-9456-02f0f04f5505 指定されたタイム ゾーンに設定されていない Windows マシンを監査する

注意

このページで、複数の割り当てをサポートする組み込みマシン構成ポリシー定義の一覧の更新を、定期的に確認してください。

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

Guest Configuration カテゴリの Azure Policy 定義は、効果が AuditIfNotExists または DeployIfNotExists の場合にのみ管理グループに割り当てることができます。

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

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

Windows

  • Azure VM: C:\ProgramData\GuestConfig\gc_agent_logs\gc_agent.log
  • Arc 対応サーバー: C:\ProgramData\GuestConfig\arc_policy_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
$params = @{
    Path = 'C:\ProgramData\GuestConfig\gc_agent_logs\gc_agent.log'
    Pattern = @(
        'DSCEngine'
        'DSCManagedEngine'
    )
    CaseSensitive = $true
    Context = @(
        $linesToIncludeBeforeMatch
        $linesToIncludeAfterMatch
    )
}
Select-String @params | Select-Object -Last 10

Linux

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

LINES_TO_INCLUDE_BEFORE_MATCH=0
LINES_TO_INCLUDE_AFTER_MATCH=10
LOGPATH=/var/lib/GuestConfig/gc_agent_logs/gc_agent.log
egrep -B $LINES_TO_INCLUDE_BEFORE_MATCH -A $LINES_TO_INCLUDE_AFTER_MATCH 'DSCEngine|DSCManagedEngine' $LOGPATH | tail

エージェント ファイル

マシン構成エージェントにより、コンテンツ パッケージがマシンにダウンロードされて、内容が抽出されます。 どのコンテンツがダウンロードされ、保管されたか確認するには、次の一覧のフォルダーの場所をご覧ください。

  • Windows: C:\ProgramData\guestconfig\configuration
  • Linux: /var/lib/GuestConfig/Configuration

オープンソース nxtools モジュールの機能

PowerShell ユーザーによる Linux システムの管理を容易にするために、新しいオープンソース nxtools モジュールがリリースされました。

このモジュールは、次のような一般的なタスクの管理に役立ちます。

  • ユーザーとグループの管理
  • ファイル システム操作の実行
  • サービスの管理
  • アーカイブ操作の実行
  • パッケージを管理する

このモジュールには、Linux 用のクラス ベースの DSC リソースと、組み込みのマシン構成パッケージが含まれます。

この機能に関するフィードバックを提供するには、そのドキュメントでイシューを作成してください。 現在、このプロジェクトの PR は受け入れて "おりません"。サポートはベスト エフォートです。

マシン構成のサンプル

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

次のステップ