

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

# Amazon RDS for SQL Server DB インスタンスの監査
<a name="auditing-rds-sql-instances"></a>

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

## 前提条件
<a name="rds-prerequisites"></a>
+ 監査ファイルを保存するための Amazon Simple Storage Service (Amazon S3) バケット
+ [S3 バケットにアクセスするための AWS Identity and Access Management IAM ロール](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.Options.Audit.html#Appendix.SQLServer.Options.Audit.IAM)
+ `ALTER ANY SERVER AUDIT` または `CONTROL SERVER` 権限を使用したデータベースログイン

## サポートバージョン
<a name="rds-versions"></a>
+ Amazon RDS for SQL Server 2014 では、すべてのエディションでサーバーレベルの監査がサポートされています。Enterprise Edition では、データベースレベルの監査もサポートされています。
+ SQL サーバー 2016 (13.x) SP1 以降では、すべてのエディションでサーバーレベルとデータベースレベルの両方の監査がサポートされています。
+ Amazon RDS は現在、中東 (バーレーン) を除くすべての AWS リージョンで SQL Server Audit をサポートしています。最新情報については、Amazon RDS ドキュメントの「[SQL Server Audit のサポート](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.Options.Audit.html#Appendix.SQLServer.Options.Audit.Support)」を参照してください。

## C2 監査モードの使用
<a name="rds-c2"></a>

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

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

## 監査の作成と表示
<a name="rds-creating-viewing"></a>

Amazon RDS for SQL Server データベースは、監査と監査仕様の作成を伴う組み込みの SQL Server 監査メカニズムを使用して監査できます。 
+ 監査ログは、S3 バケットへアクセスするための必要な権限を持つ IAM ロールを使用して、S3 バケットにアップロードされます。 
+ オプショングループを作成する際に、IAM ロール、S3 バケット、圧縮、保持期間を選択できます。最大保持期間は 35 日です。
+ オプショングループを作成し、新規または既存の Amazon RDS for SQL Server DB インスタンスにアタッチします。  監査ログは `D:\rdsdbdata\SQLAudit` に格納されます。 
+ SQL Server が監査ログファイルへの書き込みを完了した時点、またはファイルがサイズ制限に達した時点で、そのファイルが S3 バケットにアップロードされます。
+ 保持設定が有効になっている場合、Amazon RDS は、このファイルを保持フォルダ (`D:\rdsdbdata\SQLAudit\transmitted`) に移動します。監査ログファイルがアップロードされるまで、監査レコードは DB インスタンスに維持されます。 
+ 監査レコードを見つけるには、`dbo.rds_fn_get_audit_file` をクエリします。 

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

### オプショングループの設定
<a name="rds-configure-option-group"></a>

Amazon RDS for SQL Server DB インスタンスで SQL Server 監査を実行するオプショングループを設定するには、次の手順に従います。詳細な手順については、Amazon RDS ドキュメントの「[SQL Server Audit](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.Options.Audit.html)」を参照してください。
+ 新しいオプショングループを作成します。
+ オプショングループに [SQLSERVER\$1AUDIT](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.Options.html) オプションを追加します。
+ **S3 送信先**の場合は、新しいバケットを作成するか、監査ログの既存のバケットを選択します。
+ **IAM ロール**の場合は、新しいロールを作成するか、必要なポリシーを持つ既存のロールを選択します。詳細については、IAM ドキュメントの「[SQL Server Audit の IAM ロールを手動で作成する](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.Options.Audit.html#Appendix.SQLServer.Options.Audit.IAM)」を参照してください。
+ **[追加情報]** を展開し、**[圧縮を有効化]** を選択して、監査ログを圧縮します (推奨)。
+ DB インスタンスの監査ログを保持するには、**[保有の有効化]** を選択し、保持期間 (最大 35 日間) を指定します。
+ 新規または既存の Amazon RDS for SQL Server DB インスタンスに、オプショングループを適用します。
  + 新しい DB インスタンスの場合は、インスタンスを起動するときにオプショングループを適用します。
  + 既存の DB インスタンスの場合は、[インスタンスを変更](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html)してから、オプショングループをアタッチします。

### 監査の作成
<a name="rds-create-audit"></a>

サーバー監査を作成するには、次のスクリプトを使用します。このスクリプトは、指定したファイルパスに監査ファイルを作成します。構文、引数、例については、[Microsoft SQL Server のドキュメント](https://learn.microsoft.com/en-us/sql/t-sql/statements/create-server-audit-transact-sql?view=sql-server-ver16)を参照してください。エラーを回避するには、[Amazon RDS ドキュメント](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.Options.Audit.html#Appendix.SQLServer.Options.Audit.CreateAuditsAndSpecifications)に記載されている制限のリストを確認してください。

```
--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
```

### 監査仕様の作成
<a name="rds-create-audit-spec"></a>

サーバー監査を作成した後、次のコードを使用してサーバー監査仕様を作成することで、サーバーレベルのイベントを記録できます。この仕様によって、サーバー監査中にチェックされる内容が決まります。構文、引数、例については、[Microsoft SQL Server のドキュメント](https://learn.microsoft.com/en-us/sql/t-sql/statements/create-server-audit-specification-transact-sql)を参照してください。次の仕様では、失敗したログインアクションを監査し、サーバーオブジェクトの作成、変更、削除を追跡します。アクションのリストについては、[Microsoft SQL Server ドキュメント](https://learn.microsoft.com/en-us/sql/relational-databases/security/auditing/sql-server-audit-action-groups-and-actions)を参照してください。

```
--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 のドキュメント](https://learn.microsoft.com/en-us/sql/t-sql/statements/create-database-audit-specification-transact-sql)を参照してください。

```
--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
```

### 監査ログの表示
<a name="rds-view-audit-log"></a>

次のクエリを使用して、監査ログを確認できます。監査ログは、Amazon S3 にアップロードされるまで DB インスタンスに保持されます。[SQLSERVER\$1AUDIT](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.Options.html) オプションの保持を有効にすると、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 のドキュメントで説明されています。
+ SQL Server 拡張イベント: AWS ブログ記事の「[Set up Extended Events in Amazon RDS for SQL Server](https://aws.amazon.com/blogs/database/set-up-extended-events-in-amazon-rds-for-sql-server/)」を参照してください。
+ SQL Server トリガー: Amazon RDS ドキュメントの「[Amazon RDS イベントでトリガーするルールの作成](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-cloud-watch-events.html)」を参照してください。
+ 変更の追跡: Microsoft SQL Server ドキュメントの「[Track data changes](https://learn.microsoft.com/en-us/sql/relational-databases/track-changes/track-data-changes-sql-server)」を参照してください。
+ 変更データキャプチャ: Amazon RDS ドキュメントの「[変更データキャプチャの使用](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.CommonDBATasks.CDC.html)」を参照してください。
+ C2 監査モードパラメータ: Microsoft SQL Server ドキュメントの「[c2 audit mode Server Configuration Option](https://learn.microsoft.com/en-us/sql/database-engine/configure-windows/c2-audit-mode-server-configuration-option)」を参照してください。

## モニタリング
<a name="rds-monitoring"></a>

RDS のデータベースアクティビティストリームを使用すると、SQL Server Audit イベントを Imperva、McAfee、IBM のデータベースアクティビティ監視ツールと統合できます。詳細については、Amazon RDS ドキュメントの「[Microsoft SQL Server の監査](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/DBActivityStreams.Overview.html#DBActivityStreams.Overview.SQLServer-auditing)」を参照してください。