こんにちは、どうしても接続が拒否されると30分程格闘しましたがSELINUXのせいでした。
黒瀬です。
前回AWSConfigの初期設定の記事を書きました。
Configでコンプライアンス変更通知をSlackに配信する設定を入れていきます。
上のような構成で作っていきます。
1. Configで準拠/非準拠を検知
2. CloudWatch EventBridgeがトリガー。SNSトピックに通知
3. SNSトピックに設定されているChatbotに情報送信
4. ChatbotがSlackに通知
設定に関係ないですがChatbotのAWSアイコンが見つからなかったため
上の図のChatbotアイコンはペイントで作りました。愛着湧きます。
目次
SNSトピックの設定
配信用のSNSトピックを設定します。
マネジメントコンソールのSimple Notification Serviceからトピックの作成を選びトピックを作成します。
トピック名を入力し作成します。
暗号化、タグの設定が必要ならここで設定します。
配信先(サブスクリプション)はChatbot作成後追加します。
EventBridgeの設定
Configのコンプライアンス状態変更を検知してSNSトピックに通知できるようにEventBridgeの設定を行います。
マネジメントコンソールのEventBridgeからルールを作成を選びます。
ルールの名前を設定しイベント一致パターンを以下のように設定します。
サービスプロバイダー → AWS
サービス名 → Config
イベントタイプ → Config Rules Compliance Change(コンプライアンスの変更)
特定のルール名 → ComplianceChangeNotification
ターゲットに[SNSトピック]
トピックは先程作成したトピックを選択し作成します
Chatbotの設定
クライアントの登録
Slackに配信するためのChatbotの設定をしていきます。
新しいクライアントを設定から今回はslackを選択し設定
AWS ChatbotからSlackワークスペースに対して権限のリクエストがくるので許可する
Slackチャネルの設定
新しいチャネルを設定からSlackチャネルの設定をします。
設定が必要なのは以下の項目です。
- チャネル設定の設定名
- 通知を流すSlackチャネル名
- Chatbotのアクセスに使うIAMロール
- 配信に使うSNSトピック
IAMロールを[テンプレートを使用してIAMロールを作成する]から作る場合ポリシーテンプレートの選択が必要になりますが最低限必要なものは[通知のアクセス許可]のみです。
最後に作成したSNSトピックを選択します。
必要な設定が終わったら設定します
確認
AWS ConfigでEBSボリュームがEC2インスタンスにアタッチされているかどうか確認するルールec2-volume-inuse-checkを有効にしていたのでそれを確認に使います。
何にもアタッチしないEBSを作成しSlackにルール非準拠通知が流れるか確認します。
ec2-volume-inuse-checkで非準拠になったEBSがSlackに通知されました。
まとめ
SlackにConfigのコンプライアンス変更通知を配信することができました。
私は検証環境のコストを削減するためにこの設定を使っています。
AWSアカウントが意図した状態でなければ早めに分かる環境にしておきたいですね。