Amazon RDS for SQL Server DB インスタンスの監査 - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon RDS for SQL Server DB インスタンスの監査

このセクションでは、監査の作成、監査ログの表示、結果のモニタリングなど、Amazon RDS での SQL Server の監査オプションについて説明します。

前提条件

  • 監査ファイルを保存するための Amazon Simple Storage Service (Amazon S3) バケット

  • S3 バケットにアクセスするための AWS Identity and Access Management (IAM) ロール S3

  • ALTER ANY SERVER AUDIT または アクセスCONTROL SERVER許可を持つデータベースログイン

サポートバージョン

  • Amazon RDS for SQL Server 2014 では、すべてのエディションでサーバーレベルの監査がサポートされています。Enterprise Edition では、データベースレベルの監査もサポートされています。

  • SQL サーバー 2016 (13.x) SP1 以降では、すべてのエディションでサーバーレベルとデータベースレベルの両方の監査がサポートされています。

  • Amazon RDS は現在、中東 (バーレーン) AWS リージョン を除くすべての で SQL Server 監査をサポートしています。最新情報については、Amazon RDS ドキュメントの「SQL Server Audit のサポート」を参照してください。

C2 監査モードの使用

C2 監査モードは、Amazon RDS for SQL Server DB パラメータグループのパラメータです。デフォルトでは無効となっています。パラメータ値を 1 に更新することで有効にできます。C2 監査モードを有効にすると、ユーザーログイン、ストアドプロシージャ呼び出し、オブジェクトの作成と削除などのイベントが監査されます。このモードは、すべてまたは何も監査しないため、大量のデータを生成できます。

重要

Microsoft は、SQL Server の将来のバージョンで C2 監査モードを削除する予定です。この機能を使用しないことをお勧めします。

監査の作成と表示

監査と監査仕様の作成を含む組み込みの SQL Server 監査メカニズムを使用して、Amazon RDS for SQL Server データベースを監査できます。 

  • 監査ログは、バケットへのアクセスに必要なアクセス許可を持つ IAM ロールを使用して S3 バケットにアップロードされます。 

  • オプショングループを作成するときに、IAM ロール、S3 バケット、圧縮、保持期間を選択できます。最大保持期間は 35 日間です。

  • オプショングループを作成し、新規または既存の Amazon RDS for SQL Server DB インスタンスにアタッチします。  監査ログは に保存されますD:\rdsdbdata\SQLAudit。 

  • SQL Server が監査ログファイルへの書き込みを完了するか、ファイルがサイズ制限に達すると、Amazon RDS はファイルを S3 バケットにアップロードします。

  • 保持を有効にすると、Amazon RDS は の保持フォルダにファイルを移動しますD:\rdsdbdata\SQLAudit\transmitted。監査ログファイルがアップロードされるまで、監査レコードは DB インスタンスに維持されます。 

  • 監査レコードは、 のクエリを実行して検索することもできますdbo.rds_fn_get_audit_file。 

マルチ AZ インスタンスの場合、データベース監査仕様オブジェクトはすべてのノードにレプリケートされます。  サーバー監査とサーバー監査の仕様はすべてのノードにレプリケートされないため、手動で作成する必要があります。

オプショングループの設定

Amazon RDS for SQL Server DB インスタンスで SQL Server 監査を実行するオプショングループを設定するには、次の手順に従います。詳細な手順については、Amazon RDS ドキュメントの「SQL Server Audit」を参照してください。

  • 新しいオプショングループを作成します。

  • SQLSERVER_AUDIT オプションをオプショングループに追加します。

  • S3 送信先の場合は、新しいバケットを作成するか、監査ログの既存のバケットを選択します。

  • IAM ロールの場合は、新しいロールを作成するか、必要なポリシーを持つ既存のロールを選択します。詳細については、IAM ドキュメントの「SQL Server Audit の IAM ロールを手動で作成する」を参照してください。

  • 追加情報を展開し、圧縮を有効にして監査ログを圧縮する (推奨) を選択します。

  • DB インスタンスの監査ログを保持するには、保持を有効にするを選択し、保持期間 (最大 35 日間) を指定します。

  • オプショングループを新規または既存の Amazon RDS for SQL Server DB インスタンスに適用します。

    • 新しい DB インスタンスの場合は、インスタンスを起動するときにオプショングループを適用します。

    • 既存の DB インスタンスの場合は、インスタンスを変更し、オプショングループをアタッチします。

