SAP HANA のセキュリティ機能の説明

監査の設定

Objective

After completing this lesson, you will be able to 監査を設定および有効化します。

監査の概要

監査の概要

監査は、SAP HANA データベースで実行または試行されたアクションを可視化するものです。これにより、たとえば、機密データへの読込アクセスをログに記録し、監視することができます。そのため、ポリシーの基本セットを登録することをお奨めします。

監査は、テナントデータベースごとに有効化および無効化することができます。また、SAP HANA コックピットまたは SQL 文を使用してデータベースごとに個別に設定することができます。1 つのデータベースで監査設定を変更しても、SAP HANA システムの他のデータベースの監査には影響しません。

監査ロギングはデフォルトでは無効化されています。

この図は、SAP HANA 監査コンポーネント (コンセプトフレームワーク内の監査ポリシー、アクション、および追跡) を示しています。

SAP HANA データベースの監査サービスを通じて、データベースで実行される特定のアクションを監視および記録することができます。このサービスを使用するには、最初にデータベースに対してサービスを有効化します。その後、必要な監査ポリシーを登録および有効化することができます。

監査証跡はシステムデータベースでのみ設定され、後でテナントデータベースで変更することはできません。監査エントリは、監査ポリシーがトリガされると、1 つまたは複数の監査証跡 (データベーステーブル、linux syslog、CSV ファイル、またはカーネルトレース) に登録されます。

監査ポリシー

監査ポリシーでは、監査対象のアクションを定義します。また、監査に関連するアクションを実行する条件の概要についても説明します。アクションが実行されると、監査ポリシーがトリガされ、監査イベントが監査証跡に書き込まれます。監査ポリシーはデータベース固有です。

監査ポリシーでは、監査対象のアクションをいくつでも指定できますが、すべてのアクションを同じポリシーで結合できるわけではありません。監査ポリシーでは、監査対象のアクションに加えて、実際に監査されるイベントの数をさらに絞り込むパラメータを指定します。監査対象のアクションのステータス (成功または失敗) を定義し、スキーマやテーブルなどのターゲットオブジェクトを特定します。また、監査対象のユーザと監査レベル (ALERT、WARNING、INFO など) を設定する必要があります。

監査ポリシーがトリガされると、対応するレベルの監査エントリが監査証跡に書き込まれます。これにより、監査対象のアクションのチェックツールで重要な情報を見つけやすくなります。

監査アクション

アクションは、SQL 文によるデータベース内のアクションの実行に対応します。たとえば、システム内のユーザプロビジョニングを追跡するには、SQL 文CREATE USERおよびDROP USERの実行を監査する監査ポリシーを作成します。

ほとんどのアクションは単一の SQL 文の実行に対応していますが、複数の SQL 文の実行に対応するアクションもあります。たとえば、アクションはGRANT ANY SQL 文GRANT PRIVILEGE、、GRANT ROLE、GRANT STRUCTURED PRIVILEGEおよびGRANT APPLICATION PRIVILEGEに対する複数のエンティティの付与を監査します。

通常監査されるその他のアクションには、オブジェクトの登録、データベース内のデータのクエリまたは操作、ユーザ権限の変更、システム設定やデータへのアクセスと変更などがあります。

成功したアクションと失敗したアクションの両方を記録することができます。

ユーザ、ロール、権限イベントに関する SAP HANA データベースの変更に対する監査可能なアクションの例は以下のとおりです。

  • ユーザの作成または削除、役割の作成または削除

  • ロールの付与または取消

  • SQL 権限、システム権限、および分析権限の付与または取消

  • 分析権限の作成または削除

  • データベースへの接続試行などのユーザの認証

システム設定の変更 (.ini ファイル、ライセンスキーのアップロード、すべてのシステムライセンスの設定または設定解除、データボリューム暗号化の変更など) は、ログに記録可能なアクションです。設定変更に対して監査ロギングを有効化すると、パラメータの以前の値が監査証跡に書き込まれます。

スキーマ、テーブル、ビュー、およびプロシージャ内の機密データへのアクセスまたはそのデータに加えた変更を監査することができます。データへの書込アクセスと読込アクセス (SELECT、INSERT、UPDATE、DELETE、EXECUTE 文) の両方を記録することができます。

必須監査アクション

監査が有効な場合、特定のアクションが常に監査されるため、それをユーザ定義の監査ポリシーに含めることはできません。監査証跡では、これらのアクションには内部監査ポリシー必須監査ポリシーのラベルが付けられます。

必須監査アクションには、監査ポリシーの登録、変更、削除、および監査証跡からの監査エントリの削除 (カラムストアデータベーステーブルに書き込まれている場合) が含まれます。監査の有効化/無効化、監査証跡ターゲットの変更、監査証跡ターゲットの場所の変更 (CSV テキストファイルの場合) などの監査設定に対する変更は、監査アクションとしてもログに記録されます。

