

# SQL Server 보안 프로토콜 및 암호 구성
<a name="SQLServer.Ciphers"></a>

DB 파라미터를 사용하여 특정 보안 프로토콜 및 암호를 설정하거나 해제할 수 있습니다. 구성할 수 있는 보안 파라미터(TLS 버전 1.2 제외) 는 다음 표에 나와 있습니다.


****  

| DB 파라미터 | 허용된 값(기본값은 굵은 글꼴로 표시) | 설명 | 
| --- | --- | --- | 
| rds.tls10 | 기본값, 활성화, 비활성화 | TLS 1.0. | 
| rds.tls11 | 기본값, 활성화, 비활성화 | TLS 1.1. | 
| rds.tls12 | 기본값 | TLS 1.2 이 값은 수정할 수 없습니다. | 
| rds.fips | 0, 1 |  이 파라미터를 1로 설정하면 RDS가 Federal Information Processing Standard(FIPS) 140-2 표준을 준수하는 모듈의 사용을 강제합니다. 자세한 내용은 Microsoft 설명서에서 [FIPS 140-2 호환 모드에서 SQL Server 2016 사용](https://docs.microsoft.com/en-us/troubleshoot/sql/security/sql-2016-fips-140-2-compliant-mode)을 참조하세요.  | 
| rds.rc4 | 기본값, 활성화, 비활성화 | RC4 스트림 암호. | 
| rds.diffie-hellman | 기본값, 활성화, 비활성화 | Diffie-Hellman 키 교환 암호화. | 
| rds.diffie-hellman-min-key-bit-length | 기본값, 1024, 2048, 3072, 4096 | Diffie-Hellman 키의 최소 비트 길이. | 
| rds.curve25519 | 기본값, 활성화, 비활성화 | Curve25519 Elliptic-Curve 암호화 암호. 이 파라미터는 일부 엔진 버전에서 지원되지 않습니다. | 
| rds.3des168 | 기본값, 활성화, 비활성화 | 168비트 키 길이의 Triple DES(Data Encryption Standard) 암호화 암호입니다. | 

**참고**  
16.00.4120.1, 15.00.4365.2, 14.00.3465.1, 13.00.6435.1 및 12.00.6449.1 후의 마이너 엔진 버전에서는 DB 파라미터 `rds.tls10`, `rds.tls11`, `rds.rc4`, `rds.curve25519`, `rds.3des168`에 대한 기본 설정이 **비활성화됨입니다. 그렇지 않으면 기본값은 **활성화됨입니다.  
16.00.4120.1, 15.00.4365.2, 14.00.3465.1, 13.00.6435.1 및 12.00.6449.1 후의 마이너 엔진 버전에서는 `rds.diffie-hellman-min-key-bit-length`의 기본 설정이 3072입니다. 그렇지 않으면 기본값은 2048입니다.

다음 프로세스를 사용하여 보안 프로토콜 및 암호를 구성합니다.

1. 사용자 지정 DB 파라미터 그룹을 생성합니다.

1. 파라미터 그룹의 파라미터를 수정합니다.

1. DB 파라미터 그룹을 DB 인스턴스에 연결합니다.

DB 파라미터 그룹에 대한 자세한 내용은 [Amazon RDS의 파라미터 그룹](USER_WorkingWithParamGroups.md) 단원을 참조하십시오.

## 보안 관련 파라미터 그룹 생성
<a name="CreateParamGroup.Ciphers"></a>

DB 인스턴스의 SQL Server 에디션 및 버전에 해당하는 보안 관련 파라미터에 대한 파라미터 그룹을 생성합니다.

### 콘솔
<a name="CreateParamGroup.Ciphers.Console"></a>

다음 절차에서는 SQL Server Standard Edition 2016에 대한 파라미터 그룹을 생성합니다.

**파라미터 그룹을 생성하려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **파라미터 그룹**을 선택합니다.

1. [**Create parameter group**]을 선택합니다.

1. **서브넷 그룹 생성** 창에서 다음을 수행합니다.

   1. **파라미터 그룹 패밀리**에서 **sqlserver-se-13.0**을 선택합니다.

   1. **그룹 이름**에 파라미터 그룹의 식별자(예: **sqlserver-ciphers-se-13**)를 입력합니다.

   1. **설명**에 **Parameter group for security protocols and ciphers**를 입력합니다.

1. **생성(Create)**을 선택합니다.

### CLI
<a name="CreateParamGroup.Ciphers.CLI"></a>

다음 절차에서는 SQL Server Standard Edition 2016에 대한 파라미터 그룹을 생성합니다.

**파라미터 그룹을 생성하려면**
+ 다음 명령 중 하나를 실행합니다.  
**Example**  

  대상 LinuxmacOS, 또는Unix:

  ```
  aws rds create-db-parameter-group \
      --db-parameter-group-name sqlserver-ciphers-se-13 \
      --db-parameter-group-family "sqlserver-se-13.0" \
      --description "Parameter group for security protocols and ciphers"
  ```

  Windows의 경우:

  ```
  aws rds create-db-parameter-group ^
      --db-parameter-group-name sqlserver-ciphers-se-13 ^
      --db-parameter-group-family "sqlserver-se-13.0" ^
      --description "Parameter group for security protocols and ciphers"
  ```

## 보안 관련 파라미터 수정
<a name="ModifyParams.Ciphers"></a>

DB 인스턴스의 SQL Server 에디션 및 버전에 해당하는 파라미터 그룹의 보안 관련 파라미터를 수정합니다.

### 콘솔
<a name="ModifyParams.Ciphers.Console"></a>

다음 절차에서는 SQL Server Standard Edition 2016에 대해 생성한 파라미터 그룹을 수정합니다. 이 예제에서는 TLS 버전 1.0을 해제합니다.

**파라미터 그룹을 수정하려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **파라미터 그룹**을 선택합니다.

1. 파라미터 그룹(예: **sqlserver-ciphers-se-13**)을 선택합니다.

1. **파라미터**에서 파라미터 목록을 **rds**로 필터링합니다.

1. **파라미터 편집**을 선택합니다.

1. **rds.tls10**을 선택합니다.

1. **값**에 대해 **비활성화**를 선택합니다.

1. **Save changes**(변경 사항 저장)를 선택합니다.

### CLI
<a name="ModifyParams.Ciphers.CLI"></a>

다음 절차에서는 SQL Server Standard Edition 2016에 대해 생성한 파라미터 그룹을 수정합니다. 이 예제에서는 TLS 버전 1.0을 해제합니다.

**파라미터 그룹을 수정하려면**
+ 다음 명령 중 하나를 실행합니다.  
**Example**  

  대상 LinuxmacOS, 또는Unix:

  ```
  aws rds modify-db-parameter-group \
      --db-parameter-group-name sqlserver-ciphers-se-13 \
      --parameters "ParameterName='rds.tls10',ParameterValue='disabled',ApplyMethod=pending-reboot"
  ```

  Windows의 경우:

  ```
  aws rds modify-db-parameter-group ^
      --db-parameter-group-name sqlserver-ciphers-se-13 ^
      --parameters "ParameterName='rds.tls10',ParameterValue='disabled',ApplyMethod=pending-reboot"
  ```

## 보안 관련 파라미터 그룹을 DB 인스턴스와 연결
<a name="AssocParamGroup.Ciphers"></a>

파라미터 그룹을 DB 인스턴스와 연결하려면 AWS Management Console 또는 AWS CLI를 사용합니다.

### 콘솔
<a name="AssocParamGroup.Ciphers.Console"></a>

파라미터 그룹을 새 DB 인스턴스 또는 기존 DB 인스턴스와 연결할 수 있습니다.
+ 새 DB 인스턴스의 경우 인스턴스를 시작할 때 연결합니다. 자세한 내용은 [Amazon RDS DB 인스턴스 생성](USER_CreateDBInstance.md) 섹션을 참조하세요.
+ 기존 DB 인스턴스의 경우 인스턴스를 수정하여 연결합니다. 자세한 내용은 [Amazon RDS DB 인스턴스 수정](Overview.DBInstance.Modifying.md) 단원을 참조하십시오.

### CLI
<a name="AssocParamGroup.Ciphers.CLI"></a>

파라미터 그룹을 새 DB 인스턴스 또는 기존 DB 인스턴스와 연결할 수 있습니다.

**파라미터 그룹을 사용하여 DB 인스턴스를 생성하려면**
+ 파라미터 그룹을 생성할 때 사용한 것과 동일한 DB 엔진 유형과 메이저 버전을 지정합니다.  
**Example**  

  대상 LinuxmacOS, 또는Unix:

  ```
  aws rds create-db-instance \
      --db-instance-identifier mydbinstance \
      --db-instance-class db.m5.2xlarge \
      --engine sqlserver-se \
      --engine-version 13.00.5426.0.v1 \
      --allocated-storage 100 \
      --master-user-password secret123 \
      --master-username admin \
      --storage-type gp2 \
      --license-model li \
      --db-parameter-group-name sqlserver-ciphers-se-13
  ```

  Windows의 경우:

  ```
  aws rds create-db-instance ^
      --db-instance-identifier mydbinstance ^
      --db-instance-class db.m5.2xlarge ^
      --engine sqlserver-se ^
      --engine-version 13.00.5426.0.v1 ^
      --allocated-storage 100 ^
      --master-user-password secret123 ^
      --master-username admin ^
      --storage-type gp2 ^
      --license-model li ^
      --db-parameter-group-name sqlserver-ciphers-se-13
  ```
**참고**  
보안 모범 사례로 여기에 표시된 프롬프트 이외의 암호를 지정하는 것이 좋습니다.

**DB 인스턴스를 수정하고 파라미터 그룹을 연결하려면**
+ 다음 명령 중 하나를 실행합니다.  
**Example**  

  대상 LinuxmacOS, 또는Unix:

  ```
  aws rds modify-db-instance \
      --db-instance-identifier mydbinstance \
      --db-parameter-group-name sqlserver-ciphers-se-13 \
      --apply-immediately
  ```

  Windows의 경우:

  ```
  aws rds modify-db-instance ^
      --db-instance-identifier mydbinstance ^
      --db-parameter-group-name sqlserver-ciphers-se-13 ^
      --apply-immediately
  ```