

# RDS for SQL Server에서 SQL Server 로그인에 암호 정책 사용
<a name="SQLServer.Concepts.General.PasswordPolicy.Using"></a>

Amazon RDS를 사용하면 Microsoft SQL Server를 실행하는 Amazon RDS DB 인스턴스에 암호 정책을 설정할 수 있습니다. 이를 사용하여 SQL Server 인증으로 DB 인스턴스를 인증하는 로그인의 복잡성, 길이 및 잠금 요구 사항을 설정할 수 있습니다.

## 주요 용어
<a name="SQLServer.Concepts.General.PasswordPolicy.Using.KT"></a>

**로그인**  
SQL Server에서는 데이터베이스 인스턴스에 대해 인증할 수 있는 서버 수준 보안 주체를 **로그인**이라고 합니다. 다른 데이터베이스 엔진에서는 이 보안 주체를 사용자로 지칭할 수 있습니다.** RDS for SQL Server에서는 SQL Server 인증 또는 Windows 인증을 사용하여 로그인을 인증할 수 있습니다.

**SQL Server 로그인**  
SQL Server 인증을 사용하여 사용자 이름과 암호를 통해 인증하는 로그인은 SQL Server 로그인입니다. DB 파라미터를 통해 구성한 암호 정책은 SQL Server 로그인에만 적용됩니다.

**Windows 로그인**  
Windows 보안 주체를 기반으로 하고 Windows 인증을 사용하여 인증하는 로그인은 Windows 로그인입니다. Active Directory에서 Windows 로그인에 대한 암호 정책을 구성할 수 있습니다. 자세한 내용은 [RDS for SQL Server를 사용하여 Active Directory 작업](User.SQLServer.ActiveDirectoryWindowsAuth.md) 단원을 참조하십시오.

## 각 로그인에 대한 정책 활성화 및 비활성화
<a name="SQLServer.Concepts.General.PasswordPolicy.EnableDisable"></a>

 각 SQL Server 로그인에는 `CHECK_POLICY` 및 `CHECK_EXPIRATION` 플래그가 있습니다. 기본적으로 새 로그인은 `ON`으로 설정된 `CHECK_POLICY`와 `OFF`로 설정된 `CHECK_EXPIRATION`으로 생성됩니다.

로그인에 대해 `CHECK_POLICY`가 활성화된 경우 RDS for SQL Server는 복잡성 및 최소 길이 요구 사항을 기준으로 암호의 유효성을 검사합니다. 잠금 정책 또한 적용됩니다. `CHECK_POLICY` 및 `CHECK_EXPIRATION`을 활성화하기 위한 예제 T-SQL 문: 

```
ALTER LOGIN [master_user] WITH CHECK_POLICY = ON, CHECK_EXPIRATION = ON;
```

`CHECK_EXPIRATION`이 활성화된 경우 암호에는 암호 수명 정책이 적용됩니다. `CHECK_POLICY` 및 `CHECK_EXPIRATION` 설정 여부를 확인하기 위한 T-SQL 문:

```
SELECT name, is_policy_checked, is_expiration_checked FROM sys.sql_logins;
```

## 암호 정책 파라미터
<a name="SQLServer.Concepts.General.PasswordPolicy.PWDPolicyParams"></a>

모든 암호 정책 파라미터는 동적이므로 DB를 재부팅하지 않아도 적용됩니다. 다음 표에는 SQL Server 로그인에 대한 암호 정책을 수정하기 위해 설정할 수 있는 DB 파라미터가 나열되어 있습니다.


****  

