MMA 検出および削除ユーティリティ

マシンを Azure Monitor エージェント (AMA) に移行した後は、ログの重複を避けるために Log Analytics エージェント (Microsoft 管理エージェントまたは MMA とも呼ばれます) を削除する必要があります。 Azure テナント セキュリティ ソリューション (AzTS) の MMA 検出および削除ユーティリティは、テナントの Azure 仮想マシン (VM)、Azure 仮想マシン スケール セット、および Azure Arc サーバーから MMA 拡張機能を一元的に削除できます。

このユーティリティは、次の 2 つの手順で動作します。

  1. 検出: このユーティリティは、MMA がインストールされているすべてのマシンのインベントリを作成します。 ユーティリティの実行中は、MMA 拡張機能を持つ新しい VM、仮想マシン スケール セット、または Azure Arc サーバーを作成しないことをお勧めします。

  2. 削除: このユーティリティは、MMA と AMA の両方を持つマシンを選択し、MMA 拡張機能を削除します。 この手順を無効にして、マシンの一覧を検証した後で実行することができます。 MMA のみを持つマシンから拡張機能を削除するオプションがありますが、最初にすべての依存関係を AMA に移行してから MMA を削除することをお勧めします。

前提条件

すべてのセットアップ手順は、PowerShell 拡張機能のある Visual Studio Code 上で実行します。 必要なもの:

  • Windows 10 以降、または Windows Server 2019 以降。
  • PowerShell 5.0 以降。 $PSVersionTable を実行してバージョンを確認します。
  • PowerShell。 言語は FullLanguage モードに設定する必要があります。 PowerShell で $ExecutionContext.SessionState.LanguageMode を実行してモードを確認します。 詳細については、PowerShell リファレンスを参照してください。
  • Bicep。 セットアップ スクリプトでは、Bicep を使用してインストールを自動化します。 bicep --version を実行してインストールを確認します。 詳細については、「Bicep ツールのインストール」を参照してください。
  • ターゲット スコープに対する閲覧者仮想マシン共同作成者、およびAzure Arc ScVmm VM 共同作成者のアクセス権を持つユーザー割り当てマネージド ID
  • セットアップ自動化によって自動的に作成されるAzure リソースをすべて格納するための新しいリソース グループ。
  • 構成されたスコープに対する適切なアクセス許可。 ターゲット スコープに対して前述のロールを持つ修復ユーザー割り当てマネージド ID を付与するには、ユーザー アクセス管理者または所有者のアクセス許可が必要です。 たとえば、特定のサブスクリプションのセットアップを構成する場合は、修復ユーザー割り当てマネージド ID のアクセス許可をスクリプトが提供できるように、そのサブスクリプションに対するユーザー アクセス管理者ロールの割り当てが必要です。

展開パッケージをダウンロードする

展開パッケージには次のものが含まれます。

  • Bicep テンプレート。セットアップの一部として作成するリソース構成の詳細が含まれています。
  • インストールを実行するコマンドレットを提供する展開セットアップ スクリプト。

パッケージをインストールするには:

  1. AzTS-docs GitHub リポジトリに 移動します。 展開パッケージ ファイル (AzTSMMARemovalUtilityDeploymentFiles.zip) をローカル コンピューターにダウンロードします。

  2. この .zip ファイルをローカル フォルダーの場所に抽出します。

  3. 次のスクリプトを使用してファイルのブロックを解除します。

    Get-ChildItem -Path "<Extracted folder path>" -Recurse | Unblock-File 
    

