Amazon Web Services ブログ
Splunk を使用した Amazon FSx for NetApp ONTAP でのユーザーおよび管理アクションの監査
このブログは 2022 年 9 月 13 日に Promise Owolabi(Senior Storage Specialist)によって執筆された内容を日本語化したものです。原文はこちらを参照してください。
アップデート( 2022 年 10 月 26 日):ファイルシステムがログ転送先の IP アドレスに接続できるか検証することを推奨するようブログの内容を変更しました
ログと監査イベントの監視は、あらゆる組織のセキュリティプラクティスの重要な部分です。ファイルシステムの場合は、ファイルシステムの構成を変更する管理アクションだけでなく、エンドユーザーのアクティビティ(ファイルアクセスの試行など)のロギングも含まれます。Amazon FSx for NetApp ONTAP(FSx for ONTAP) には、組織がセキュリティに対する姿勢を評価し、アクセス制御ポリシーの潜在的なギャップを特定するのに役立つセキュリティ機能があります。
FSx for ONTAP は、AWS クラウドでフルマネージドの NetApp ONTAP ファイル システムを作成、実行できるストレージサービスです。ONTAP ファイルシステムの使い慣れた機能と、パフォーマンス、機能、API に加えて、AWS のフルマネージドサービスの俊敏性と、スケーラビリティ、シンプルさを提供します。
この記事では、FSx for ONTAP にビルトインされているロギング機能とファイルアクセス監査機能について説明します。管理ログとファイルアクセスログの両方を取り出し、外部の検索および分析ツールに集約して、レポートの作成や、監視、可視化することができます。これにより、AWS サービスや、Splunk などの AWS パートナーソリューションを使用して、エンドユーザーのアクティビティをほぼリアルタイムで自動化や、監視、対応することができます。コンプライアンスの目標を達成するために、組織はファイルや、フォルダ、ファイル共有に誰がアクセスしているのか、どのようなアクションが実行されているかを把握し、実証する必要があります。
ソリューション概要
このブログの最初の部分で、FSx for ONTAP ファイルシステムから監査ログイベントを転送する方法について説明します。次の部分で、SMB および NFS ボリュームのファイルアクセス監査の設定について説明します。
図 1: Splunk を使用した FSx for ONTAP ログとファイルアクセス監査の概要
監査ログイベント
FSx for ONTAPのSET
は、ONTAP CLI および ONTAP API から発生した操作(ファイルシステムの変更)の監査イベントを送信します。監査イベントは、Splunk Enterprise および Universal Forwarder(UF)インスタンスのシスログ宛に転送されます。FSx for ONTAP のマルチ AZ ファイルシステムからのログ転送は、優先ローカルサブネットとスタンバイローカルサブネットに制限されているため、各サブネットにシスログサーバーが必要です。Splunk Enterprise と UF の各ノードで syslog-ng をシスログサーバーとして使用し、Splunk は新しいログイベントのログファイルを監視します。
ファイル アクセスの監査
ファイルアクセスの監査を設定するには、ONTAP CLI を使用して監査ポリシーを作成して有効化し、SMB 共有でシステム監査制御リスト(SACL)を設定する必要があります。SACL は、監査イベントを発行するアクセスタイプとユーザーまたはグループを定義します。ONTAP CLI または Windows ファイルエクスプローラーを使用して、SMB 共有に SACL を設定できます。
NTFS と Unix のファイルアクセスイベントを可視化して監視するために、Splunk を使用して監査イベントのインデックスを作成し、ファイルアクセスイベントのほぼリアルタイムの監視結果を表示するダッシュボードを作成します。
監査ログ転送の構成
このセクションでは、クラスタで実行された管理アクティビティをシスログの宛先に転送するように FSx for ONTAP を構成します。
ステップ1:Splunk インデックスと、Universal Forwarder(UF)、syslog-ng をセットアップする
まず、監査イベントを保存するための個別の Splunk インデックスを作成し、Splunk Enterprise と UF に syslog-ng をセットアップします。Splunk Enterprise と UF 間の転送と受信を設定し、ログファイルを監視します。
- 「Settings」を選択 し、「indexes」を選択します。
- 右上にある「New index」を選択します。
- インデックス名を入力します。(例:
ontap_syslogs
) - それ以外はデフォルト設定のまま「Save」を選択して、インデックスを作成します。
図 2: ログの Splunk インデックスを作成する
次に、Splunk Enterprise と Universal Forwarders にシスログサーバーをセットアップします。
- Splunk Enterprise および UF サーバーに syslog-ng をインストールします。
sudo amazon-linux-extras install epel sudo yum install syslog-ng
- syslog-ng 構成ファイル (
/etc/syslog-ng/syslog-ng.conf
) を変更し、以下の行を追加します。
source s_fsx { tcp(ip(0.0.0.0) port(514)); }; destination d_fsx { file( "/var/log/fsx/fsxontap.log" create_dirs (yes) owner("root") group("root") perm(0755) ); }; log { source(s_fsx); destination(d_fsx); };
- syslog-ng サービスを再起動します。
- Universal Forwarder で手順 1 ~ 3 を繰り返します。
次に、Splunk Enterprise サーバーで受信データを構成します。
- Splunk Enterprise コンソールの「Settings」に移動し、「Forwarding and Receiving」を選択します 。
- 「Receive Data」セクションより「Configure receiving」を選択します。右上にある「New Receiving Port」を選択します。
- リッスンするポート(例:9997)を入力し、「Save」を選択します。
図 3: Splunk がシスログデータを受信するようにセットアップする
次に、Splunk Universal Forwarder を Splunk Enterprise サーバーにイベントを送信し、ローカルの /var/log/fsx/fsxontap.log
ファイルを監視するように設定します。
- Universal Forwarder で実施:
a. データを転送するように UF を構成します。
b. イベントのログファイルを監視します。
- Splunk Enterprise サーバーで実施:
a. イベントのログファイルを監視します。
ステップ2:FSx for ONTAP から Splunk へのログ転送を有効にする
ONTAP CLI を使用して、Splunk への監査ログ転送を設定できます(FSx for ONTAP ユーザー ガイドの 「NetApp ONTAP CLI を使用する」 を参照)。Splunk エンドポイントへのロギングを設定するには、次のコマンドを入力します。
cluster log-forwarding create -destination <splunk-enterprise-IP> -port 514 -protocol tcp-unencrypted -verify-server false -facility user cluster log-forwarding create -destination <universal-forwarder-IP> -port 514 -protocol tcp-unencrypted -verify-server false -facility user
もし、以下のエラーが発生した場合は、パラメータ-force
を使用しないでください。その代わりに、接続テストが成功するようにセキュリティグループや、その他のルーティングが構成されていることを確認し、ファイルシステムが期待どおりに動作することを確認してください。
Error: command failed: Cannot contact destination host (172.31.34.125) from node "FsxId01234abcdef56-01". Verify connectivity to desired host or skip the connectivity check with the "-force" parameter.
splunk-enterprise-IP
とuniversal-forwarder-IP
に両方のノードから接続ができることを確認して、ログ転送先が作成されていることを確認してください。
監査ログが Splunk に転送されていることを確認するために、Amazon FSx または ONTAP CLI を使用してボリュームを作成します。
次に、AWS CLI を使用してスループット変更の操作を実行してフェイルオーバーを強制します。
aws fsx update-file-system --file-system-id fs-abcdefghij123456 --ontap-configuration ThroughputCapacity=256
Splunk インデックス (ontap_syslogs) を検索して、監査イベントが配信されていることを確認します。Splunk コンソールで「Search and Reporting」 に移動し、受信イベントを検索します。
index="ontap_syslogs" | table _time,_raw | sort -_time
図 4: Splunk でログイベントを検索する
以下にスループット変更操作がSuccess
となっているイベントの例を記載します。
2022-03-07T17:56:57+00:00 ip-172-31-16-155.eu-west-1.compute.internal FsxIdXXXXXXXXXXXXXXXXX-02: FsxIdXXXXXXXXXXXXXXXXX-02: 00000002.00007e75 00006ba9 Mon Mar 07 2022 17:56:50 +00:00 [kern_audit:info:4089] 8503e90000000246 :: FsxIdXXXXXXXXXXXXXXXXX:http :: 52.210.44.239:3167 :: FsxIdXXXXXXXXXXXXXXXXX:fsx-control-plane :: POST /api/private/cli/storage/failover/takeover : {"ofnode":" FsxIdXXXXXXXXXXXXXXXXX-02","halt":"true","option":"normal"} :: Success:
NTFS アクセス監査の構成
ファイルアクセス監査ログは、FSx for ONTAP のログ転送フレームワークと統合されていません。アクセス監査イベントは、ファイルシステムのローカルパスに保存する必要があります。
ONTAP CLI を使用して NTFS アクセス監査を設定するには、まずファイルアクセス監査イベントを保存するボリュームを作成し、次に SVM でファイルアクセス監査を有効にします。そして、ボリューム上の NTFS セキュリティスタイルのファイルとディレクトリに対して監査ポリシーを設定します。
ステップ1:Storage Virtual Machine (SVM) の監査を有効にする
- アクセス監査ログを格納するボリュームを作成します。
- vserver 監査構成にて、ログを
/audit
のパスに送信し、たとえば5 分
ごとにログをローテーションするよう構成してください。監査要件に応じてログのローテーション頻度を減らし、保存のニーズに応じてログを保持することができます。
- vserver の監査構成を有効にします。
ステップ2:ファイル アクセス監査のために NTFS ファイルとフォルダに NTFS SACL(監査ポリシー)を有効にする
- NTFS セキュリティスタイルでボリュームを作成します。
- 作成したボリュームに共有を設定します。
- NTFS セキュリティ記述子を作成します。この操作を実施するためには、ONTAP CLI の advanced 権限が必要です。
- NTFS SACL アクセス制御エントリを NTFS セキュリティ記述子に追加し、成功したアクセス試行と失敗したアクセス試行の 2 つのエントリを作成します。
- SVM の監査ポリシーを作成します。ポリシーは NTFS セキュリティ記述子とファイルおよびフォルダパスとの関連付けを含むさまざまなタスクのコンテナとして機能します。
- セキュリティポリシーにタスクを追加します。このタスクは、セキュリティ記述子 sd1 内の成功および失敗のアクセス制御エントリを
/ntfs
ファイルとフォルダに関連付けます。
- 最後に、セキュリティポリシーを
/ntfs
内の NTFS ファイルとフォルダに適用します。
ファイルアクセス監査イベントがログに記録されていることを確認するために、 SMB を使用してntfs
共有にアクセスしていくつかのコンテンツを作成してください。次に、 audit
ボリュームにアクセスして、アクセスイベントを含む .xml 形式のログファイルを確認します。
図 5: XML のファイルアクセス監査ログ
UNIX アクセス監査の構成
続いて、UNIX セキュリティスタイルのファイルとフォルダへの NFS アクセスのファイルアクセス監査を構成します。これは、監査アクセス制御エントリ(ACE)を NFSv4.x ACL に追加することで実現します。FSx for ONTAP で NFS イベントを監査するには、NFSv4 を有効にする必要があります。
- FSx for ONTAP の該当ファイルシステムで、NFSv4 ACL サポートを有効にします。
- UNIX セキュリティスタイルでボリュームを作成します。
- EC2 インスタンスに、
/unix
ボリュームをマウントします。
- unix フォルダの
/mnt/unix
に対して、監査フラグを再帰的に追加します。
- 該当の FSx for ONTAP ファイルシステムで、SVM 監査を有効にします。前述の NTFS アクセス監査の構成のステップ1の指示に従い ます。手順をすでに実施済みの場合は、次のアクションに進んでください。
- UNIX インスタンスから
/mnt/unix
ィレクトリにいくつかのファイルを作成してください。/audit
ボリュームをマウントして、/mnt/unix
ディレクトリに対する UNIX アクセスイベントがログに記録されていることを確認します。
Splunk で監査ログとファイルアクセスログを可視化する
このセクションでは、アクセスイベントを監視するダッシュボードを作成します。Splunk は/audit
ボリュームをマウントして、ファイルの変更を監視し、コンテンツをインデックスに転送します。
ステップ1:Splunk へアクセスイベント取り込み
- 検索クエリを簡素化するために、Splunk Add-on for Microsoft Windows をインストールします。Splunk コンソールに移動して「+Find More Apps」を選択し、 「Add-on for Microsoft Windows」を検索します。「Install」を選択 し、Splunk.com のユーザー名とパスワードを入力して、EULA の条件に同意、ログインし、インストールします。
図 6: Splunk Add-on for Microsoft Windows
- Splunk Enterprise または UF サーバーに
/audit
ボリューム をマウントします。
- ファイルアクセス監査用に個別の Splunk インデックスを作成します。
a. 「Settings」を選択し、「Indexes」を選択します 。
b. 右上にある「New Index」を選択します。
c. インデックス名を入力します。(例:ontap_access)
d.その他はデフォルト設定のままとし、「Save」を選択してインデックスを作成します。
-
/mnt/audit
ディレクトリ を監視し、イベントをontap_access
インデックスに転送するために、以下内容の conf ファイルを作成します 。<svm_name> を SVM 名に置き換えてください。
これにより、新しくローテーションされたファイルが 5 分ごとにキャプチャされ、audit_<svm_name>_last.xml
ログファイルが除外されます。デフォルトでは、Splunk は最初の 256 バイト(先頭)を使用して、以前に確認したファイルであるかどうかを判断し、最後の 256 バイト(末尾)を使用して、最後に確認した後に変更がされているかを確認します。CRC チェック用に、ファイルがローテーションしたときの違いが分かるようにするため、デフォルトのinitCrcLength
を 1024 バイトという高い値でオーバーライドします。
-
- 次に、アクセスイベントを複数の行に分割する
props.conf
ファイルを作成します。
- 次に、アクセスイベントを複数の行に分割する
- Splunk コンソール([Setting] > [Server Controls] > [Restart Splunk])、またはサーバー CLI(
sudo /$SPLUNK_HOME/bin/splunk restart
)を使用して、Splunk サーバーを再起動します。
ステップ2:ダッシュボードの検索と作成
ダッシュボードを作成する前に、イベントが Splunk に配信されていることを確認します。Splunk コンソールに移動し、「Search and Reporting」を選択して、上記のステップ 1.3 で作成したファイルアクセス監査インデックスのontap_access
に配信されたイベントを検索します。
index="ontap_access"
図 7: Splunk でのファイルアクセスイベントの検索
次に、これらのイベントを表示するダッシュボードを作成します。Splunk コンソールに移動し、左側のアプリリストから「Search and Reporting」を選択します。検索フィールドに次の検索クエリを入力します。
- 成功と失敗の監査イベントタイムライン
- 削除数
- データにアクセスする個別の SMB ユーザー
- データにアクセスする個別の UNIX ユーザー
- アクセス成功イベント数
- アクセス失敗イベント数
- 50以上の一括削除を実行しているユーザー
- イベントを発生させている SMB ユーザーの上位 10 名
- イベントを発生させている UNIX ユーザーの上位 10 名
- SMB イベントサマリ
- UNIX イベントサマリ
上記の検索結果の度に「Visualization」タブに移動して設定を変更します。
- 削除と、個別の SMB、UNIX ユーザー、成功および失敗したアクセスイベントの「Select visualization」から「Single Value」を選択します。
- イベントを生成する上位 10 名の SMB および UNIX ユーザーの「Pie Chart」を選択します。
- 50 を超える一括削除を実行しているユーザーの「Bar Chart」を選択します。
- 成功と失敗の監査イベントタイムラインの「Line Chart」を選択します。
図 8: Splunk クエリの可視化
検索結果ごとで変更した可視化を、ダッシュボードに追加します。
- 「Save As」ドロップダウンメニューに移動し、「New Dashboard」を選択し、検索結果の「Dashboard Title」 と「Panel Title」を入力して、「Save to Dashboard」 を選択 します。
- 最初の検索結果ダッシュボードを作成した後に、次の可視化を同じダッシュボードに追加します。「Save As」を選択し、次に「Existing Dashboard」を選択し、既存のダッシュボード名を選択して Panel Title を入力し、「Save to Dashboard」を選択します。
図 9: ダッシュボードの作成
ダッシュボードにアクセスするには、「Dashboards」に移動し、リストから作成したダッシュボードを選択します。「Edit」ボタンでダッシュボードを編集し、目的のレイアウトに合わせてチャートを移動およびサイズを変更します。アクセスアクティビティを表示するサンプルのダッシュボードを以下に示します。
図 10: ファイルアクセスイベント監視のサンプルダッシュボード
まとめ
このブログ記事では、 FSx for ONTAP ファイルシステムの監査イベントのキャプチャについて説明しました。また、 SMB や NFS のファイルとフォルダにアクセスした際のキャプチャや、Splunk を使用してダッシュボードでイベントを可視化する方法についても説明しました。
このソリューションは、金融、個人、医療などの機密ファイルデータを AWS に保存する際に、管理ユーザーイベントをログに記録することで、コンプライアンスや規制基準を満たすのに役立ちます。
Splunk は AWS コンピテンシーパートナーです。同社のソフトウェアとクラウドサービスにより、お客様はウェブサイトや、アプリケーション、サーバー、ネットワーク、IoT、モバイルデバイスから機械で生成されたビッグデータを検索、監視、分析、可視化できます。
翻訳はネットアップ合同会社の藤原 善基様、監修はプロフェッショナルサービス本部の葉山が担当しました。