Amazon CloudWatch アラームを使用して AWS CloudTrail イベントを監視したいです。
簡単な説明
CloudWatch アラームは、単一の CloudWatch メトリクス、または CloudWatch メトリクスに基づく数式の結果を監視します。CloudTrail イベントを監視するアラームを作成するには、トレイルで CloudWatch ログ記録を有効にし、CloudTrail ロググループにメトリクスフィルターを作成します。
注: メトリクスフィルターは、CloudWatch Logs に送信されるログデータから検索する用語とパターンを定義します。CloudWatch Logs はメトリクスフィルターを使用してログデータを数値メトリクスに変換します。これをグラフ化したり、アラームの設定対象にしたりすることができます。
解決策
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
開始する前に、以下のステップを完了してください。
- CloudTrail コンソールでトレイルを作成するか、AWS CLI を使用してトレイルを作成します。
- ロググループを作成します。これはトレイルの作成時に、完了できます。
- AWS マネジメントコンソールまたは AWS CLI を使用して、監視を行うために CloudWatch Logs にイベントを送信するようにトレイルを設定します。
- CloudWatch Logs ログストリームを作成するためのアクセス許可を CloudTrail に付与する AWS Identity and Access Management (IAM)ロールを作成または指定します。ログストリームは、CloudTrail イベントの配信先として指定したロググループに作成する必要があります。CloudTrail_CloudWatchLogs_Role ロールがデフォルトのロールです。
注: 「メトリクスフィルターを作成する」および「アラームを作成する」での次のステップは、MFA が有効になっていない ConsoleLogin イベントという CloudTrail イベントを監視する方法の例を示しています。
メトリクスフィルターを作成する
MFA が有効になっていない ConsoleLogin イベントという CloudTrail イベント用のメトリクスフィルターを作成するには、次の手順を実行します。
-
CloudWatch コンソールを開きます。
-
ナビゲーションペインの [ログ] で、[ロググループ] を選択します。
-
ロググループのリストで、トレイル用に作成したロググループを選択します。
-
[メトリクスフィルター] または [アクション] メニューから、[メトリクスフィルターを作成] を選択します。
-
[パターンを定義] ページの [フィルターパターンを作成] で、[フィルターパターン] に次の内容を入力します。
{ ($.eventName = ConsoleLogin) && ($.additionalEventData.MFAUsed != Yes) }
-
[パターンのテスト] では、デフォルト値を更新しないでください。[次へ] を選択します。
-
[メトリクスを割り当て] ページの [フィルター名] に、ConsoleSignInWithoutMFA と入力します。
-
[メトリクスの詳細] で、[新規作成] を有効にして、以下を完了します。
[メトリクス名前空間] に、CloudTrailMetrics と入力します。
[メトリクス名] に ConsoleSignInWithoutMFA と入力します。
[メトリクス値] に 1 と入力します。
[デフォルト値] は空のままにします。
-
[次へ] を選択します。
-
[確認と作成] ページで、選択内容を確認します。[メトリクスフィルターを作成] を選択してフィルターを作成するか、[編集] を選択して値を変更します。
注: メトリクスフィルターを作成すると、CloudTrail のトレイルロググループに関する [CloudWatch Logs ロググループの詳細] ページが開きます。
アラームを作成する
MFA が有効になっていない ConsoleLogin イベントという CloudTrail イベントを監視するためのアラームを作成するには、次の手順を実行します。
- [メトリクスフィルター ]タブで、作成したメトリクスフィルターを特定し、そのメトリクスフィルターでチェックボックスを選択します。
- [メトリクスフィルター] バーで、[アラームを作成] を選択します。[メトリクスと条件を指定] に、次の内容を入力します。
[メトリクス名] は、現在のメトリクス名 ConsoleSignInWithoutMFA のままにします。
[統計情報] は、デフォルトの Sum のままにします。
[期間] は、デフォルトの 5 分のままにします。
[条件] の [しきい値の種類] で、[静的] を選択します。
[metric_name が次の条件を満たす] で、[指定値以上] を選択します。
しきい値には、必要な値を入力します。この例では、3 がしきい値です。
[追加設定] では、デフォルト値を更新しないでください。
- [次へ] を選択します。
- [アクションの設定] ページの [通知] で、[新規トピックを作成] を選択するか、既存の Amazon Simple Notification Service (Amazon SNS) トピックを選択します。
[新規トピックを作成] では、Amazon SNS トピックの名前に ConsoleSignInWithoutMFA_CloudWatch_Alarms_Topic を入力します。
- [メールエンドポイント] には、アラーム通知を受け取るユーザーのメールアドレスを入力します。メールアドレスは必ずコンマで区切ってください。
注: 各メールアドレスで、Amazon SNS トピックへのサブスクリプションを確認する確認メールに返信する必要があります。アラームの [アクション] 列には、すべてのメール受信者の確認が終わるまで確認待ちと表示されます。
- [トピックを作成] を選択します。
- この例では、他のアクションタイプはスキップしてください。[次へ] を選択します。
- [名前と説明を追加] ページで、アラームの名前と説明を入力します。この例では、Console sign-in-without-MFA という名前と、5 分間で、MFA を使用しないコンソールサインインが 3 件よりも多く発生した場合アラームを起動するという説明を入力します。
- [次へ] を選択します。
- [プレビューと作成] ページで、選択内容を確認します。[アラームを作成] を選択してアラームを作成するか、[編集] を選択して値を変更します。
注: 上記のステップでは、指定した 5 分以内に AWS マネジメントコンソールのサインインが行われなかったときに起動する CloudWatch アラームを作成します。