ユーティリティをセットアップする

  1. 展開フォルダーに移動し、統合セットアップ スクリプトを読み込みます。 サブスクリプションに対する所有者アクセス権が必要です。

    CD "<LocalExtractedFolderPath>\AzTSMMARemovalUtilityDeploymentFiles"
    . ".\MMARemovalUtilityConsolidatedSetup.ps1"
    
  2. 次の PowerShell コマンドを使用して、Azure アカウントにサインインします。

    $TenantId = "<TenantId>"
    Connect-AzAccount -Tenant $TenantId
    
  3. セットアップ スクリプトを実行して、次の操作を実行します。

    • 必要な Az モジュールをインストールします。
    • 修復ユーザー割り当てマネージド ID を設定します。
    • ユーザー設定に基づく使用状況テレメトリ収集のためオンボードの詳細を確認して収集します。
    • リソース グループを作成または更新します。
    • 割り当てられたマネージド ID を使用してリソースを作成または更新します。
    • 監視ダッシュボードを作成または更新します。
    • ターゲット スコープを構成します。
    $SetupInstallation = Install-AzTSMMARemovalUtilitySolutionConsolidated `
             -RemediationIdentityHostSubId <MIHostingSubId> `
             -RemediationIdentityHostRGName <MIHostingRGName> `
             -RemediationIdentityName <MIName> `
             -TargetSubscriptionIds @("<SubId1>","<SubId2>","<SubId3>") `
             -TargetManagementGroupNames @("<MGName1>","<MGName2>","<MGName3>") `
             -TenantScope `
             -SubscriptionId <HostingSubId> `
             -HostRGName <HostingRGName> `
             -Location <Location> `
             -AzureEnvironmentName <AzureEnvironmentName>
    

    スクリプトには、次のパラメーターが含まれています。

    パラメーター名 説明 必須
    RemediationIdentityHostSubId 修復リソースを作成するためのサブスクリプション ID。 はい
    RemediationIdentityHostRGName 修復を作成するための新しいリソース グループ名。 既定値は AzTS-MMARemovalUtility-RG です。 いいえ
    RemediationIdentityName 修復マネージド ID の名前。 はい
    TargetSubscriptionIds 実行対象のターゲット サブスクリプション ID の一覧。 いいえ
    TargetManagementGroupNames 実行対象のターゲット管理グループ名の一覧。 いいえ
    TenantScope テナント ID を使用してロールを割り当てるためのテナント スコープ。 いいえ
    SubscriptionId セットアップがインストールされているサブスクリプションの ID。 はい
    HostRGName 修復マネージド ID が作成される新しいリソース グループの名前。 既定値は AzTS-MMARemovalUtility-Host-RG です。 いいえ
    Location セットアップが作成される場所ドメイン コントローラー。 既定値は EastUS2 です。 いいえ
    AzureEnvironmentName ソリューションがインストールされている Azure 環境 (AzureCloud または AzureGovernmentCloud)。 既定値は AzureCloud です。 いいえ

ユーティリティを実行する

Update-AzTSMMARemovalUtilityDiscoveryTrigger ` 
    -SubscriptionId <HostingSubId> `
    -ResourceGroupName <HostingRGName> `
    -StartScopeResolverAfterMinutes 60 `
    -StartExtensionDiscoveryAfterMinutes 30 

スクリプトには、次のパラメーターが含まれています。

パラメーター名 説明 必須
SubscriptionId ユーティリティをインストールしたサブスクリプションの ID。 はい
ResourceGroupName ユーティリティをインストールしたリソース グループの名前。 はい
StartScopeResolverAfterMinutes リゾルバーを実行する前に待機する時間 (分)。 はい (-StartScopeResolverImmediately と同時には指定できません)
StartScopeResolverImmediately リゾルバーを直ちに実行するインジケーター。 はい (-StartScopeResolverAfterMinutes と同時には指定できません)
StartExtensionDiscoveryAfterMinutes 検出の実行を待機する時間 (分)。リーゾルバーの完了後の時間を指定する必要があります。 はい (-StartExtensionDiscoveryImmediatley と同時には指定できません)
StartExtensionDiscoveryImmediatley 拡張機能の検出をすぐに実行するインジケーター。 はい (-StartExtensionDiscoveryAfterMinutes と同時には指定できません)