監査不可イベント

監査できるのは、データベースエンジン内で実行されるアクションのみです。アクションが実行されたときにデータベースエンジンがオンラインでない場合は、そのアクションを検出できないため、監査することができません。このようなアクションには、SAP HANA データベースインスタンスのアップグレードや OS コマンドを使用したシステム設定ファイルの直接的な変更などが含まれます。

アップグレードは、インスタンスがオフラインであるときにトリガされます。インスタンスが再度オンラインになったときに、どのユーザがいつアップグレードをトリガしたかを特定することはできません。

SQL を使用して行われた変更のみがデータベースエンジンに表示されます。システムがオフラインのときに設定ファイルを変更できます。

監査証跡

監査ポリシーがトリガされると、すなわちポリシーで定義された条件でポリシーのアクションが実行されると、監査エントリが 1 つまたは複数の監査証跡に登録されます。

本稼動システムでは、以下の監査証跡対象がサポートされています。

監査証跡

監査証跡対象説明
内部データベーステーブル監査情報の迅速なクエリおよび分析を可能にします。安全で不正変更の防止策が施された保管場所も備えています。監査エントリには、パブリックシステムビューからのみアクセスできます。
Linux syslogUNIX システムのデフォルトログデーモン。データベース管理者さえアクセスまたは変更できないため、監査証跡の安全な保管場所。
CSV テキストファイルこれは、非本稼動システムでのテスト目的でのみ使用してください。

監査レベル (監査されるアクションの重大度) に対して個別の監査証跡対象を設定することができます。

監査レベルが EMERGENCY、CRITICAL、または ALERT の監査ポリシーの監査エントリは、該当する監査レベルに指定された監査証跡ターゲットに書き込まれます。監査レベルに監査証跡対象が設定されていない場合、エントリはデータベース用に設定された監査証跡対象に書き込まれます。

監査ポリシー固有の対象は、システムデータベースでも可能です。この場合、特定のポリシーの監査エントリは、指定された監査証跡ターゲットに書き込まれます。監査ポリシーに監査証跡対象が設定されていない場合、エントリは監査レベルの監査証跡対象 (設定されている場合)、またはデータベースに設定された監査証跡対象に書き込まれます。個別のポリシーごとに複数の監査証跡対象を設定することができます。

注記

デフォルトでは、テナントデータベース管理者は、データベースの監査証跡ターゲットを個別に設定することはできません。これは、基礎となるシステムプロパティがデフォルト設定変更ブロックリスト (multidb.ini) にあるためです。テナントデータベースのすべての監査証跡のデフォルトターゲットは内部データベーステーブルです。推奨されませんが、テナントデータベースの監査証跡対象を変更することができます。

注意

テナントデータベース監査証跡のプライバシーを保証するために、テナントデータベースのデフォルト監査証跡ターゲット (内部データベーステーブル) は変更しないことをお奨めします。

監査ポリシーの有効化

監査は、監査ポリシーを登録して有効化することによって実装されます。監査ポリシーでは、監査対象のアクションに加え、監査開始の基準となるアクション実行条件を定義します。たとえば、特定のポリシーのアクションは、特定のプロジェクトで特定のユーザによって実行された場合にのみ監査されます。アクションが実行されると、監査ポリシーがトリガされ、監査イベントが監査証跡に書き込まれます。

SAP HANA コックピットでの監査の有効化

図 "監査ログの設定" は、SAP HANA コックピットを使用してシステムデータベースの監査ログを設定およびオンに切り替える方法の概要を示しています。

この図は、システムインタフェースでの監査およびデータベース設定の検索、設定、および参照のプロセスを示しています。

注記

監査は、マルチテナント SAP HANA データベースのテナントごとに有効化または無効化することができます。システムデータベースでは、監査証跡対象を設定することもできます。テナントデータベースでは、これを変更することはできません。

監査ポリシーの基本設定

ウィザードを使用して、監査を迅速に有効化し、監査ポリシーの基本設定を適用することができます。

監査ポリシーをマニュアルで設定する代わりに、ウィザードを使用して SAP の推奨設定を適用することができます。これにより、監査ポリシーの使用を迅速に開始することができます。

注記

基本設定では、設定が特定のシステムに最適であることは保証されません。設定を最適化するために、特定の設定をマニュアルで行うことをお奨めします。

この図は、監査設定プロセスで監査ステータス、追跡ターゲット、およびポリシーを定義するステップを示しています。

監査ポリシーの作成

この図は、番号付きのガイドラインを含むウィザードインタフェースを使用して監査ポリシーを登録するステップを示しています。

