

• AWS Systems Manager CloudWatch ダッシュボードは、2026 年 4 月 30 日以降は利用できなくなります。お客様は、これまでと同様に Amazon CloudWatch コンソールを使用して、Amazon CloudWatch ダッシュボードの表示、作成、管理を継続できます。詳細については、「[Amazon CloudWatch ダッシュボードのドキュメント](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)」を参照してください。

# MOF ファイルを実行する関連付けの作成
<a name="systems-manager-state-manager-using-mof-file"></a>

Managed Object Format (MOF) ファイルを実行すると、`AWS-ApplyDSCMofs` SSM ドキュメントを使用して、AWS Systems Manager のツールである State Manager によって Windows Server マネージドノードにターゲット状態を適用できます。`AWS-ApplyDSCMofs` ドキュメントには 2 つの実行モードがあります。最初のモードでは関連付けを設定して、マネージドノードが特定の MOF ファイルで定義されている目的の状態であるかどうかをスキャンおよびレポートできます。2 番目のモードでは MOF ファイルを実行して、MOF ファイルで定義されているリソースやその値に基づいてノードの設定を変更できます。`AWS-ApplyDSCMofs` ドキュメントを使用すると、Amazon Simple Storage Service (Amazon S3)、ローカル共有、または HTTPS ドメインを持つ安全なウェブサイトから MOF 設定ファイルをダウンロードして実行できます。