| DB 파라미터 | 설명 | 허용된 값 | 기본 값 | 
| --- | --- | --- | --- | 
| rds.password\_complexity\_enabled | SQL Server 로그인을 위한 암호를 만들거나 변경할 때는 암호 복잡성 요구 사항을 충족해야 합니다. 다음 제약 조건을 충족해야 합니다.[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/SQLServer.Concepts.General.PasswordPolicy.Using.html)  | 0,1 | 0 | 
| rds.password\_min\_length | SQL Server 로그인을 위한 암호에 필요한 최소 문자 수입니다. | 0\~14 | 0 | 
| rds.password\_min\_age | 사용자가 SQL Server 로그인 암호를 변경할 수 있기 전에 사용해야 하는 최소 일수입니다. 0으로 설정되어 있는 경우 암호를 즉시 변경할 수 있습니다. | 0\~998 | 0 | 
| rds.password\_max\_age | SQL Server 로그인 암호를 사용할 수 있는 최대 일수입니다. 이 기간이 지나면 사용자가 암호를 변경해야 합니다. 0으로 설정되어 있는 경우 암호가 만료되지 않습니다. | 0\~999 | 42 | 
| rds.password\_lockout\_threshold | SQL Server 로그인이 잠기기 전에 연속으로 실패할 수 있는 로그인 시도 횟수입니다. | 0\~999 | 0 | 
| rds.password\_lockout\_duration | 잠긴 SQL Server 로그인이 잠금 해제될 때까지 기다려야 하는 시간(분)입니다. | 1\~60 | 10 | 
| rds.password\_lockout\_reset\_counter\_after | 로그인 시도 실패 후 로그인 시도 실패 카운터가 0으로 재설정되기 전에 경과해야 하는 시간(분)입니다. | 1\~60 | 10 | 

**참고**  
SQL Server 암호 정책에 대한 자세한 내용은 [암호 정책](https://learn.microsoft.com/en-us/sql/relational-databases/security/password-policy)을 참조하세요.  
암호 복잡성 및 최소 길이 정책은 포함된 데이터베이스의 DB 사용자에게도 적용됩니다. 자세한 내용은 [포함된 데이터베이스](https://learn.microsoft.com/en-us/sql/relational-databases/databases/contained-databases)를 참조하세요.

암호 정책 매개변수에는 다음 제약 조건이 적용됩니다.
+ `rds.password_max_age`가 0으로 설정되어 있지 않는 한 `rds.password_min_age` 파라미터는 `rds.password_max_age parameter`보다 작아야 합니다.
+ `rds.password_lockout_reset_counter_after` 파라미터는 `rds.password_lockout_duration` 파라미터보다 작거나 같아야 합니다.
+ `rds.password_lockout_threshold`가 0으로 설정되어 있으면 `rds.password_lockout_duration` 및 `rds.password_lockout_reset_counter_after`는 적용되지 않습니다.

### 기존 로그인에 대한 고려 사항
<a name="SQLServer.Concepts.General.PasswordPolicy.ExistingLogins"></a>

인스턴스의 암호 정책을 수정한 후에는 로그인을 위한 기존 암호가 새로운 암호 복잡성 및 길이 요구 사항을 기준으로 소급 평가되지 **않습니다**. 새 암호만 새 정책을 기준으로 검증됩니다.

SQL Server는 수명 요구 사항을 기준으로 기존 암호를 **평가합니다**.

암호 정책이 수정되는 즉시 암호가 만료될 수도 있습니다. 예를 들어 로그인에 `CHECK_EXPIRATION`이 활성화되어 있고 100일 전에 암호를 마지막으로 변경했으며 `rds.password_max_age` 파라미터를 5일로 설정한 경우 암호가 즉시 만료되므로 다음 로그인 시도 시 암호를 변경해야 합니다.

**참고**  
RDS for SQL Server는 암호 기록 정책을 지원하지 않습니다. 기록 정책은 로그인이 이전에 사용한 암호를 재사용하지 못하도록 합니다.

### 다중 AZ 배포에 대한 고려 사항
<a name="SQLServer.Concepts.General.PasswordPolicy.MAZPasswords"></a>

다중 AZ 인스턴스의 로그인 시도 실패 카운터 및 잠금 상태는 노드 간에 복제되지 않습니다. 다중 AZ 인스턴스가 장애 조치될 때 로그인이 잠기는 경우 새 노드에서 로그인이 이미 잠금 해제되어 있을 수 있습니다.