

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 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 버킷에 액세스](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.Options.Audit.html#Appendix.SQLServer.Options.Audit.IAM)하기 위한 AWS Identity and Access Management(IAM) 역할
+ `ALTER ANY SERVER AUDIT` 또는 `CONTROL SERVER` 권한을 사용한 데이터베이스 로그인

## 지원되는 버전
<a name="rds-versions"></a>
+ Amazon RDS for SQL Server 2014의 경우 모든 에디션은 서버 수준 감사를 지원합니다. Enterprise 에디션은 데이터베이스 수준 감사도 지원합니다.
+ SQL Server 2016(13.x) SP1부터는 모든 버전이 서버 및 데이터베이스 수준 감사를 모두 지원합니다.
+ Amazon RDS는 중동(바레인)을 제외한 모든 AWS 리전 리전에서 SQL Server 감사를 지원합니다. 최신 정보는 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>

감사 및 감사 사양 생성과 관련된 기본 제공 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 인스턴스의 경우 데이터베이스 감사 사양 객체는 모든 노드에 복제됩니다.   서버 감사 및 서버 감사 사양은 모든 노드에 복제되지 않으므로 수동으로 생성해야 합니다.

### 옵션 그룹 구성
<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\$1BACKUP\$1RESTORE](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 인스턴스의 경우 [인스턴스를 수정](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>

Amazon RDS에서 데이터베이스 활동 스트림을 사용하여 SQL Server 감사 이벤트를 Imperva, McAfee 및 IBM의 데이터베이스 활동 모니터링 도구와 통합할 수 있습니다. 자세한 내용은 Amazon RDS 설명서의 [Microsoft SQL Server에서 감사](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/DBActivityStreams.Overview.html#DBActivityStreams.Overview.SQLServer-auditing)를 참조하세요.