監査の作成

サーバー監査を作成するには、次のスクリプトを使用します。このスクリプトは、指定したファイルパスに監査ファイルを作成します。構文、引数、例については、Microsoft SQL Server のドキュメントを参照してください。エラーを回避するには、Amazon RDS ドキュメントに記載されている制限のリストを確認してください。

--Creating the server audit use master GO CREATE SERVER AUDIT [Audit-<<servername>>] TO FILE ( FILEPATH = N'D:\rdsdbdata\SQLAudit', MAXSIZE = 2 MB, RESERVE_DISK_SPACE = OFF) WITH ( QUEUE_DELAY = 1000, ON_FAILURE = CONTINUE) GO -- Enabling the server audit ALTER SERVER AUDIT [Audit-<<servername>>] WITH (STATE = ON) ; GO

監査仕様の作成

サーバー監査を作成したら、次のコードを使用してサーバー監査仕様を作成することで、サーバーレベルのイベントを記録できます。この仕様は、サーバー監査中にチェックされる内容を決定します。構文、引数、例については、Microsoft SQL Server のドキュメントを参照してください。次の仕様は、失敗したログインアクションを監査し、サーバーオブジェクトの作成、変更、削除を追跡します。アクションのリストについては、Microsoft SQL Server のドキュメントを参照してください。

--Creating server audit specification USE [master] GO CREATE SERVER AUDIT SPECIFICATION [Audit-Spec-<<servername>>] FOR SERVER AUDIT [Audit-<<servername>>] ADD (FAILED_LOGIN_GROUP), ADD (SERVER_OBJECT_CHANGE_GROUP) GO --Enables the audit ALTER SERVER AUDIT [Audit-<<servername>>] WITH (STATE = ON); GO

次のコードを使用して、データベースレベルのイベントを記録するデータベース監査仕様を作成できます。この例では、INSERTアクションを監査します。構文、引数、その他の例については、Microsoft SQL Server のドキュメントを参照してください。

--Creating database audit specification USE [<<DBName>>] GO CREATE DATABASE AUDIT SPECIFICATION [DatabaseAuditSpecification-<<DBName>>] FOR SERVER AUDIT [Audit-<<ServerName>>] ADD (INSERT ON DATABASE::[<<DBName>>] BY [dbo]) WITH (STATE = ON) GO

監査ログの表示

監査ログを表示するには、次のクエリを使用します。監査ログは、Amazon S3 にアップロードされるまで DB インスタンスに保持されます。SQLSERVER_AUDIT オプションの保持を有効にすると、Amazon RDS はファイルを保持フォルダ に移動しますD:\rdsdbdata\SQLAudit\transmitted

フィルターを に変更することで、保持フォルダ内の監査レコードを表示することもできますD:\rdsdbdata\SQLAudit\transmitted\*.sqlaudit

--Viewing audit logs SELECT * FROM msdb.dbo.rds_fn_get_audit_file ('D:\rdsdbdata\SQLAudit\*.sqlaudit' , default , default ) --Viewing audit logs in retention folder SELECT * FROM msdb.dbo.rds_fn_get_audit_file ('D:\rdsdbdata\SQLAudit\transmitted\*.sqlaudit' , default , default )

SQL Server データベースを監査するための追加オプションについては、以下の AWS および Microsoft ドキュメントで説明されています。

モニタリング

Amazon RDS のデータベースアクティビティストリームを使用して、SQL Server 監査イベントを Imperva、McAfee、IBM のデータベースアクティビティモニタリングツールと統合できます。詳細については、Amazon RDS ドキュメントの「Microsoft SQL Server での監査」を参照してください。