IAM Access AnalyzerをAmazon EventBridgeで監視してAmazon SNSで通知する #reinvent

こんにちは。サービスグループの武田です。

本日、リソースが意図したどおりのアクセスのみを提供しているかを継続的にチェックできるサービスIAM Access Analyzerが新機能として追加されました。

[速報] AWS Identity and Access Management Access Analyzerがリリースされました! #reinvent

ただ有効化するだけでも一定の効果はありますが、やはり検知したら通知してほしいですよね。そんなわけでAmazon EventBridgeおよびAmazon SNSと連携して通知を受け取る設定をやってみました。

なお、IAM Access Analyzerは有効化してある前提となっていますので、有効化からやろうという方は上記のエントリを参考に設定してください。今回はバージニア北部リージョンで検証していますが、設定するリージョンが同一であればどこでもかまいません。

1. SNSトピックおよびサブスクリプションの準備

まずは通知を受け取るためのSNSを作成します。SNSのページにアクセスして名前を入力して作成します。今回はaccess-analyzer-topicとしました。

設定をすべてデフォルトのままです。[トピックの作成]ボタンを押下します。

トピックの作成ができたら続いてサブスクリプションを作成します。

今回はサブスクリプションを、Emailプロトコルで作成しました。受信できるメールアドレスを入力しています。確認用のメールが飛んできたら承諾しましょう。

2. EventBridgeでルールを作成

続いてIAM Access AnalyzerとSNSをつなぐために、Event Bridgeのルールを作成します。EventBridgeのページにアクセスし、[ルールを作成]ボタンを押下します。

ルール名を入力します。今回はaccess-analyzer-eventsとしました。

次にパターンの定義です。イベントパターンとスケジュールが選択できますが、イベントパターンを選択します。イベント一致パターンではカスタムパターンを選択。その隣のイベントパターンに次のJSONを貼り付けて保存します。

{
  "source": [
    "aws.access-analyzer"
  ],
  "detail-type": [
    "Access Analyzer Finding"
  ]
}

次にターゲットの選択です。プルダウンでターゲットが選べるようになっています。その中からSNS トピックを選択します。トピックには先ほど作成したSNSトピックを選択します。以上の設定ができたら[作成]ボタンを押下します。

ルールが作成できました。有効にもなっています。

通知テスト

設定した内容で正常に動作するかテストしましょう。今回はパブリックアクセスが有効なバケットをうっかり作成して、通知が飛んでくるかを確認してみます。

まずは適当な名前でS3バケットを作成します。作るリージョンだけ間違えないように気をつけましょう。

作成したバケットのパブリックアクセスを有効にします。

アクセスが 公開 になりました。

しばらく待っていると、10分ほどでIAM Access Analyzerがスキャンしたようです。

メールを確認するとちゃんと通知が来ています!

まとめ

ぽちぽちするだけで簡単に監視&通知の設定ができました。ぜひ有効活用していきましょう!