セキュリティグループのSSH全開放をAWS Configで検知して特定のメールアドレスに通知する仕組みを作る

本日は、AWS Config でルール違反した際に、通知を受け取る仕組みを作ります。 今回はセキュリティグループでインバウンドの許可の22番ポートが全開放された時に 検知するrestricted-sshルールを使って全開放を検知する仕組みを作ります。

AWS Config の restricted-sshとは
セキュリティグループのルールにてsshが無制限に許可されていないか確認します。
restricted-sshの公式サイト
https://docs.aws.amazon.com/ja_jp/config/latest/developerguide/restricted-ssh.html



事前準備 – メッセージング/モバイル通知サービス SNSの作成

SNSとは、Amazon Simple Notification Serviceの略称で その名の通り、通知を送ることができるサービスです。

Eメールを設定してメールアドレスに通知を送れるほか、 Lambdaなど他のAWSサービスと連携してサービスを起動させることもできます。

設定

まずは、SNSコンソールに移動して「トピックの作成」を押します。 以下の画面になりますので、名前を入れます。名前は「config-detective-sns」とします。 暗号化など細かい設定ができますが、今回はこれだけで作成完了します。

すると以下の画面になります。 もちろんですが、送信先を設定していないので、この状態では通知はされません。

サブスクリプションでメッセージ送信先を設定していきます。

サブスクリプションの作成を押すと以下の画面になり、 プロトコルでEメールを選択してエンドポイントに送信先のメールアドレスを設定します。メールアドレスを入力したら「サブスクリプションの作成」ボタンを押します。

そうすると、以下のような「認証してください」メールが届きます。 ここで「confirm subscription」を押します。これで完了です。



AWS Configの設定

AWS Configコンソールの左の「ルール」を選択すると以下の画面になります。 「ルールの追加」をクリックします。

sshの無制限アクセス設定を検知するルールは、AWSマネージドルールにありますので、 restricted-sshにチェックを入れます。 その後、下に行くと「確認」ボタンがありますので、以下のようにクリックするとルールが追加されます。



Eventbridgeの作成

最後にイベントブリッジを設定します。 イベントブリッジは操作が行われたことをトリガーに他の操作をしたり、 決まった時間をトリガーに他の操作を開始したりできます。

今回の場合だとAWS Configでルール違反を検知した時に、SNSを起動させるようEventbridgeを作成します。

まずは、Eventbridgeのコンソールに移動して、「ルールの作成」ボタンを押します。 すると以下の画面になるので名前を入力していきます。

どんなイベントが発生した時にEventbridgeを起動させるため、イベントパターンを設定していきます。 今回で言うと「AWS Configのrestricted-sshルールに違反した時」ですね。イベントソースはAWS Configなので、以下の設定はAWSイベントで問題ありません。

「パターフォームで使用する」でイベントパターンに表示されるプルダウンの項目を 設定していくとイベントパターンが自動で生成されます。

このイベントパターンに合致する操作が行われた時にイベントブリッジを起動できるというわけです。

AWS Configのイベントタイプは以下がありますが、 「Complianace Change」となっているものを選択します。

少し面倒だったので、「カスタムパターン」を選択して、 起動条件をjsonで指定します。jsonの中身はネットで調べました。 configrulenameに今回のルールの「restricted-ssh」を記載します。

続いてターゲットの設定です。 先ほど送信先のメールアドレスを設定した設定したトピック「config-detective-sns」を選択します。 これで設定はすべて完了です。



テスト

では、実際に検知するか確認します。 ssh(22番)ポートが全開放「0.0.0.0/0」を開放しているSGを作成します。

以下のように 1日準拠リソースがあると表示されましたので、config側では無事検知されたようです。 後はメールに届いているか確認のみです。

以下のようにメールにも届いておりました。これで動作確認も完了です。

本記事は以上になります。最後までご覧いただきありがとうございました。

 

手順はたった2つ AWS Lambda環境変数の使い方!暗号化についても説明します

AWS Certified Data Analytics – Specialty (DAS)に1か月で合格したので勉強内容を話します。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です