Amazon Simple Notification Service (Amazon SNS) を使用して AWS Systems Manager 内でパッチ適用の通知が届くように設定したいと思います。
簡単な説明
AWS Systems Manager の機能である Patch Manager に Amazon SNS を統合することで、Patch Manager のメンテナンスウィンドウの通知をカスタマイズして設定できます。
重要: 通知をカスタマイズして設定するには、パッチ適用のメンテナンスウィンドウを設定します。
Systems Manager を使用してメンテナンスウィンドウのパッチ適用操作に関する通知を設定するには、次のステップを実行してください。
- パッチ適用通知用の Amazon SNS トピックを作成してサブスクライブします。
- Systems Manager が SNS トピックを発行できる IAM ロールと AWS アイデンティティおよびアクセス管理 (IAM) ポリシーを作成します。
- AWS Systems Manager の機能である Run Command に、SNS トピックを指定します 。
解決方法
パッチ適用の通知に関する SNS トピックを作成する
まず、SNS トピックを作成します。
- Amazon SNS コンソールを開きます。
- パッチを適用する AWS リージョンを選択します。
- ナビゲーションペインで、[トピック] を選択します。
- [トピックの作成] を選択します。
- [FIFO] または [標準] を選択します。
- トピックの名前を入力します。
- (オプション) ユースケースに合わせて残りの設定を行います。
- [トピックの作成] を選択します。以降のセクションで使用するトピック ARN に注意してください。
次に、希望する連絡方法を使用して、連絡先をサブスクライブします。
Systems Manager で SNS トピックの発行に必要な、IAM ポリシーとロールを設定する
まず、必要な IAM ポリシーを設定します。
1. IAM コンソールを開きます。
2. ナビゲーションペインで [ロール]、[ポリシの作成] の順に選択します。
-
[JSON] タブを選択します。
-
デフォルトの JSON コンテンツを以下に置き換えます。
注: REGIONを使用しているリージョンに置き換え、ACCOUNT-ID を AWS アカウント ID に置き換えます。SNS-TOPIC-NAME をご自身の SNS トピック名に変更します。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["sns:Publish"],
"Resource": "arn:aws:sns:{REGION}:{ACCOUNT-ID}:{SNS-TOPIC-NAME}"
}
]
}
注: トピックの固有のリソース ARN は、SNS トピックページの ARN で確認できます。
5. [次へ: タグ] を選択します。
6. (オプション) 1 つ以上のタグとキーの値のペアを追加して、このポリシーのアクセス許可を整理、追跡、または制御します。次に、[次へ: 確認] を選択します。
-
インラインポリシー名を入力します。
-
(オプション) ポリシーの説明を入力します。
9. [ポリシーの作成] を選択します。
次に、必要な IAM ロールを設定します。
1. IAM コンソールを開きます。
2. ナビゲーションペインで [ロール]、[ロールを作成] の順に選択します。
- [AWS のサービス] ロールタイプを指定して、[Systems Manager] を選択します。[ユースケース] で [Systems Manager] を選択します。
4. [アクセス権限をアタッチする] ポリシーページで、前のセクションで作成したポリシーを検索します。次に、カスタムポリシーの名前を選択します。
5. (オプション) アクセス許可の境界を設定します。詳細については、「Permissions boundaries for IAM entities」を参照してください。
6. [次へ] を選択します。
-
ロールの名前と説明を入力します。
-
以下のいずれかで [編集] を選択します。 [ステップ 1: 信頼されたエンティティを選択]、または [ステップ 2: 許可を選択] セクション。[編集] の選択により、ロールのユースケースとアクセス許可を編集します。
9. ロールを確認し、[ロールを作成] を選択します。下記のセクションにある IAM ロール名を書き留めます。
メンテナンスウィンドウでこのロールを使用するには、メンテナンスウィンドウのサービスロールを編集して、新規作成されたロールを合格として許可します。リソースには、作成されたロールの ARN を指定します。詳細については、「Use the console to configure permissions for maintenance windows」を参照してください。
IAM ロールの設定を完了するには、新規のポリシーを作成する、またはメンテナンスウィンドウのインラインポリシーを次の値で更新します。
注: ACCOUNT-ID はアカウント ID に、** SNS-TOPIC-NAME** をご自身の SNS トピック名に置き換えます。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": "arn:aws:iam::{ACCOUNT_ID}:role/{SNS-TOPIC-ROLE}"
}
]
}
[Run Command] に SNSトピックを指定する
[Run Command] に SNSトピックを指定します。
- AWS Systems Manager コンソールを開きます。
- ナビゲーションペインで、[メンテナンスウィンドウ] を選択します。
- パッチ適用を実行するメンテナンスウィンドウを選択します。
- [タスク] で、AWS-RunPatchBasline Run Command タスク、または通知を受け取りたい別の Run Command タスクを選択し、[編集] を選択します。
- [SNS 通知] で、[SNS 通知を有効化] を選択します。
- 前のセクションで作成した IAM ロールを入力します。
- 前のセクションで作成した SNS トピック ARN を入力します。
- (オプション) [イベントタイプ] では、通知受信を希望するイベントタイプを選択します。例えば、[タイムアウト] (した試行) や [失敗] (した試行) などです。
- [変更の保存] を選択します。
これで、パッチメンテナンスウィンドウに選択したコマンドとイベントタイプに関する SNS 通知が設定されました。
電子メール通知の例を次に示します。
{"commandId":"abcdef12-1234-1234-1234-abcdef123456",
"documentName":"AWS-RunPatchBaseline",
"instanceId":"i-abcdefg1234567",
"requestedDateTime":"2023-01-01T00:00:00.000Z",
"status":"Failed",
"detailedStatus":"Failed",
"eventTime":"2023-01-1T00:02:00.00Z"}