みなさん、こんにちは。サニービュー事業部の小寺です。
今日は勝手にリソースが作成されたときに、通知を受け取とるには?ということで AWS Configから検知して、通知する方法をご紹介します。

どうやって新しくリソースが作成されたか検知するか?

今回は、新しい AWS リソースが作成されたときにサービスイベントタイプで開始する Amazon EventBridgeルールの カスタムイベントパターンを使ってみます。
そのイベントパターンを、AWS Confgでサポートされるリソースタイプに一致させます。通知については、Amazon Simple Notification Service (Amazon SNS) トピックを使います。

設定してみる

AWS::EC2::Instanceリソースタイプを使った、新しくEC2インスタンスが作成されたときに、SNS通知するように設定してみます。
※リソースタイプはここでは、AWS:EC2:Instanceを選びますが他のリソースでも対応可能です。

今回は、SNSトピックは作成済みとして既存のトピックを使うので作成手順は割愛します。

(1)Amazon EventBridgeコンソールから、左側のナビゲーションペインで「ルール」を選びます。

(2)「ルール」を作成をクリックします。

(3) Name で、ルール名を入力し、 Rule type で、Rule with and event pattern を選んで、Next をクリックします。

(4) Event source で、[AWS events or EventBridge partner events] (AWS イベントまたは EventBridge パートナーイベント) を選びます。

(5) 作成のメソッドで [Custom patterns (JSON editor)] (カスタムパターン (JSON エディタ)) を選び、イベントパターンを記載します。


※ここでは「AWS::EC2::Instance」を選んでいますが、他のリソースを指定することももちろんできます。

{
"source": [
"aws.config"
],
"detail-type": [
"Config Configuration Item Change"
],
"detail": {
"messageType": [
"ConfigurationItemChangeNotification"
],
"configurationItem": {
"resourceType": [
"AWS::EC2::Instance"
],
"configurationItemStatus": [
"ResourceDiscovered"
]
}
}
}

「次へ」をクリックします。

(6) Target types で、[AWS service] (AWS のサービス) を選び、 Select a target で、[SNS topic] (SNS トピック) を選びます。
トピックはここでは、事前に作成していたものを選びました。「次へ」をクリックします。

(7)タグ付けする場合はタグを付けます。

(8)レビューと作成で確認を行い、「ルールの作成」をクリックします。

動作確認

動作確認のためにEC2インスタンスを起動してみます。SNSトピックで指定したSlackのチャンネルに通知がされることが確認できました。

この方法でAWS Confgでサポートされるリソースタイプであれば通知を受け取ることができます。

まとめ

今日はAWSで新しくリソース作成されたときに通知を受け取りたいという要望の実現方法の一つとしてEventBridgeからConfigのリソースタイプを選び、
SNSで通知する方法をお伝えしました。何かの参考になれば幸いです。