監査ポリシーでは、監査するアクションをいくつでも指定することができます。すべてのアクションを同じポリシーで結合できるわけではないため、互換性のある監査アクションはグループ化されます。アクションを選択すると、選択したアクションと互換性がないすべてのアクションを選択できなくなります。

互換性のない監査アクションを 2 つ選択する場合は、2 つの個別の監査ポリシーを登録する必要があります。

監査ポリシーでは、監査対象のアクションに加えて、実際に監査されるイベントの数をさらに絞り込む追加パラメータも以下のように指定されます。

監査済みアクションステータス: 実行完了時、実行失敗時、またはその両方。

ターゲットオブジェクトまたはオブジェクト: スキーマ、テーブル、ビュー、プロシージャ、およびシーケンス。

監査対象ユーザ: すべてのユーザまたは個別ユーザを監査ポリシーに含めたり、監査ポリシーから除外したりすることができます。

監査レベル: EMERGENCY、ALERT、CRITICAL、WARNING、または INFO

監査ポリシーがトリガされると (つまり、ポリシーで定義された条件でポリシーのアクションが発生すると)、監査証跡に監査エントリが登録されます。

Firefighter ロギングでは、特定のユーザが実行したすべてのアクションのログが記録されます。これには、個別に監査できるすべてのアクション、および個別に監査できないアクションが含まれます。そのようなポリシーは、特定の権限を持つユーザのアクションを監査する場合に便利です。

注記

一部のアクションは、すべてのアクション (特にシステムの再起動とシステムリカバリ) を含むポリシーがある場合でも、データベース監査を使用して監査することはできません。

注意

Firefighter ロギングでは多数の監査エントリが生成される可能性があるため、必要な場合にのみ有効化してください。

システムデータベースからのテナントデータベースの監査ポリシーの作成

SAP HANA 2.0 SPS04 以降では、システムデータベースから特定のテナントデータベースアクティビティを監査することができます。

この図は、監査ポリシーおよびデータベースステータス詳細のドロップダウンメニューを含むデータベース管理インタフェースを示しています。

通常、テナントデータベースの監査ポリシーは、テナントデータベース内から登録されます。ホスティングなどの一部のシナリオでは、テナントデータベースのアクティビティを一元的に監視するのが望ましい場合があります。

セッション管理、システム設定の変更、ライセンスのインストールや削除を除く特定の領域 (証明書の管理、認証、暗号化など) に対するアクションは、システムデータベースから直接監査することができます。

テナントデータベースに関してシステムデータベースで登録された監査ポリシーは、テナントデータベースに表示されますが、そこから変更することはできません。

監査証跡テーブルのサイズの監視

監査テーブルが無期限に増大しないようにするには、テーブルをトランケートして古い監査エントリを削除します。システムの全体的なメモリ割当限度に関連して、テーブルのサイズが監視されます。デフォルトでは、割当限度の 5%、7%、9%、および 11% の定義済値に達すると、アラートが発行されます。この動作は、テーブルベースの監査ログの check 64 Total memory usage を使用して設定できます。監査テーブルをトランケートできるのは、システム権限 AUDIT OPERATOR を持つユーザだけです。

注記

このアラートは、(syslog ではなく) 監査証跡対象としてデータベーステーブルを選択した場合にのみ適用されます。

SAP HANA コックピットを使用して、特定の時間までに登録された監査エントリを監査テーブルから削除することができます。

内部データベーステーブルに監査エントリを書き込むように明示的に設定されている監査ポリシーの場合、監査保持期間を日数で指定することができます。監査エントリの保持期間が経過すると、監査エントリは削除されます。保持期間を既存の監査ポリシーに追加すると、その保持期間を超過した既存の監査エントリがすべて削除されます。

デフォルトの最短保存期間は 7 日です。

この図は、監査ポリシー設定インタフェース内の保持期間の設定を示しています。

監査ログエントリを削除する必要がある理由として、該当するエントリが不要になった可能性が挙げられます。このようにエントリを削除することにより、データベースストレージを解放したり、会社のコンプライアンス要件を満たしたりすることができます。

保存期間を定義するには、SAP HANA コックピットを使用して新しい監査ポリシーを登録するか、既存の監査ポリシーを編集するかして、監査証跡ターゲットとしてデータベーステーブルを設定します。

テーブルが大きくなりすぎて、古いエントリを削除するのに十分なメモリがない場合は、以下の SQL コマンドを使用してテーブルを完全に空にします。 ALTER SYSTEM CLEAR AUDIT LOG ALL

注記

保存期間は、データベーステーブルの監査証跡対象を明示的に使用する監査ポリシーに対してのみ指定することができます。デフォルトの監査証跡対象がデータベーステーブルに設定されている場合でも、デフォルトの監査証跡対象を使用する監査ポリシーの保存期間を指定することはできません。既存の監査ポリシーに保存期間を追加すると、保存期間を超過した既存の監査ログエントリがすべて削除されます。

