特定のリソースIDの変更前と変更後をメールで通知する方法

特定のリソースIDの変更前と変更後をメールで通知する方法について回答しました。
2020.12.29

困っている内容

特定のリソースIDを指定してリソースの変更前と変更後メールで通知させることはできますか?

また、コンソール上からリソースの変更履歴が見やすいのはどこでしょうか?

どう対応すればいいの?

特定のリソースIDの変更を通知させる方法

通知の方法ですが、単純にリソースの変更を通知したい場合はConfigのイベントを元にCloudWatch Eventsを発火させてSNSに通知させる方法があります。

前提として、通知させたいリソースIDはConfigで記録されていることを確認しておきましょう。今回は、Config > CloudWatch Events > SNSという順で通知を行います。

CloudWatch Eventsのルールを設定する際には、以下のようにサービス名をConfigに指定して、イベントタイプをconfig configuration item changeとしましょう。特定のリソースIDに監視したいリソースのIDを入力します。

ターゲットには送りたいメールアドレスをサブスクリプションに設定したSNSトピックを指定してください。

上記を設定することによって、検知対象のリソースが変更された際に変更前と後がJSON形式で通知されます。以下は通知される内容を見やすく整えて一部抜粋したものです。今回はCloudFrontのディストリビューションのSupported HTTP Versionsを試しに変更してみました。

{
    "version": "0",
    "id": "e8f16dab-167a-79fb-e5f2-df6049c2f2e7",
    "detail-type": "Config Configuration Item Change",
    "source": "aws.config",
    "account": "000000000000",
    "time": "2020-12-29T00:40:13Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:cloudfront::000000000000:distribution/EM59TQ5YX0CB0"
    ],
    "detail": {
        "recordVersion": "1.3",
        "messageType": "ConfigurationItemChangeNotification",
        "configurationItemDiff": {
            "changedProperties": {
                "Configuration.lastModifiedTime": {
                    "previousValue": "2020-12-18T09:29:39.649Z",
                    "updatedValue": "2020-12-29T00:40:10.709Z",
                    "changeType": "UPDATE"
                },
                "Configuration.distributionConfig.httpVersion": {
                    "previousValue": "http1.1",
                    "updatedValue": "http2",
                    "changeType": "UPDATE"
                }
            },
            "changeType": "UPDATE"
        },
...

previousValueupdatedValueから変更された値を確認することができました。

単純に通知されたメールの内容で見辛い場合は、CloudWatch EventsのターゲットをLambdaにして、見やすい形式に編集してからSNSへ通知させることもご検討ください。

リソースの変更履歴をコンソールから確認する方法

画面上から変更履歴を確認したい場合は、確認したいリソースをConfigの「リソースのインベントリ」から絞り込んで設定タイムラインを表示しましょう。

ここからいつどんな変更が行われたのかを時系列順に追うことができます。

下にスクロールすると、変更のタブがあるのでクリックで展開することができます。以下のように変更箇所が確認することができました。

テクニカルサポートノートとは?

クラスメソッドのカルチャー(CLP) の「情報発信を通じて、全ての人々の創造活動に貢献し続ける」という考えから、クラスメソッド メンバーズをご利用のお客様よりいただいたお問い合わせより、他の AWS ユーザーにとっても 有益な情報を一般的な TIPS としてご紹介しています。