関連付けの作成
AWS Systems Manager の一機能である State Manager は、AWS リソースを定義された状態に保ち、設定のずれを軽減するのに役立ちます。これを行うために、State Manager は関連付けを使用します。関連付けとは、AWS リソースに割り当てる設定です。この設定では、リソースで維持したい状態を定義します。例えば、関連付けでは、アンチウイルスソフトウェアがマネージドノードにインストールされて実行されている必要があることや、特定のポートを閉じる必要があることなどを指定できます。
関連付けでは、設定を適用するスケジュールと、関連付けのターゲットを指定します。例えば、アンチウイルスソフトウェアに関する関連付けが AWS アカウントのすべてのマネージドノードで 1 日に 1 回実行されるとします。ソフトウェアがノードにインストールされていない場合、関連付けによって State Manager にインストールするように指示することができます。ソフトウェアがインストールされていてもサービスが実行されていない場合、関連付けによって State Manager にサービスを開始するように指示することができます。
警告
関連付けを作成するときは、関連付けのターゲットとしてマネージドノードの AWS リソースグループを選択できます。AWS Identity and Access Management (IAM) ユーザー、グループ、またはロールに、マネージドノードのリソースグループをターゲットとする関連付けを作成するアクセス許可がある場合、そのユーザー、グループ、またはロールは、自動的にグループ内のすべてのノードをルートレベルで制御することができます。信頼された管理者のみに関連付けの作成を許可するようにしてください。
関連付けのターゲットとレート制御
関連付けでは、関連付けを受け取るマネージドノードやターゲットも指定します。State Manager には、マネージドノードをターゲットにし、それらのターゲットに関連付けをデプロイする方法を制御するのに役立ついくつかの機能があります。ターゲットとレート制御の詳細については、「State Manager 関連付けのターゲットとレート制御について」を参照してください。
関連付けのタグ付け
AWS CLI や AWS Tools for PowerShell などのコマンドラインツールを使用して、関連付けを作成するときには、タグを割り当てることができます。Systems Manager コンソールを使用して関連付けにタグを追加することはできません。タグの詳細については、Systems Manager リソースにタグを付けるを参照してください。
関連付けの実行
デフォルトでは、関連付けを作成した直後に、定義したスケジュールに従って State Manager が関連付けを実行します。
また、システムは、次の規則に従って関連付けを実行することもできます。
-
State Manager は関連付けを、指定されたノードまたはターゲットになっているノードすべてに対して、ある期間内に実行しようとします。
-
期間中に関連付けが実行されない場合 (例えば、同時実行値によって一度に関連付けを処理できるノード数が制限されたため)、State Manager は次の期間に関連付けを実行しようとします。
-
State Manager は関連付けの設定、ターゲットノード、ドキュメント、またはパラメータが変更された後に、関連付けを実行します。詳細については、「関連付けはいつリソースに適用されますか?」を参照してください。
-
State Manager は、すべてのスキップされた間隔の履歴を記録します。[Execution History (実行履歴)] タブで履歴を表示できます。
関連付けのスケジュール
関連付けを 10 時間ごとなどの基本的な間隔で実行するようにスケジュールすることも、カスタム cron と rate の式を使用してより高度なスケジュールを作成することもできます。また、関連付けを初めて作成するときに実行されないようにすることもできます。
関連付けを作成した後、cron 式または rate 式を使用する
標準の cron 式または rate 式の他に、State Manager はまた、関連付けを実行する曜日、および月の n 番目の日を指定する番号記号 (#) を含む cron 式もサポートしています。毎月、第 3 火曜日の 23:30 UTC に cron スケジュールを実行する例を次に示します。
cron(30 23 ? * TUE#3 *)
毎月第 2 木曜日の深夜 UTC に実行する例を次に示します。
cron(0 0 ? * THU#2 *)
State Manager はまた、月の最後の X 曜日を示す (L) 記号もサポートしています。毎月、最後の火曜日の深夜 UTC に cron スケジュールを実行する例を次に示します。
cron(0 0 ? * 3L *)
パッチした火曜日の 2 日後に関連付けを実行するなど、関連付けを実行するタイミングをさらに制御するには、オフセットを指定できます。オフセットでは、関連付けの実行がスケジュールされている日の後に待機する日数を定義します。例えば、cron スケジュールを cron(0 0 ? * THU#2 *)
とした場合、[Schedule offset] (スケジュールのオフセット) フィールドで番号 3 を指定して、その月の第 2 木曜日の後の毎週日曜日に関連付けを実行できます。
注記
オフセットを使用するには、コンソールの [次に指定した Cron の間隔でのみ関連付けを適用する] オプションを選択するか、コマンドラインから ApplyOnlyAtCronInterval
パラメータを指定する必要があります。これらのオプションのいずれかをアクティブにすると、関連付けを作成した後、State Manager がすぐに実行されないようにできます。
cron 式と rate 式の詳細については、「リファレンス: Systems Manager の Cron 式および rate 式」を参照してください。
関連付けを作成する (コンソール)
次の手順では、Systems Manager コンソールを使用して、State Manager の関連付けを作成する方法について説明します。
重要
この手順は、Command
または Policy
ドキュメントのどちらかを使用してマネージドノードをターゲットにする関連付けの作成方法を説明しています。Automation ランブックを使用してノードまたは他のタイプの AWS リソースをターゲットにする関連付けを作成する方法については、「State Manager 関連付けでのオートメーションのスケジュール設定」を参照してください。
State Manager の関連付けを作成するには
AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/
) を開きます。 ナビゲーションペインで、[State Manager] を選択します。
-
[Create association] を選択します。
-
[Name (名前)] フィールドで名前を指定します。
-
[Document (ドキュメント)] リストで、ドキュメント名の横にあるオプションを選択します。ドキュメントタイプをメモしておきます。この手順は、
Command
およびPolicy
ドキュメントに適用されます。オートメーションランブックを使用する関連付けの作成については、「State Manager 関連付けでのオートメーションのスケジュール設定」を参照してください。重要
ドキュメントが別のアカウントから共有されている場合、State Manager は新しいバージョンのドキュメントを使用する関連付けの実行をサポートしません。Systems Manager コンソールに新しいバージョンが処理されたことが示されていても、別のアカウントから共有される場合、State Manager は常にドキュメントの
default
バージョンを実行します。別なアカウントから共有されたドキュメントの新しいバージョンを使用して関連付けを実行する場合、ドキュメントバージョンをdefault
に設定する必要があります。 -
[Parameters (パラメータ)] で、必要な入力パラメータを指定します。
-
(オプション) モニタリング用の関連付けに適用する CloudWatch アラームを選択します。
注記
このステップに関する以下の情報に注意してください。
-
アラームリストには最大 100 個のアラームが表示されます。リストにアラームが表示されない場合は、AWS Command Line Interface を使用して関連付けを作成してください。詳細については、「関連付けの作成 (コマンドライン)」を参照してください。
-
CloudWatch アラームをコマンドにアタッチするには、関連付けを作成する IAM プリンシパルに
iam:createServiceLinkedRole
アクションの権限が必要です。CloudWatch アラームの詳細については、「Amazon CloudWatch でのアラームの使用」を参照してください。 -
アラームがアクティブ化されると、保留中のコマンド呼び出しまたはオートメーションは実行されません。
-
-
[Targets (ターゲット)] で、オプションを選択します。ターゲットの使用については、「State Manager 関連付けのターゲットとレート制御について」を参照してください。
-
[Specify schedule (スケジュールの指定)] セクションで、[On Schedule (スケジュールあり)] または [No schedule (スケジュールなし)] を選択します。[On Schedule (スケジュールあり)] を選択した場合は、関連付けの cron または rate スケジュールを作成するためのボタンを使用します。
作成直後に関連付けを実行しない場合は、[Apply association only at the next specified Cron interval (次に指定した Cron の間隔でのみ関連付けを適用する)] を選択します。
-
(オプション) [Schedule offset] (スケジュールオフセット) フィールドで、1~6 の数値を指定します。
-
[詳細オプション] セクションで、[コンプライアンスの重要度] を使用して関連付けの重大度を選択し、[Change Calendar] を使用して関連付けの変更カレンダーを選択します。
コンプライアンスレポートには、ここで指定した重要度と共に関連付けの状態が準拠しているか準拠していないかが表示されます。詳細については、「State Manager 関連付けのコンプライアンスについて」を参照してください。
変更カレンダーによって、関連付けが実行されるタイミングが決まります。カレンダーが閉じている場合、関連付けは適用されません。カレンダーが開いている場合は、それに応じて関連付けが実行されます。詳細については、「AWS Systems Manager Change Calendar」を参照してください。
-
[Rate control] (レート制御) セクションで、複数のノードでの関連付けの実行方法を制御するオプションを選択します。レート制御については、「State Manager 関連付けのターゲットとレート制御について」を参照してください。
[Concurrency (同時実行数)] セクションでオプションを選択します。
-
[targets (ターゲット)] を選択して、関連付けを同時に実行できるターゲットの絶対数を入力します。
-
[percentage (パーセント値)] を選択して、関連付けを同時に実行できるターゲットセットのパーセント値を入力します。
[Error threshold (エラーのしきい値)] セクションでオプションを選択します。
-
State Manager が追加ターゲットでの関連付けの実行を停止する前に、[errors (エラー)] を選択して許可されるエラーの絶対数を入力します。
-
State Manager が追加ターゲットでの関連付けの実行を停止する前に、[percentage (パーセンテージ)] を選択して許可されるエラーの割合を入力します。
-
(オプション) [出力オプション] で、コマンド出力をファイルに保存するには、[S3 への出力の書き込みを有効にします] ボックスをオンにします。ボックスにバケット名とプレフィックス (フォルダ) 名を入力します。
注記
S3 バケットにデータを書き込む機能を許可する S3 アクセス許可は、このタスクを実行する IAM ユーザーのものではなく、マネージドノードに割り当てられたインスタンスプロファイルのものです。詳細については、「Systems Manager に必要なインスタンスのアクセス許可を設定する」または「ハイブリッド環境に IAM サービスロールを作成する」を参照してください。さらに、指定された S3 バケットが別の AWS アカウント にある場合は、マネージドノードに関連付けられたインスタンスプロファイルまたは IAM サービスロールに、そのバケットへの書き込みに必要なアクセス許可があることを確認してください。
以下は、関連付けのために Amazon S3 出力をオンにするために必要な最小限のアクセス許可です。IAM ポリシーをアタッチすることで、アカウント内の個々のユーザーまたはロールへのアクセスをさらに制限することができます。最低でも、Amazon EC2 インスタンスプロファイルには、
AmazonSSMManagedInstanceCore
管理ポリシーと次のインラインポリシーを持つ IAM ロールがある必要があります。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::
amzn-s3-demo-bucket
/*" } ] }最小限のアクセス許可を得るには、エクスポート先の Amazon S3 バケットに Amazon S3 コンソールで定義されたデフォルト設定が必要です。Amazon S3 バケットの作成の詳細については、Amazon S3 ユーザーガイドの「バケットの作成」を参照してください。
注記
関連付けの実行中に SSM ドキュメントによって開始される API オペレーションは、AWS CloudTrail でログ記録されません。
-
[関連付けの作成] を選択します。
注記
作成した関連付けを削除すると、関連付けはそのターゲットで実行されなくなります。
関連付けの作成 (コマンドライン)
以下の手順では、AWS CLI (Linux または Windows の場合) または Tools for PowerShell を使用して、State Manager の関連付けを作成する方法について説明します。このセクションには、ターゲットとレート制御の使用方法を示すいくつかの例が含まれています。ターゲットとレート制御を使用すると、これらの関連付けの実行を制御しながら、関連付けを数十または数百のノードに割り当てることができます。ターゲットとレート制御の詳細については、「State Manager 関連付けのターゲットとレート制御について」を参照してください。
重要
この手順は、Command
または Policy
ドキュメントのどちらかを使用してマネージドノードをターゲットにする関連付けの作成方法を説明しています。Automation ランブックを使用してノードまたは他のタイプの AWS リソースをターゲットにする関連付けを作成する方法については、「State Manager 関連付けでのオートメーションのスケジュール設定」を参照してください。
開始する前に
targets
パラメータは、指定した Key
、Value
の組み合わせを使用してノードをターゲットにする検索条件の配列です。targets
パラメータを使用して数十または数百のノードで関連付けを作成する場合は、手順を開始する前に以下のターゲット設定オプションを確認してください。
ID を指定して特定のノードをターゲットにする
--targets Key=InstanceIds,Values=
instance-id-1
,instance-id-2
,instance-id-3
--targets Key=InstanceIds,Values=i-02573cafcfEXAMPLE,i-0471e04240EXAMPLE,i-07782c72faEXAMPLE
タグを使用してインスタンスをターゲットにする
--targets Key=tag:
tag-key
,Values=tag-value-1
,tag-value-2
,tag-value-3
--targets Key=tag:Environment,Values=Development,Test,Pre-production
AWS Resource Groups を使用してノードをターゲットにする
--targets Key=resource-groups:Name,Values=
resource-group-name
--targets Key=resource-groups:Name,Values=WindowsInstancesGroup
現在の AWS アカウント と AWS リージョン のすべてのインスタンスをターゲットに設定する
--targets Key=InstanceIds,Values=*
注記
以下の情報に注意してください。
-
ドキュメントが別のアカウントから共有されている場合、State Manager は新しいバージョンのドキュメントを使用する関連付けの実行をサポートしません。Systems Manager コンソールに新しいバージョンが処理されたことが示されていても、別のアカウントから共有される場合、State Manager は常にドキュメントの
default
バージョンを実行します。別なアカウントから共有されたドキュメントの新しいバージョンを使用して関連付けを実行する場合、ドキュメントバージョンをdefault
に設定する必要があります。 -
AWS CLI を使用して、最大 5 個のタグキーを指定できます。AWS CLI を使用する場合は、
create-association
コマンドで指定されたすべてのタグキーがノードに現在割り当てられている必要があります。割り当てられていない場合、State Manager はノードを関連付けのターゲットにできません。ノードにタグを割り当てる方法については、「Systems Manager リソースにタグを付ける」を参照してください。 -
関連付けを作成するときは、スケジュールの実行時を指定します。cron または rate 式を使用して、スケジュールを指定します。cron 式と rate 式の詳細については、「関連付のための cron および rate 式」を参照してください。
関連付けを作成するには
まだ AWS CLI または AWS Tools for PowerShell をインストールして設定していない場合は、インストールして設定します。
詳細については、「AWS CLI の最新バージョンをインストールまたは更新します。」および「AWS Tools for PowerShell のインストール」を参照してください。
-
以下の形式を使用して、関連付けを作成する State Manager コマンドを作成します。各
リソースプレースホルダーの例
をユーザー自身の情報に置き換えます。次の例では、
"Environment,Linux"
でタグ付けされたノードで関連付けを作成します。関連付けはAWS-UpdateSSMAgent
ドキュメントを使用して、毎週日曜日の午前 2 時 (UTC) にターゲットノード上の SSM Agent を更新します。この関連付けが同時に実行されるのは、常に最大 10 ノードです。また、エラー数が 5 を超えた場合、この実行期間内では、関連付けがそれ以降のノードで実行されなくなります。コンプライアンスレポートでは、この関連付けについて「中」の重要度レベルが割り当てられます。次の例では、ワイルドカード値 (*) を指定してノード ID をターゲットにしています。これにより、Systems Manager は現在の AWS アカウント と AWS リージョン 内にあるすべてのノードに関連付けを作成できます。この関連付けが同時に実行されるのは、常に最大 10 ノードです。また、エラー数が 5 を超えた場合、この実行期間内では、関連付けがそれ以降のノードで実行されなくなります。コンプライアンスレポートでは、この関連付けについて「中」の重要度レベルが割り当てられます。この関連付けでは、スケジュールオフセットが使用されます。つまり、指定された cron スケジュールの 2 日後に実行されます。また、
ApplyOnlyAtCronInterval
パラメータも含まれています。これは、スケジュールオフセットの使用に必要であり、関連付けが作成された直後に実行されないように指定しています。次の例では、リソースグループでノードの関連付けを作成します。グループの名前は「HR-Department」です。関連付けは
AWS-UpdateSSMAgent
ドキュメントを使用して、毎週日曜日の午前 2 時 (UTC) にターゲットノード上の SSM Agent を更新します。この関連付けが同時に実行されるのは、常に最大 10 ノードです。また、エラー数が 5 を超えた場合、この実行期間内では、関連付けがそれ以降のノードで実行されなくなります。コンプライアンスレポートでは、この関連付けについて「中」の重要度レベルが割り当てられます。この関連付けは、指定された cron スケジュールで実行されます。作成直後に関連付けは実行されません。次の例では、特定のノード ID でタグ付けされたノードで実行される関連付けを作成します。関連付けは、変更カレンダーが開いているときに、SSM Agent ドキュメントを使用して、ターゲットノードの SSM Agent を更新します。関連付けは、実行時にカレンダーの状態をチェックします。カレンダーが起動時に閉じられ、関連付けが 1 回だけ実行された場合、関連付けの実行ウィンドウが過ぎているため、再度実行されません。カレンダーが開いている場合は、それに応じて関連付けが実行されます。
注記
変更カレンダーを閉じているときに関連付けが作用するタグまたはリソースグループに新しいノードを追加すると、変更カレンダーが開いたときにその関連付けがそれらのノードに適用されます。
次の例では、特定のノード ID でタグ付けされたノードで実行される関連付けを作成します。関連付けは、SSM Agent ドキュメントを使用して、毎週日曜日の午前 2 時にターゲットノードで SSM Agent を更新します。この関連付けは、変更カレンダーが開いているときに、指定された cron スケジュールでのみ実行されます。関連付けが作成されると、カレンダーの状態がチェックされます。カレンダーが閉じている場合、関連付けは適用されません。関連付けを適用する間隔が日曜日の午前 2 時に開始されると、関連付けはカレンダーが開いているかどうかをチェックします。カレンダーが開いている場合は、それに応じて関連付けが実行されます。
注記
変更カレンダーを閉じているときに関連付けが作用するタグまたはリソースグループに新しいノードを追加すると、変更カレンダーが開いたときにその関連付けがそれらのノードに適用されます。
注記
作成した関連付けを削除すると、関連付けはそのターゲットで実行されなくなります。また、apply-only-at-cron-interval
パラメータを指定した場合は、このオプションをリセットできます。これを行うには、コマンドラインから関連付けを更新するときに no-apply-only-at-cron-interval
パラメータを指定します。このパラメータは、関連付けの更新直後に、指定された間隔に従って関連付けを適用します。