Azure マシンの構成について
注意事項
この記事では、サービス終了 (EOL) 状態となっている Linux ディストリビューションである CentOS について説明します。 適宜、使用と計画を検討してください。 詳細については、「CentOS のサポート終了に関するガイダンス」を参照してください。
Azure Policy のマシン構成機能を使用すると、Azure で実行されているコンピューターとハイブリッド Arc 対応のコンピューターで、オペレーティングシステムの設定をコードとして監査または構成することができます。 この機能は、マシンごとに直接使用することも、Azure Policy を使用して大規模に調整することもできます。
Azure の構成リソースは、拡張リソースとして設計されています。 各構成は、コンピューターのプロパティの追加のセットと考えることができます。 構成には、次のような設定を含めることができます。
- オペレーティング システムの設定
- アプリケーションの構成または存在
- 環境設定
構成は、ポリシー定義とは別です。 マシン構成では Azure Policy を使用して、構成をコンピューターに動的に割り当てます。 手動で、あるいは Automanage など他の Azure サービスを利用して、コンピューターに設定を割り当てることもできます。
各シナリオの例を次の表に示します。
型 | 説明 | ストーリーの例 |
---|---|---|
構成管理 | ソース管理のコードとして、サーバーの完全な表現が必要です。 展開には、サーバーのプロパティ (サイズ、ネットワーク、記憶域) とオペレーティングシステムとアプリケーションの設定の構成が含まれている必要があります。 | "このコンピューターは、web サイトをホストするように構成された web サーバーである必要があります。" |
コンプライアンス | スコープ内のすべてのマシンに対して、既存のマシンには事後対応的に、新しいマシンにはデプロイ時に事前対応的に、設定を監査またはデプロイしたいと思っています。 | "すべてのコンピューターは TLS 1.2 を使用する必要があります。 既存のマシンを監査すると、必要な場所に制御された方法で大規模に変更をリリースできます。 新しいマシンの場合は、デプロイ時に設定を適用します。" |
構成による設定ごとの結果は、[ゲストの割り当て] ページで見ることができます。 Azure Policy 割り当てによって構成が調整された場合は、[コンプライアンスの詳細] ページで [前回の評価済みリソース] リンクを選択できます。
カスタム ポリシーの適用モード
サーバー設定、アプリケーション、ワークロードの適用と監視の柔軟性を高めるために、マシンの構成は、次の表に示すように、ポリシー割り当てごとの 3 つの主要な適用モードを提供しています。
モード | 説明 |
---|---|
監査 | マシンの状態についてのレポートのみを行います |
適用と監視 | 構成はマシンに適用された後、変更がないか監視されます |
適用と自動修正 | 構成はマシンに適用され、乖離が発生すると適合状態に戻されます |
このドキュメントのビデオ チュートリアルを利用できます。 (近日公開予定)
マシン構成を有効にする
環境内のマシン (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 以降が必要です。
重要
"ゲスト構成リソース共同作成者" ロールを使用したマネージド ID の作成またはポリシーの割り当ては、実行のための適切な Azure RBAC アクセス許可を必要とするアクションです。 Azure Policy と Azure RBAC の詳細については、「Azure Policy でのロールベースのアクセス制御」を参照してください。
拡張機能に設定されている制限
マシン内で実行されているアプリケーションへの拡張機能の影響を制限するため、マシン構成エージェントが 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 で入手できる古いバージョンのオペレーティング システムは除外されます。 さらに、それぞれの発行元によるサポートの有効期間外の Linux サーバーのバージョンは、サポート マトリックスから除外されます。
次の表に、Azure イメージでサポートされているオペレーティング システムを示します。 テキスト .x
は、Linux ディストリビューションの新しいマイナー バージョンを表すシンボルです。
Publisher | 名前 | バージョン |
---|---|---|
Alma | AlmaLinux | 9 |
Amazon | Linux | 2 |
Canonical | Ubuntu Server | 16.04 - 22.x |
Credativ | Debian | 10.x - 12.x |
Microsoft | CBL-Mariner | 1 - 2 |
Microsoft | Windows クライアント | Windows 10、11 |
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 | 8 |
SUSE | SLES | 12 SP5、15.x |
* Red Hat CoreOS はサポートされていません。
マシン構成ポリシー定義は、前の表のいずれかのオペレーティング システムである限り、カスタム仮想マシン イメージをサポートします。 マシン構成では、VMSS uniform はサポートされていませんが、VMSS Flex はサポートされています。
ネットワークの要件
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 範囲の一覧を手動で管理するのではなく、サービス タグAzureArcInfrastructure
と Storage
を使用して、ゲスト構成とストレージのサービスを参照できます。 両方のタグが必要な理由は、Azure Storage がマシン構成のコンテンツ パッケージをホストするためです。
Azure で Private Link を介して通信する
仮想マシンは、マシン構成サービスとの通信に 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 対応サーバーのネットワーク要件に関する記事をご覧ください。
Azure の外部と Private Link 経由で通信する
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 は受け入れて "おりません"。サポートはベスト エフォートです。
マシン構成のサンプル
マシン構成の組み込みポリシーのサンプルは、次の場所で入手できます。
次のステップ
- カスタムのマシン構成パッケージの開発環境を設定する。
- マシン構成用のパッケージ成果物を作成する。
- 開発環境からパッケージ成果物をテストする。
- GuestConfiguration モジュールを使用して、環境を大規模に管理する Azure Policy の定義を作成する。
- Azure portal を使用してカスタム ポリシー定義を割り当てる。
- マシン構成のポリシー割り当てのコンプライアンスの詳細を確認する方法を学ぶ。