State Manager は、各関連付け実行中の各 MOF ファイルの実行状態を記録、報告します。State Manager はコンプライアンスイベントとして各 MOF ファイルの出力実行も報告し、[AWS Systems Manager Compliance](https://console.aws.amazon.com/systems-manager/compliance) ページで確認できます。

MOF ファイルの実行は、Windows PowerShell Desired State Configuration (PowerShell DSC) で構築されています。PowerShell DSC は、Windows システムの設定、デプロイ、および管理で使用される宣言型のプラットフォームです。PowerShell DSC を使用すると、管理者は DSC 設定と呼ばれる、シンプルなテキストドキュメントで、サーバーの設定方法を記述できます。PowerShell DSC 設定は、何をするかを示しますがどうやって行うかは説明していない特殊な PowerShell スクリプトです。設定を実行すると MOF ファイルが生成されます。MOF ファイルは、1 台以上のサーバーに適用でき、それらのサーバーに必要な設定がなされています。PowerShell DSC リソースは実際の設定を強制する作業を行います。詳細については、「[Windows PowerShell Desired State Configuration の概要](https://download.microsoft.com/download/4/3/1/43113F44-548B-4DEA-B471-0C2C8578FBF8/Quick_Reference_DSC_WS12R2.pdf)」を参照してください。

**Topics**
+ [Amazon S3 を使用してアーティファクトを保存する](#systems-manager-state-manager-using-mof-file-S3-storage)
+ [MOF ファイルで認証情報を解決する](#systems-manager-state-manager-using-mof-file-credentials)
+ [MOF ファイルでトークンを使用する](#systems-manager-state-manager-using-mof-file-tokens)
+ [MOF ファイルを実行する関連付けを作成するための前提条件](#systems-manager-state-manager-using-mof-file-prereqs)
+ [MOF ファイルを実行する関連付けの作成](#systems-manager-state-manager-using-mof-file-creating)
+ [MOF ファイルを実行する関連付けを作成する際の問題のトラブルシューティング](#systems-manager-state-manager-using-mof-file-troubleshooting)
+ [DSC リソースコンプライアンスの詳細の表示](#systems-manager-state-manager-viewing-mof-file-compliance)

## Amazon S3 を使用してアーティファクトを保存する
<a name="systems-manager-state-manager-using-mof-file-S3-storage"></a>

Amazon S3 を使用して PowerShell モジュール、MOF ファイル、コンプライアンスレポート、またはステータスレポートを保存している場合、AWS Systems Manager SSM Agent で使用される AWS Identity and Access Management (IAM) ロールには、バケットに対する `GetObject` および `ListBucket` 許可が必要です。これらのアクセス許可を指定しない場合、システムにより「*アクセスが拒否されました*」エラーが返されます。Amazon S3 でのアーティファクトの保存に関する重要な情報を次に示します。
+ バケットが他の AWS アカウント にある場合は、アカウント (または IAM ロール) に `GetObject` および `ListBucket` アクセス許可を付与するバケットリソースポリシーを作成します。
+ カスタム DSC リソースを使用する場合は、Amazon S3 バケットからこれらのリソースをダウンロードできます。PowerShell ギャラリーから自動的にインストールすることもできます。
+ Amazon S3 をモジュールのソースとして使用している場合は、{{ModuleName}}\_{{ModuleVersion}}.zip という大文字と小文字が区別される形式の Zip ファイルとしてモジュールをアップロードします。例: MyModule\_1.0.0.zip。
+ すべてのファイルは、バケットルートに存在する必要があります。フォルダ構造はサポートされていません。

## MOF ファイルで認証情報を解決する
<a name="systems-manager-state-manager-using-mof-file-credentials"></a>

認証情報は [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/) または [AWS Systems Manager Parameter Store](systems-manager-parameter-store.md) を使用して解決されます。これにより、認証情報の自動更新を設定します。これにより、DSC は MOF を再デプロイせずに、サーバーに認証情報を自動的に伝達することもできます。

設定で AWS Secrets Manager シークレットを使用するには、ユーザー名は認証情報が含まれるシークレットの SecretId または SecretARN で、PSCredential オブジェクトを作成します。パスワードには任意の値を指定できます。値は無視されます。次に例を示します。

```
Configuration MyConfig
{
   $ss = ConvertTo-SecureString -String '{{a_string}}' -AsPlaintext -Force
   $credential = New-Object PSCredential('{{a_secret_or_ARN}}', $ss)

    Node localhost
    {
       File {{file_name}}
       {
           DestinationPath = 'C:\MyFile.txt'
           SourcePath = '\\{{FileServer}}\{{Share}}\{{MyFile}}.txt'
           Credential = $credential
       }
    }
}
```

設定データの PsAllowPlaintextPassword 設定を使用して、MOF をコンパイルします。認証情報にはラベルのみが含まれているため、これは問題ありません。

Secrets Manager で、IAM 管理ポリシー、および必要に応じて Secret Resource Policy (存在する場合) で GetSecretValue アクセス権がノードにあることを確認します。DSC を使用するには、シークレットは次の形式である必要があります。

```
{ 'Username': '{{a_name}}', 'Password': '{{a_password}}' }
```

このシークレットには、他のプロパティ (ローテーションに使用されるプロパティなど) を含められますが、少なくともユーザー名とパスワードのプロパティが必要です。

ここで、2 つの異なるをユーザー名とパスワードを持ち、ローテーション AWS Lambda 関数間で反転するマルチユーザーローテーションメソッドを使用することをお勧めします。この方法では、ローテーション中にユーザーをロックするリスクを排除しつつ複数のアクティブなアカウントを持てます。

## MOF ファイルでトークンを使用する
<a name="systems-manager-state-manager-using-mof-file-tokens"></a>

トークンを使用すると、MOF をコンパイルした*後*にリソースプロパティ値を変更することもできます。これにより、類似の設定を必要とする複数のサーバーで共通の MOF ファイルを再利用できます。

トークン置換は、`String` 型のリソースプロパティに対してのみ機能します。ただし、リソースにネストされた CIM ノードプロパティがある場合、その CIM ノードの `String` プロパティからもトークンを解決します。数字または配列にはトークン置換を使用することはできません。

たとえば、xComputerManagement リソースを使用している場合に、DSC を使用してコンピュータの名前を変更するシナリオを考えてみましょう。通常はそのマシン専用の MOF ファイルが必要になります。ただし、トークンのサポートにより、単一の MOF ファイルを作成して、すべてのノードに適用できます。`ComputerName` プロパティでは、コンピュータ名を MOF にハードコーディングする代わりに、インスタンスタグタイプトークンを使用できます。この値は MOF 解析中に解決されます。次の例を参照してください。

```
Configuration {{MyConfig}}
{
    xComputer Computer
    {
        ComputerName = '{tag:ComputerName}'
    }
}
```

次に、Systems Manager コンソールのマネージドノード、または Amazon EC2 コンソールの Amazon Elastic Compute Cloud (Amazon EC2) タグのいずれかに、タグを設定します。ドキュメントを実行すると、スクリプトは {tag:ComputerName} トークンをインスタンスタグの値に置き換えます。

次の例に示すように、複数のタグを 1 つのプロパティに結合することもできます。

```
Configuration {{MyConfig}}
{
    File MyFile
    {
        DestinationPath = '{env:TMP}\{tag:ComputerName}'
        Type = 'Directory'
    }
}
```

トークンは、以下の 5 種類を使用できます。
+ **タグ**: Amazon EC2 またはマネージドノードタグ。
+ **tagb64**: これはタグと同じですが、システムは base64 を使用して値をデコードします。これによりタグの値に特殊文字を使用できます。
+ **env**: 環境変数を解決します。
+ **ssm**: Parameter Store 値。String 型および SecureString 型のみサポートされています。
+ **tagssm**: これはタグと同じですが、ノードにタグが設定されていない場合、システムは、同じ名前の Systems Manager パラメータから値を解決しようとします。これが便利なのは、"デフォルトのグローバル値" が必要だが、1 つのノード (例えば、1 ボックスのデプロイ) で上書きできるようにする場合です。

`ssm` トークンタイプを使用する Parameter Store の例を以下に示します。

```
File MyFile
{
    DestinationPath = "C:\ProgramData\ConnectionData.txt"
    Content = "{ssm:%servicePath%/ConnectionData}"
}
```

トークンは MOF ファイルを一般的かつ再利用可能にすることで、冗長性のあるコードを削減する上で重要な役割を果たします。サーバー固有の MOF ファイルを避けられる場合は、MOF 構築サービスは必要ありません。MOF 構築サービスを使用すると、MOF がコンパイルされたときにビルドサーバーにインストールされているモジュールバージョンが異なるため、コストが増大し、プロビジョニング時間が遅くなり、グループ化されたノード間の設定がずれるリスクが増大します。

## MOF ファイルを実行する関連付けを作成するための前提条件
<a name="systems-manager-state-manager-using-mof-file-prereqs"></a>

MOF ファイルを実行する関連付けを作成する前に、マネージドノードが次の前提条件を満たしていることを確認します。
+ Windows PowerShell バージョン 5.0 以降。詳細については、Microsoft.com の「[Windows PowerShell のシステム要件](https://docs.microsoft.com/en-us/powershell/scripting/install/windows-powershell-system-requirements?view=powershell-6)」を参照してください。
+ [AWS Tools for Windows PowerShell](https://aws.amazon.com/powershell/) バージョン 3.3.261.0 以降
+ SSM Agent バージョン 2.2 以降。

## MOF ファイルを実行する関連付けの作成
<a name="systems-manager-state-manager-using-mof-file-creating"></a>

**MOF ファイルを実行する関連付けを作成するには**

1. AWS Systems Manager コンソール ([https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)) を開きます。

1. ナビゲーションペインで、**[State Manager]** を選択します。

1. [**State Manager**] を選択してから、[**関連付けの作成**] を選択します。

1. [**Name (名前)**] フィールドで名前を指定します。これはオプションですが推奨されます。名前は、関連付け作成時の目的を理解する助けになります。名前にはスペースを使用できません。

1. [**Document (ドキュメント)**] リストで、[**`AWS-ApplyDSCMofs`**] を選択します。

1. [**Parameters (パラメータ)**] セクションで、必須およびオプションの入力パラメータを選択して指定します。

   1. [**Mofs To Apply (適用する Mof)**]: この関連付けが実行されるときに実行する 1 つまたは複数の MOF ファイルを指定します。MOF ファイルのリストを区切るには、カンマを使用します。Systems Manager は、MOF ファイルのリストを反復処理し、カンマ区切りのリストで指定された順序で実行します。
      + Amazon S3 バケット名。バケット名には小文字を使用する必要があります。以下の形式を使用して、この情報を指定できます。

        ```
        s3:{{amzn-s3-demo-bucket}}:{{MOF_file_name}}.mof
        ```

        AWS リージョン を指定する場合は、次の形式を使用します。

        ```
        s3:{{bucket_Region}}:{{amzn-s3-demo-bucket}}:{{MOF_file_name}}.mof
        ```
      + 安全なウェブサイト。以下の形式を使用して、この情報を指定できます。

        ```
        https://{{domain_name}}/{{MOF_file_name}}.mof
        ```

        以下はその例です。

        ```
        https://www.example.com/TestMOF.mof
        ```
      + ローカル共有のファイルシステム。以下の形式を使用して、この情報を指定できます。

        ```
        \{{server_name}}\{{shared_folder_name}}\{{MOF_file_name}}.mof
        ```

        以下はその例です。

        ```
        \StateManagerAssociationsBox\MOFs_folder\MyMof.mof
        ```

   1. [**Service Path (サービスパス)**]: (オプション) サービスパスは、レポートおよびステータス情報を書き込む Amazon S3 バケットのプレフィックスです。または、サービスパスは、Parameter Store パラメータベースのタグのパスです。パラメータベースのタグを解決する場合、システムは {ssm:%servicePath%/{{parameter\_name}}} を使用して servicePath 値をパラメータ名に挿入します。たとえば、サービスパスが "WebServers/Production" の場合、システムはパラメータを WebServers/Production/{{parameter\_name}} として解決します。これは、同じアカウントで複数の環境を実行している場合に便利です。

   1. [**Report Bucket Name (レポートバケット名)**]: (オプション) コンプライアンスデータを書き込む Amazon S3 バケットの名前を入力します。レポートは JSON 形式で、このバケットに保存されます。
**注記**  
バケット名の前に、バケットが配置されているリージョンのプレフィックスを付けることができます。例: us-west-2:MyMOFBucket。us-east-1 を含まない特定のリージョンの Amazon S3 エンドポイントのプロキシを使用している場合、バケット名にリージョンのプレフィックスを付けます。バケット名にプレフィックスがない場合は、us-east-1 エンドポイントを使用してバケットリージョンが自動的に検出されます。

   1. **Mof Operation Mode**: **`AWS-ApplyDSCMofs`** の関連付けを実行するときの State Manager の動作を選択します。
      + **[Apply]** (適用): 準拠していないノード設定を修正します。
      + **[ReportOnly]**: ノードの設定を修正しませんが、代わりにすべてのコンプライアンスデータをログに記録し、準拠していないノードをレポートします。

   1. [**Status Bucket Name (ステータスバケット名)**]: (オプション) MOF 実行ステータス情報を書き込む Amazon S3 バケットの名前を入力します。これらのステータスレポートは、最新のコンプライアンスを実行したノードのシングルトンの概要です。つまり、次回関連付けが MOF ファイルで実行されるとレポートが上書きされることを意味します。
**注記**  
バケット名の前に、バケットが配置されているリージョンのプレフィックスを付けることができます。例えば、`us-west-2:amzn-s3-demo-bucket` のようにします。us-east-1 を含まない特定のリージョンの Amazon S3 エンドポイントのプロキシを使用している場合、バケット名にリージョンのプレフィックスを付けます。バケット名のプレフィックスが付いていない場合、us-east-1 エンドポイントを使用してバケットリージョンが自動的に検出されます。

   1. [**Module Source Bucket Name (モジュールソースバケット名)**]: (オプション) PowerShell モジュールファイルが格納されている Amazon S3 バケットの名前を入力します。[**None**] (なし) を指定した場合、次のオプションの [**Allow PS Gallery Module Source**] (PS ギャラリーモジュールソースを許可) で [**True**] を選択します。
**注記**  
バケット名の前に、バケットが配置されているリージョンのプレフィックスを付けることができます。例えば、`us-west-2:amzn-s3-demo-bucket` のようにします。us-east-1 を含まない特定のリージョンの Amazon S3 エンドポイントのプロキシを使用している場合、バケット名にリージョンのプレフィックスを付けます。バケット名のプレフィックスが付いていない場合、us-east-1 エンドポイントを使用してバケットリージョンが自動的に検出されます。

   1. [**Allow PS Gallery Module Source**]: (オプション) [https://www.powershellgallery.com/](https://www.powershellgallery.com/) から PowerShell モジュールをダウンロードする場合は **True** を選択します。[**False**] を選択した場合、前のオプション [**ModuleSourceBucketName**] のソースを指定します。

   1. [**Proxy Uri**]: (オプション) このオプションを使用して、プロキシサーバーから MOF ファイルをダウンロードします。

   1. [**Reboot Behavior**]: (オプション) MOF ファイルの実行に再起動が必要な場合は、以下のいずれかの再起動の動作を指定します。
      + **[AfterMof]**: すべての MOF の実行完了後にノードを再起動します。複数の MOF 実行が再起動をリクエストしても、システムはすべての MOF 実行が完了して再起動するまで待機します。
      + **[Immediately]** (即時): MOF 実行がリクエストするたびにノードを再起動します。再起動をリクエストする複数の MOF ファイルを実行する場合、ノードは複数回再起動します。
      + [**Never**] (しない): MOF 実行が明示的に再起動をリクエストしても、ノードは再起動されません。

   1. [**Use Computer Name For Reporting**] (レポートにコンピュータの名前を使用): (オプション) このオプションを有効にすると、コンプライアンス情報をレポートするときにコンピュータの名前を使用します。デフォルト値は **[false]** です。つまり、システムはコンプライアンス情報をレポートするときにノード ID を使用します。

   1. [**Enable VerboseLogging**] (VerboseLogging を有効にする): (オプション) 初めての MOF ファイルのデプロイ時には、詳細ログ記録を有効にすることをお勧めします。
**重要**  
詳細ログ記録を有効にすると、標準の関連付けの実行ログ記録より多くのデータを Amazon S3 バケットに書き込みます。その結果、パフォーマンスが低下し、Amazon S3 のストレージ費用が増加する場合があります。ストレージサイズの問題を軽減するには、Amazon S3 バケットに対してライフサイクルポリシーを有効にすることをお勧めします。詳細については、*Amazon Simple Storage Service ユーザーガイド*の「[S3 バケットのライフサイクルポリシーを作成する方法を教えてください](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-lifecycle.html)」を参照してください。

   1. [**Enable Debug Logging**] (デバッグログの有効化): (オプション) MOF 障害のトラブルシューティングを行うために、デバッグログを有効にすることをお勧めします。また、通常の使用ではこのオプションを非アクティブ化することをお勧めします。
**重要**  
デバッグログ記録を有効にすると、標準の関連付けの実行ログ記録より多くのデータを Amazon S3 バケットに書き込みます。その結果、パフォーマンスが低下し、Amazon S3 のストレージ費用が増加する場合があります。ストレージサイズの問題を軽減するには、Amazon S3 バケットに対してライフサイクルポリシーを有効にすることをお勧めします。詳細については、*Amazon Simple Storage Service ユーザーガイド*の「[S3 バケットのライフサイクルポリシーを作成する方法を教えてください](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-lifecycle.html)」を参照してください。

   1. [**Compliance Type (コンプライアンスタイプ)**]: (オプション) コンプライアンス情報をレポートするときに使用するコンプライアンスタイプを指定します。デフォルトのコンプライアンスタイプは [**Custom:DSC**] です。MOF ファイルを実行する複数の関連付けを作成する場合は、各関連付けに異なるコンプライアンスタイプを指定します。指定していない場合、[**Custom:DSC**] を使用する追加の各関連付けが既存のコンプライアンスデータを上書きします。

   1. [**Pre Reboot Script**]: (オプション) 再起動が必要な設定がある場合に実行するスクリプトを指定します。再起動する前に、スクリプトが実行されます。このスクリプトは 1 行にする必要があります。追加の行はセミコロンで区切ります。

1. [**Targets (ターゲット)**] セクションで、[**タグの指定**] または [**インスタンスの手動選択**] を選択します。タグを使用してターゲットリソースを選択した場合は、タグキーとタグ値をフィールドに入力します。ターゲットの使用の詳細については、「[State Manager 関連付けのターゲットとレート制御について](systems-manager-state-manager-targets-and-rate-controls.md)」を参照してください。

1. [**Specify schedule (スケジュールの指定)**] セクションで、[**On Schedule (スケジュールあり)**] または [**No schedule (スケジュールなし)**] を選択します。[**On Schedule (スケジュールあり)**] を選択した場合、関連付けの cron または rate スケジュールを作成するためのボタンを使用します。

1. [**Advanced options (アドバンスドオプション)**] セクションで、以下の操作を行います。
   + [**Compliance severity (コンプライアンスの重要度)**] で、関連付けの重要度レベルを選択します。コンプライアンスレポートには、ここで指定した重要度と共に関連付けの状態が準拠しているか準拠していないかが表示されます。詳細については、「[State Manager 関連付けのコンプライアンスについて](compliance-about.md#compliance-about-association)」を参照してください。

1. **[Rate control]** (レート制御) セクションで、マネージドノードのフリート全体の State Manager 関連付けを実行するためのオプションを設定します。これらのパラメータの詳細については、[State Manager 関連付けのターゲットとレート制御について](systems-manager-state-manager-targets-and-rate-controls.md)を参照してください。

   [**Concurrency (同時実行数)**] セクションでオプションを選択します。
   + [**targets (ターゲット)**] を選択して、関連付けを同時に実行できるターゲットの絶対数を入力します。
   + [**percentage (パーセント値)**] を選択して、関連付けを同時に実行できるターゲットセットのパーセント値を入力します。

   [**Error threshold (エラーのしきい値)**] セクションでオプションを選択します。
   + State Manager が追加ターゲットでの関連付けの実行を停止する前に、[**errors (エラー)**] を選択して許可されるエラーの絶対数を入力します。
   + State Manager が追加ターゲットでの関連付けの実行を停止する前に、[**percentage (パーセンテージ)**] を選択して許可されるエラーの割合を入力します。

1. (オプション) [**出力オプション**] で、コマンド出力をファイルに保存するには、[**S3 への出力の書き込みを有効にします**] ボックスをオンにします。ボックスにバケット名とプレフィックス (フォルダ) 名を入力してください。
**注記**  
S3 バケットにデータを書き込む機能を許可する S3 アクセス許可は、このタスクを実行する IAM ユーザーのものではなく、マネージドノードに割り当てられたインスタンスプロファイルのものです。詳細については、「[Systems Manager に必要なインスタンスのアクセス許可を設定する](setup-instance-permissions.md)」または「[ハイブリッド環境に IAM サービスロールを作成する](hybrid-multicloud-service-role.md)」を参照してください。さらに、指定された S3 バケットが別の AWS アカウント にある場合は、マネージドノードに関連付けられたインスタンスプロファイルまたは IAM サービスロールに、そのバケットへの書き込みに必要なアクセス許可があることを確認してください。

1. **[関連付けの作成]** を選択します。

State Manager は、指定されたノードまたはターゲットで関連付けを作成してすぐに実行します。最初の実行後、関連付けは定義したスケジュールと以下のルールに従って間隔を空けて実行されます。
+ State Manager は、期間の開始時にオンラインのノードには関連付けを実行し、オフラインのノードはスキップします。
+ State Manager は、期間中に設定されたすべてのノードで関連付けを実行しようとします。
+ 期間中に関連付けが実行されない場合 (例えば、同時実行値によって一度に関連付けを処理できるノード数が制限されたため)、State Manager は次の期間に関連付けを実行しようとします。
+ State Manager は、すべてのスキップされた間隔の履歴を記録します。[**Execution History (実行履歴)**] タブで履歴を表示できます。

**注記**  
`AWS-ApplyDSCMofs` は、Systems Manager のコマンドドキュメントです。つまり、AWS Systems Manager のツールである Run Command を使用してこのドキュメントを実行することもできます。詳細については、「[AWS Systems Manager Run Command](run-command.md)」を参照してください。

## MOF ファイルを実行する関連付けを作成する際の問題のトラブルシューティング
<a name="systems-manager-state-manager-using-mof-file-troubleshooting"></a>

このセクションには、MOF ファイルを実行する関連付けの作成に関する問題のトラブルシューティングに役立つ情報が収められています。

**拡張ログ記録を有効にする**  
トラブルシューティングの最初のステップとして、拡張ログ記録を有効にします。具体的には次の操作を行います。

1. 関連付けが Amazon S3 または Amazon CloudWatch Logs (CloudWatch) のいずれかにコマンド出力を書き込むように設定されていることを確認します。

1. [**Enable Verbose Logging (詳細ログ記録の有効化)**] パラメータを True に設定します。

1. [**Enable Debug Logging (デバッグログの有効化)**] パラメータを True に設定します。

詳細とデバッグのログ記録をオンにすると、[**Stdout**] 出力ファイルにはスクリプトの実行に関する詳細が含まれます。この出力ファイルは、失敗したスクリプトを特定するの役立ちます。[**Stderr**] 出力ファイルにはスクリプトの実行中に発生したエラーが含まれています。

**MOF ファイルを実行する関連付けの作成する際のよくある問題**  
このセクションでは、MOF ファイルを実行する関連付けを作成する際に発生する可能性のある一般的な問題の情報と、これらの問題をトラブルシューティングする手順を説明します。

**MOF が適用されませんでした**  
State Manager がノードへの関連付けの適用に失敗した場合は、まず **Stderr** 出力ファイルを確認します。このファイルは、問題の根本的な原因を理解する助けになります。また、以下についても確認してください。
+ ノードに、MOF に関連するすべての Amazon S3 バケットに必要なアクセス許可があること。具体的には次のとおりです。
  + [**s3:GetObject permissions**]: これはプライベート Amazon S3 バケット内の MOF ファイルおよび Amazon S3 バケット内のカスタムモジュールに必要です。
  + [**s3:PutObject permission**]: これはコンプライアンスレポートおよびコンプライアンスのステータスを Amazon S3 バケットに書き込むために必要です。
+ タグを使用している場合は、ノードに必要な IAM ポリシーがあることを確認します。タグを使用するには、インスタンスの IAM ロールに `ec2:DescribeInstances` および `ssm:ListTagsForResource` アクションを許可するポリシーが必要です。
+ ノードに想定されているタグ、または SSM パラメータが割り当てられていることを確認します。
+ タグまたは SSM パラメータが間違っていないことを確認します。
+ MOF をノードでローカルに適用してみて、MOF ファイル自体に問題はないことを確認します。

**MOF が失敗したように見えたが、Systems Manager の実行は成功した**  
`AWS-ApplyDSCMofs` ドキュメントが正常に実行された場合、Systems Manager の実行ステータスには [**Success (成功)**] と表示されます。このステータスには、MOF ファイルの設定要件に対するノードのコンプライアンスステータスは反映されていません。ノードのコンプライアンスステータスを確認するには、コンプライアンスレポートを確認します。JSON レポートは、Amazon S3 Report Bucket で表示できます。これは、Run Command および State Manager の実行に適用されます。また、State Manager の場合は、[Systems Manager Compliance] ページでコンプライアンスの詳細を表示できます。

**Stderr states: サービスに到達した際の名前解決の失敗**  
このエラーは、スクリプトがリモートサービスに到達できないことを示しています。ほとんどの場合、スクリプトは Amazon S3 に到達できません。この問題は、スクリプトがドキュメントパラメータで指定されている Amazon S3 バケットにコンプライアンスレポートまたはコンプライアンスステータスを書き込もうとするときによく発生します。通常、このエラーはコンピューティング環境で許可リストが含まれるファイアウォールまたは透過プロキシを使用したときに発生します。この問題を解決するには。
+ すべての Amazon S3 バケットのパラメータにリージョン固有のバケット構文を使用します。たとえば、[**Mofs to Apply**] パラメータは次の形式にする必要があります。

  s3:{{bucket-region}}:{{amzn-s3-demo-bucket}}:{{mof-file-name}}.mof。

  以下はその例です。` s3:us-west-2:amzn-s3-demo-bucket:my-mof.mof`

  レポート、ステータス、およびモジュールのソースバケット名は次の形式にする必要があります。

  {{bucket-region}}:{{amzn-s3-demo-bucket}}。次に例を示します。`us-west-1:amzn-s3-demo-bucket;`
+ リージョン固有の構文でも問題が解決しない場合は、ターゲットのノードが希望するリージョンの Amazon S3 にアクセスできることを確認します。これを確認するには。

  1. 適切な Amazon S3 リージョンで、Amazon S3 のエンドポイント名を見つけます。詳細については、「Amazon Web Services 全般のリファレンス」の「[Amazon S3 サービスエンドポイント](https://docs.aws.amazon.com/general/latest/gr/s3.html#s3_region)」を参照してください。

  1. ターゲットノードにログオンして、次の ping コマンドを実行します。

     ```
     ping s3.{{s3-region}}.amazonaws.com
     ```

     ping が失敗した場合は、Amazon S3 がダウンしているか、ファイアウォール/透過プロキシが Amazon S3 のリージョンへのアクセスをブロックしているか、ノードがインターネットにアクセスできないかのいずれかです。

## DSC リソースコンプライアンスの詳細の表示
<a name="systems-manager-state-manager-viewing-mof-file-compliance"></a>

Systems Manager は、`AWS-ApplyDSCMofs` ドキュメントを実行したときに指定した Amazon S3 **Status Bucket** に DSC リソース障害に関するコンプライアンス情報をキャプチャします。Amazon S3 バケット内の DSC リソース障害に関する情報を検索するには、時間がかかる場合があります。代わりに、この情報を [**Systems Manager Compliance**] ページで表示できます。

[**コンプライアンスリソースの概要**] セクションには、失敗したリソース数が表示されます。次の例では、[**ComplianceType**] は [**Custom:DSC**] であり、1 つのリソースは準拠していません。

**注記**  
カスタム: DSC は、`AWS-ApplyDSCMofs` ドキュメントのデフォルトの **ComplianceType** 値です。この値はカスタマイズすることができます。

![[コンプライアンス] ページの [コンプライアンスリソースの概要] セクションのカウントの表示。](http://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/images/state-manager-mof-detailed-status-3.png)


[**Details overview for resources**] (リソースの詳細概要) セクションには、非準拠の DSC リソースを含む AWS リソースに関する情報が表示されます。このセクションには、MOF 名、スクリプト実行ステップ、および (該当する場合) 詳細な状況情報を表示するための [**View output (出力の表示)**] リンクも含まれています。

![MOF 実行リソースの障害に関するコンプライアンス詳細の表示](http://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/images/state-manager-mof-detailed-status-1.png)


[**出力の表示**] リンクには、詳細ステータスの最後の 4,000 文字が表示されます。Systems Manager は、最初の要素としてまず例外を表示した後、詳細メッセージを検索して、4,000 文字のクォータに達するまで先頭に追加して表示します。このプロセスでは、例外がスローされる前に出力されたログメッセージが表示されます。表示されるメッセージは、トラブルシューティングに最もよく関連しています。

![MOF リソースコンプライアンス問題の詳細出力の表示](http://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/images/state-manager-mof-detailed-status-2.png)


コンプライアンス情報の表示方法については、「[AWS Systems Manager のコンプライアンス](systems-manager-compliance.md)」を参照してください。

**コンプライアンスレポートに影響する状況**  
State Manager の関連付けに失敗した場合、準拠データは報告されません。具体的には、MOF で処理できない場合は関連付けに失敗するため、Systems Manager はコンプライアンス項目をレポートしません。例えば、ノードにアクセス許可が付与されていない Amazon S3 バケットの MOF を Systems Manager でダウンロードしようとすると、関連付けは失敗し、コンプライアンスデータはレポートされません。

2 つめの MOF のリソースに失敗した場合、Systems Manager はコンプライアンスデータをレポート*しません*。例えば、MOF が存在しないドライブにファイルを作成しようとすると、`AWS-ApplyDSCMofs` ドキュメントは完全に処理できるため、Systems Manager は準拠をレポートします。これは、関連付けが正常に実行されたことを意味します。