2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OCI モニタリングを活用してログイン失敗を検知する

Last updated at Posted at 2025-01-09

今回やりたいこと

OCIコンソールへの不正アクセスを防ぐため、ログイン失敗が複数回発生した場合に、サービス・コネクタ・ハブを通じてモニタリングと連携し、担当者にアラートメールを送信する仕組みを構築します。
image2.png

作業手順

以下の手順でログイン失敗検知の仕組みを構築します。

  1. ログイン失敗の試行と監査ログの確認
  2. サービス・コネクタ・ハブの作成
  3. モニタリングの作成
  4. アラートメールの送信

設定内容

事前準備

事前準備として、パスワードを誤入力して「ユーザー名またはパスワードが無効です。」と表示される状態を再現します。
1.png

通知用トピックとして、システム管理者のメールアドレスを登録したトピックを作成済みであることを確認します。
(今回はTP-LoginFailureというトピックを使用します。)

トピックの作成手順については以下のドキュメントをご参照ください。
トピックの作成

監査ログの確認

監査ログを確認する場合、OCIコンソール画面左上のナビゲーションメニューから「監視および管理」→「監査」を選択します。
2.png

監査ログのタイプがcom.oraclecloud.IdentitySignOn.InteractiveLoginを確認します。
(コンソールログインに関するログです。)
3.png

ログ検索時にルート・コンパートメントを選択する必要があります。

対象ログの右側の折りたたみのアイコンを選択して展開、
4.png

赤枠の箇所がログイン失敗に関するログです。

"message":"InteractiveLogin failed with response Authentication failure 入力されたユーザー名またはパスワードが正しくありません。"

1.png

該当ログを選択、「サービス・コネクタ・ハブの作成」で使用するため、「値のコピー」で控えておきます。
2.png

サービス・コネクタ・ハブの作成

ログイン失敗用ログの確認後、サービス・コネクタ・ハブの作成を行います。
監視および管理」→「コネクタ」を選択します。
7.png

コネクタの作成」を選択します。
8.png


以下の情報を入力します。

  • コネクタ名:任意(例:SCH-LoginFailure
  • 説明:任意(例:ログイン失敗用コネクタ
    9.png
  • コネクタの構成
    • ソース:ロギング
    • ターゲット:モニタリング
  • ソースの構成
    • ログ・グループ:_Audit(監査ログ用デフォルトログ・グループ)
    • ログ・フィルタ・タスク
      • フィルタ・タイプ:属性
      • 属性名:data.message
      • 属性値:InteractiveLogin failed with response Authentication failure

ソースのコンパートメントはルート・コンパートメントを選択する必要があります。

3.png

  • ターゲットの構成
    • メトリック・ネームスペース:任意(例:custom_audit
    • メトリック:任意(例:LoginFailure

ターゲットの構成値は手動で入力します。

メトリック・ネームスペースの接頭辞として、oci_ および oracle_ はOracleの予約語であるため使用できません。

11.png


検知するログの文字列をアラートメールに表示したい場合、「ディメンションの追加」から「パスの編集」で以下の内容を入力後、「変更の保存」を選択します。

  • 文字列
    • ディメンション名:message
    • 値:logContent.data.message
      12.png

尚、作成時に以下の画面が表示された場合、サービス・コネクタ・ハブがモニタリングへの書き込み権限を持っていないことを意味します。
この場合、モニタリングへの書き込みを許可するIAMポリシーを作成する必要があります。
デフォルトでは「ConnectorPolicy_monitoring_YYYY-MM-DDThh:mm:ssZ」という名前で作成され、このIAMポリシー名で問題なければ「作成」を選択します。
13.png

IAMポリシーが作成されると、以下のステートメントが定義されます。

allow any-user to use metrics in compartment id <コンパートメントのOCID> where all {request.principal.type='serviceconnector', target.metrics.namespace='<メトリック・ネームスペース>', request.principal.compartment.id='<コンパートメントのOCID>'}

全ての項目を作成後、「作成」を選択します。
14.png

サービス・コネクタ・ハブが正常に作成されます。
15.png

モニタリングの作成

サービス・コネクタ・ハブの作成後、モニタリングを作成します。
監視および管理」→「アラーム定義」を選択します。
16.png

アラームの作成(Create Alarm)」を選択します。
17.png


以下の情報を入力、「Save Alarm(アラームの保存)」を選択します。

  • Alarm name(アラーム名):任意(例:AL-LoginFailure
  • Alarm summary(アラーム・サマリー):任意(例:イベントが到着しました。通知内容:ステータス:{{status}} 発生日時:{{timestamp}} 重大度:{{severity}} オブジェクト名:{{title}} メッセージ: {{Dimensions.message}}

この箇所で使用する変数は「動的変数」と呼ばれ、発報時に内容が自動的に置き換わります。
ただし、改行は使用不可で1行のみ表示されます。

  • Metric description(メトリック詳細)
    • Metric namespace(メトリック・ネームスペース):任意(例:custom_audit
    • Metric name(メトリック名):任意(例:LoginFailure
    • Interval(間隔):任意(例:1 minutes
    • Statistic(統計):Count

CountはIntervalで設定した間隔での合計値を返します。
詳細は以下のOCI公式ドキュメントをご覧ください。
問合せの統計の選択

18.png

  • Metric dimensions(メトリック・ディメンション)
    • Dimension name:任意(例:connectorName
    • Dimension value:任意(例:SCH-LoginFailure
  • Trigger rule(トリガー・ルール)
    • Operator(演算子):任意(例:greater than or equal to(次より大きいか等しい)
    • value(値):任意(例:1
    • Trigger delay minutes(トリガー遅延分数):任意(例:1分
    • Alarm Severity(アラーム重大度):任意(例:Critical
    • Alarm Body(アラーム本体):任意(ここでは空白)

Trigger delay minutes(トリガー遅延分数)は条件が維持される必要がある時間で、継続時間と置き換えてください。
アラームへのトリガー・ルールの追加

Alarm Severity(アラーム重大度)はCritical,Error,Warning,Infoから選択可能です。

19.png

  • Destination(宛先)

    • Destination Service(宛先サービス):Notifications
    • Topic(トピック):任意(例:TP-LoginFailure
      20.png
  • Message Grouping(メッセージのグループ化):任意(例:Group notifications across metric streams

  • Message Format(メッセージのフォーマット):任意(例:Send formatted messages

  • Repeat notification? (通知の繰り返し):無効

有効の場合、繰り返しの間隔を分単位で設定可能です。

  • Suppress notifications(抑制通知):無効

有効時には指定期間モニタリングが非アクティブ状態となり、アラームが発報しません。

21.png

モニタリング用アラームが作成されます。
22.png

アラートメールの送信テスト

設定後、ログイン失敗を試行すると、以下のようなアラートメールが送信されます。
23.jpg

アラートメールが発報された後、さらにログイン失敗の監査ログが記録されない場合、10分後にアラートの状態が RESETに戻り、解除メールが送信されます。

10分以上経過しても解除メールが届かない場合、ログイン失敗が継続して発生している可能性があります。
その際は、対象ユーザーのアクセス元などを確認し、必要な対応を行うことを推奨します。

24.jpg

以上で全ての設定は完了です!!

参考記事

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?