

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

# State Manager の仕組みについて
<a name="state-manager-about"></a>

AWS Systems Manager のツールである State Manager は、[ハイブリッドおよびマルチクラウド](operating-systems-and-machine-types.md#supported-machine-types)インフラストラクチャ内のマネージドノードを定義した状態に維持するプロセスを自動化する、安全でスケーラブルなサービスです。

State Manager の仕組みを以下に示します。

**1. AWS リソースに適用する状態を決定します。**  
マネージドノードが、アンチウイルスやマルウェアのアプリケーションなど、特定のアプリケーションを使用して設定されるようにしたいですか? SSM Agent、または `AWSPVDriver` などの他の AWS パッケージを更新するプロセスを自動化しますか? 特定のポートが確実に閉じられている、または開かれているようにする必要がおありですか? State Manager の使用を開始するには、AWS リソースに適用する状態を決定します。適用する状態では、どの SSM ドキュメントを使用して State Manager の関連付けを作成するか決定します。  
State Manager *関連付け* とは、AWS リソースに割り当てる設定です。この設定では、リソースで維持したい状態を定義します。例えば、関連付けでは、アンチウイルスソフトウェアがマネージドノードにインストールされて実行されている必要があることや、特定のポートを閉じる必要があることなどを指定できます。  
関連付けでは、設定を適用するスケジュールと、関連付けのターゲットを指定します。例えば、アンチウイルスソフトウェアに関する関連付けが AWS アカウントのすべてのマネージドノードで 1 日に 1 回実行されるとします。ソフトウェアがノードにインストールされていない場合、関連付けによって State Manager にインストールするように指示することができます。ソフトウェアがインストールされていてもサービスが実行されていない場合、関連付けによって State Manager にサービスを開始するように指示することができます。

**2. 事前設定された SSM ドキュメントが、AWS リソースで目的の状態の作成に役立つかどうかを確認します。**  
Systems Manager には、関連付けの作成に使用できる事前設定された SSM ドキュメントが何十も含まれています。事前設定されたドキュメントでは、アプリケーションのインストール、Amazon CloudWatch の設定、AWS Systems Manager Automation の実行、PowerShell および Shell スクリプトの実行、マネージドノードを Active Directory のディレクトリサービスドメインに結合することなどの一般的なタスクがすぐに実行できるようになっています。  
[Systems Manager コンソール](https://console.aws.amazon.com/systems-manager/documents)ですべての SSM ドキュメントを表示できます。ドキュメントの名前を選択して各ドキュメントの詳細について確認します。ここでは、[https://console.aws.amazon.com/systems-manager/documents/AWS-ConfigureAWSPackage/description](https://console.aws.amazon.com/systems-manager/documents/AWS-ConfigureAWSPackage/description) と [https://console.aws.amazon.com/systems-manager/documents/AWS-InstallApplication/description](https://console.aws.amazon.com/systems-manager/documents/AWS-InstallApplication/description) の 2 つの例を示します。

**3. 関連付けを作成します。**  
関連付けは、Systems Manager コンソール、AWS Command Line Interface (AWS CLI)、AWS Tools for Windows PowerShell (Tools for Windows PowerShell)、または Systems Manager API を使用して作成できます。関連付けを作成するときは、以下の情報を指定します。  
+ 関連付けの名前。
+ SSM ドキュメントのパラメータ (例えば、インストールするアプリケーションへのパス、またはノードで実行するスクリプト)。
+ 関連付けのターゲット。マネージドノードをターゲットにするには、タグを指定するか、個々のノード ID を選択するか、AWS Resource Groups でグループを選択します。現在の AWS リージョン と AWS アカウント 内にある*すべて*のマネージドノードをターゲットにすることもできます。ターゲットに 1,000 個を超えるノードが含まれている場合、システムは 1 時間ごとのスロットリングメカニズムを使用します。これは、ステータス集計プロセスが 1 時間ごとに実行され、ノードの実行ステータスが変更された場合にのみ更新されるため、集計されたステータスのカウントに不正確さが生じる可能性があることを意味します。
+ ユーザーに代わってアクションを実行するために、関連付けによって使用されるロール。ステートマネージャーはこのロールを引き受け、設定をノードにディスパッチするときに必要な API を呼び出します。カスタム提供のロールについては、「[`AssociationDispatchAssumeRole` 用のロールのセットアップ](#setup-assume-role)」を参照してください。ロールが指定されていない場合は、[Systems Manager のサービスにリンクされたロール](https://docs.aws.amazon.com/systems-manager/latest/userguide/using-service-linked-roles.html)が使用されます。
**注記**  
ユーザーに代わってアクションを実行するときにステートマネージャーが持つアクセス許可を完全に制御できるように、カスタム IAM ロールを定義することをお勧めします。  
ステートマネージャーでのサービスにリンクされたロールのサポートは段階的に廃止されています。サービスにリンクされたロールに依存する関連付けでは、今後も正常に機能し続けるために更新が必要になる場合があります。  
カスタム提供のロールの使用を管理する方法については、「[`ssm:AssociationDispatchAssumeRole` で AssociationDispatchAssumeRole の使用を管理する](#context-key-assume-role)」を参照してください。
+ 状態を適用する時期または頻度のスケジュール。cron 式または rate 式を指定できます。cron および rate 式を使用したスケジュールの作成の詳細については、「[関連付のための cron および rate 式](reference-cron-and-rate-expressions.md#reference-cron-and-rate-expressions-association)」を参照してください｡
**注記**  
現在、State Manager では、関連付けの cron 式での月の指定はサポートされていません。
関連付けを作成するコマンドを実行すると、Systems Manager は指定した情報 (スケジュール、ターゲット、SSM ドキュメント、パラメータ) をターゲットのリソースにバインドします。システムがすべてのターゲットに接続しようとすると関連付けのステータスは最初 [Pending (保留)] と表示され、関連付けで指定された状態を *即時*に適用します。  
以前の関連付けがまだ実行中に、新しく作成した関連付けを実行するようにスケジュールすると、以前の関連付けはタイムアウトし、新しい関連付けが実行されます。
Systems Manager は、リソースの関連付けを作成するリクエストのステータスをレポートします。ステータスの詳細は、コンソールまたは (マネージドノードについては) [DescribeInstanceAssociationsStatus](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribeInstanceAssociationsStatus.html) API オペレーションを使用して表示できます。関連付けの作成時に Amazon Simple Storage Service (Amazon S3) にコマンドの出力を書き込むことを選択した場合、指定した Amazon S3 バケットで出力を表示することもできます。  
詳細については、「[Systems Manager の関連付けの使用](state-manager-associations.md)」を参照してください。  
関連付けの実行中に SSM ドキュメントによって開始される API オペレーションは、AWS CloudTrail でログ記録されません。

**4. モニタリングと更新。**  
関連付けが作成されると、State Manager は、関連付けで定義されたスケジュールに従って設定を再適用します。関連付けのステータスは、コンソールの [State Manager ページ](https://console.aws.amazon.com/systems-manager/state-manager)で、または関連付けを作成したときに Systems Manager によって生成された関連付け ID を直接呼び出すことで表示できます。詳細については、「[関連付けの履歴の表示](state-manager-associations-history.md)」を参照してください。関連付けドキュメントを更新して、必要に応じて再適用できます。関連付けの複数のバージョンを作成することもできます。詳細については、「[関連付けの編集と新しいバージョンの作成](state-manager-associations-edit.md)」を参照してください。

## 関連付けがリソースに適用されるタイミングについて
<a name="state-manager-about-scheduling"></a>

関連付けの作成時に、設定を定義する SSM ドキュメント、ターゲットリソースのリスト、および設定を適用するためのスケジュールを指定します。デフォルトでは、State Manager は関連付けを、作成時およびスケジュールに従って実行します。さらに State Manager は次の状況でも関連付けの実行を試行します。
+ **関連付けの編集** – State Manager はユーザーが編集し、それらの変更を次の関連付けフィールド: `DOCUMENT_VERSION`、`PARAMETERS`、`SCHEDULE_EXPRESSION`、`OUTPUT_S3_LOCATION` のいずれかに保存した後に関連付けを実行します。
+ **ドキュメントの編集** – State Manager はユーザーが編集し、関連付けの設定状態に定義する SSM ドキュメントに変更を保存した後に関連付けを実行します。具体的には、関連付けは、ドキュメントに対する以下の編集の後に実行されます。
  + ユーザーが新しい `$DEFAULT` ドキュメントバージョンを指定し、`$DEFAULT` バージョンを使用して関連付けが作成された。
  + ユーザーがドキュメントを更新し、`$LATEST` バージョンを使用して関連付けが作成された。
  + ユーザーは、関連付けの作成時に指定されたドキュメントを削除します。
+ **手動開始** — State Manager は、ユーザーが Systems Manager コンソールまたはプログラムのいずれかから開始したときに関連付けを実行します。
+ **ターゲットの変更** — State Manager ターゲットノードで次のいずれかのアクティビティが発生した後に関連付けを実行します。
  + マネージドノードが初めてオンラインになります。
  + スケジュールされた関連付けの実行を逃した後、マネージドノードがオンラインになります。
  + 30 日以上停止された後、マネージドノードがオンラインになります。

     
**注記**  
State Manager は、AWS アカウント全体の関連付けで使用されるドキュメントまたはパッケージを監視しません。1 つのアカウントでドキュメントまたはパッケージを更新しても、この更新では関連付けが 2 番目のアカウントで実行されることはありません。2 番目のアカウントで関連付けを手動で実行する必要があります。

**ターゲットが変更されたときの関連付けの実行の防止**  
場合によっては、マネージドノードで構成されるターゲットが変更されたときに関連付けを実行せず、指定されたスケジュールに従ってのみ関連付けを実行したい場合があります。
**注記**  
Automation ランブックを実行すると、コストが発生します。Automation ランブックとの関連付けがアカウント内のすべてのインスタンスを対象としており、定期的に多数のインスタンスを起動する場合、ランブックは起動時に各インスタンスで実行されます。これにより、自動化料金が上昇する可能性があります。

  関連付けのターゲットが変更されたときに関連付けが実行されないようにするには、**[次に指定された cron 間隔のチェックボックスでのみ関連付けを適用する]** チェックボックスを選択します。このチェックボックスは、**[関連付けの作成]** ページと **[関連付けの編集]** ページの **[スケジュールの指定]** エリアにあります。

  このオプションは、オートメーションランブックまたは SSM ドキュメントを組み込む関連付けに適用されます。

## Automation ランブックによるターゲット更新について
<a name="runbook-target-updates"></a>

新しいターゲットノードが検出されたときに、Automation ランブックで作成された関連付けを適用するには、以下の条件が満たされている必要があります。
+ [Quick Setup](systems-manager-quick-setup.md) 設定によって関連付けを作成する必要があります。Quick Setup は AWS Systems Manager のツールです。他のプロセスによって作成された関連付けは、現時点ではサポートされていません。
+ Automation ランブックは、リソースタイプ `AWS::EC2::Instance` または `AWS::SSM::ManagedInstance` を明示的にターゲットにする必要があります。
+ 関連付けには、パラメータとターゲットの両方を指定する必要があります。

  レート制御実行を選択すると、コンソールに **[パラメータ]** フィールドと **[ターゲット]** フィールドが表示されます。  
![レート制御実行に関するパラメータとターゲットのオプションがコンソールに表示されます。](http://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/images/sm_Rate_control_execution_options.png)

  [https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CreateAssociation.html](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CreateAssociation.html)、[https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CreateAssociationBatch.html](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CreateAssociationBatch.html)、[https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_UpdateAssociation.html](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_UpdateAssociation.html) の API アクションを使用するときに、`AutomationTargetParameterName` と `Targets` の入力を使用してこれらの値を指定できます。これらの各 API アクションでは、`ApplyOnlyAtCronInterval` パラメータを `true` に設定することで、ターゲットが変更されるたびに関連付けが実行されないようにすることもできます。

  コンソールを使用して、オートメーション実行の予想外に高いコストを回避する方法など、関連付けの実行時期を制御する方法については、「[関連付けがリソースに適用されるタイミングについて](#state-manager-about-scheduling)」を参照してください。

## `AssociationDispatchAssumeRole` 用のロールのセットアップ
<a name="setup-assume-role"></a>

ステートマネージャーがユーザーに代わってアクションを実行するために引き受けるカスタムディスパッチ継承ロールをセットアップするには、ロールが `ssm.amazonaws.com` を信頼し、関連付けのユースケースに基づいて `ssm:SendCommand` または `ssm:StartAutomationExecution` を呼び出すために必要なアクセス許可を持っている必要があります。

信頼ポリシーの例: 

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "",
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "ssm.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

## `ssm:AssociationDispatchAssumeRole` で AssociationDispatchAssumeRole の使用を管理する
<a name="context-key-assume-role"></a>

ステートマネージャーがユーザーに代わってアクションを実行するために引き受けるカスタムディスパッチ継承ロールの使用を管理するには、`ssm:AssociationDispatchAssumeRole` 条件キーを使用します。この条件は、カスタムディスパッチ継承ロールを指定せずに関連付けを作成または更新できるかどうかを制御します。

次のサンプルポリシーでは、`"Allow"` ステートメントは、`AssociationDispatchAssumeRole` パラメータが指定されている場合のみ、関連付けの作成および更新 API にアクセス許可を付与します。API リクエストにこのパラメータがない場合、ポリシーは関連付けを作成または更新するアクセス許可を付与しません。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:CreateAssociation",
                "ssm:UpdateAssociation",
                "ssm:CreateAssociationBatch"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "ssm:AssociationDispatchAssumeRole": "*"
                }
            }
        }
    ]
}
```