監査ログステータスの監視およびポリシーのチェック

SAP HANA コックピットの監査タイルでは、監査ログのステータスを表示し、有効な監査ポリシーをチェックすることができます。

注記

SAP HANA コックピットを使用して、既存の監査ポリシーに対応する SQL 文を監査ポリシー詳細に表示することができます。

監査証跡の表示

監査済アクションが発生するたびに、1 つまたは複数の監査エントリが登録され、監査証跡に書き込まれます。監査証跡ターゲットがデータベーステーブルである場合は、SAP HANA コックピットの監査アプリで監査証跡を表示することができます。SAP HANA コックピットで監査証跡を照会、フィルタ、およびソートすることができます。レイアウトの設定には、いくつかのオプションがあります。

この図は、監査管理インタフェースでの検索語句から監査ポリシー詳細へのナビゲートを示しています。

または、SAP HANA データベーステーブルを監査証跡ターゲットとして使用して、監査情報を迅速にクエリおよび分析することもできます。安全で不正変更の防止策が施された保管場所を備えています。監査エントリには、パブリックシステムビュー AUDIT_LOG からのみアクセスできます。このビューは読込専用です。システム権限 AUDIT OPERATOR を持つユーザのみが、基本となる内部テーブルから古いエントリを削除することができます。

この図は、SAP HANA データベースエクスプローラでの SQL クエリと、その 8 つの結果の監査ログエントリを示しています。

SAP HANA コックピットの SQL コンソールで PUBLIC.AUDIT_LOG ビューを開くか、SQL コマンド SELECT * FROM "PUBLIC"."AUDIT_LOG" を使用してシステムビューを表示します。

SQL を使用した監査ポリシーの設定例

監査ポリシーを設定して有効化するには、以下の SQL 文を例として使用することができます。

Code Snippet
123
CREATE AUDIT POLICY policy_UserRoleManagement AUDITING ALL CREATE USER, DROP USER, CREATE ROLE, DROP ROLE LEVEL Critical; ALTER AUDIT POLICY policy_UserRoleManagement ENABLE;

監査証跡が Linux システムログまたは CSV ファイルに書き込まれると、監査ログ出力は以下のようになります。

Code Snippet
12
Syslog output (csv-compatible format ): /var/log/messages August 13 13:29:55 WDFLBMT7346 HDB[5212]: 2023-08-14 13:29:55;indexserver;wdflbmt7346.wdf.sap.corp;H46;00;30003;H46;127.0.0.2;lu306309;6776;58060;policy_UserRoleManagement;CRITICAL;CREATE USER;SYSTEM;;;;;;JohnDoe;SUCCESSFUL;;;;;;create user JohnDoe identified by XXXXXXXXXXXXX;434597;

列ヘッダ名は監査証跡に書き込まれないため、マニュアルで追加する必要があります。

監査エントリは以下のように表示されます。

Code Snippet
1
<Event Timestamp>;<Service Name>;<Hostname>;<SID>;<Instance Number>;<Port Number>;<Database Name>;<Client IP Address>;<Client Name>;<Client Process ID>;<Client Port Number>;<Policy Name>;<Audit Level>;<Audit Action>;<Session User>;<Target Schema>;<Target Object>;<Privilege Name>;<Grantable>;<Role Name>;<Target Principal>;<Action Status>;<Component>;<Section>;<Parameter>;<Old Value>;<New Value>;<Comment>;<Executed Statement>;<Session Id>; ...

注記

監査ポリシーを登録して有効化するには、ルート権限が必要です。syslog では、データベース管理者に対してもアクセスや変更が禁止されるため、監査証跡の安全な保管場所です。また、syslog には、他のシステムでの保管も含めて、多くの保管の可能性があります。さらに、syslog は、UNIX システムのデフォルトのログデーモンです。したがって、syslog は、高度な柔軟性とセキュリティのほか、より大きなシステムランドスケープへの統合を実現します。データ保護およびプライバシーを保証するために、SAP HANA 監査ログでは接頭辞 HDB の authpriv 機能が使用されます。syslog ファイルの場所については、使用しているオペレーティングシステム設定ファイルをチェックしてください。syslog の設定方法の詳細については、オペレーティングシステムの文書を参照してください。

注意

syslog デーモンがその宛先に監査証跡を書き込むことができない場合でも、ユーザには通知されません。監査対象のアクションが実行されているものの、監査証跡に監査エントリが書き込まれない状況を回避するには、syslog が適切に設定されていること、および監査証跡ターゲットがアクセス可能で十分な空き容量を持っていることを確認してください。

詳細については、SAP HANA セキュリティガイドを参照してください。