

# Aurora MySQL의 암호 정책 및 암호 검증
<a name="AuroraMySQL.PasswordPolicies"></a>

**Topics**
+ [암호 정책](#AuroraMySQL.PasswordPolicies.overview)
+ [validate\_password 구성 요소 사용](#AuroraMySQL.PasswordPolicies.validate-password)
+ [관련 설명서](#AuroraMySQL.PasswordPolicies.related)

## 암호 정책
<a name="AuroraMySQL.PasswordPolicies.overview"></a>

Aurora MySQL은 다음과 같은 MySQL 암호 정책 기능을 지원합니다. 이러한 정책에 대한 자세한 내용은 [MySQL 암호 관리 설명서](https://dev.mysql.com/doc/refman/8.4/en/password-management.html)를 참조하세요.

### 암호 만료
<a name="AuroraMySQL.PasswordPolicies.expiration"></a>


**암호 만료 파라미터**  

| 파라미터/절 | 참고 | 
| --- | --- | 
| 클러스터 파라미터 `default_password_lifetime` | Aurora MySQL 버전 3(MySQL 8.0과 호환) 이상에서 사용 가능합니다. | 
| 계정별 DCL 절 `PASSWORD EXPIRE INTERVAL N DAY` | 없음 | 
| 계정별 DCL 절 `PASSWORD EXPIRE NEVER` | 없음 | 
| 계정별 DCL 절 `PASSWORD EXPIRE DEFAULT` | 없음 | 
| 클러스터 파라미터 `disconnect_on_expired_password` | Aurora MySQL 버전 8.4 이상에서 사용 가능합니다. | 

### 암호 재사용 제한
<a name="AuroraMySQL.PasswordPolicies.reuse"></a>


**암호 재사용 제한 파라미터**  

| 파라미터/절 | 참고 | 
| --- | --- | 
| 클러스터 파라미터 `password_history` | Aurora MySQL 버전 8.4 이상에서 사용 가능합니다. | 
| 클러스터 파라미터 `password_reuse_interval` | Aurora MySQL 버전 8.4 이상에서 사용 가능합니다. | 
| 계정별 DCL 절 `PASSWORD HISTORY N` | 없음 | 
| 계정별 DCL 절 `PASSWORD REUSE INTERVAL N DAY` | 없음 | 
| 계정별 DCL 절 `PASSWORD HISTORY DEFAULT` | 없음 | 

### 현재 암호 확인
<a name="AuroraMySQL.PasswordPolicies.current-verification"></a>


**현재 암호 확인 파라미터**  

| 파라미터/절 | 참고 | 
| --- | --- | 
| 파라미터 `password_require_current` | Aurora MySQL 버전 8.4 이상에서 사용 가능합니다. | 
| 계정별 DCL 절 `PASSWORD REQUIRE CURRENT` | 없음 | 
| 계정별 DCL 절 `PASSWORD REQUIRE CURRENT OPTIONAL` | 없음 | 
| 계정별 DCL 절 `PASSWORD REQUIRE CURRENT DEFAULT` | 없음 | 

### 이중 암호 지원
<a name="AuroraMySQL.PasswordPolicies.dual-password"></a>


**이중 암호 지원 절**  

| 파라미터/절 | 참고 | 
| --- | --- | 
| 계정별 DCL 절 `RETAIN CURRENT PASSWORD` | 없음 | 
| 계정별 DCL 절 `DISCARD OLD PASSWORD` | 없음 | 

### 로그인 실패 추적 및 임시 계정 잠금
<a name="AuroraMySQL.PasswordPolicies.failed-login"></a>


**로그인 실패 추적 절**  

| 파라미터/절 | 참고 | 
| --- | --- | 
| 계정별 DCL 절 `FAILED_LOGIN_ATTEMPTS N` | 없음 | 
| 계정별 DCL 절 `PASSWORD_LOCK_TIME N` | 없음 | 
| 계정별 DCL 절 `PASSWORD_LOCK_TIME UNBOUNDED` | 없음 | 

## validate\_password 구성 요소 사용
<a name="AuroraMySQL.PasswordPolicies.validate-password"></a>

`validate_password` 구성 요소는 암호 강도 검증 및 적용 기능을 제공하는 MySQL 서버 구성 요소입니다. 구성 가능한 규칙에 대해 암호를 테스트하여 수락되기 전에 지정된 보안 요구 사항을 충족하는지 확인합니다.

활성화되면 `validate_password` 구성 요소는 다음 중에 암호를 자동으로 검증합니다.
+ 사용자 계정 생성(`CREATE USER`)
+ 암호 변경(`ALTER USER`, `SET PASSWORD`)

이를 통해 조직은 데이터베이스 사용자 간에 강력한 암호 위생을 유지하고 보안 정책 및 규제 요구 사항을 준수할 수 있습니다.

Aurora MySQL 버전 8.4는 구성 `validate_password` 요소를 활성화하고 관리할 수 있는 파라미터 기반 접근 방식을 제공하므로 수동 `INSTALL COMPONENT` 및 `UNINSTALL COMPONENT` 명령이 필요하지 않습니다.

### validate\_password 구성 요소 활성화
<a name="AuroraMySQL.PasswordPolicies.validate-password.enabling"></a>

Aurora MySQL 클러스터에서 암호 검증을 활성화하려면 클러스터 파라미터를 사용합니다.

파라미터 이름: `aurora_enable_validate_password_component`

활성화하려면 DB 클러스터 파라미터 그룹에서 `aurora_enable_validate_password_component`를 `true`(또는 `1`)로 설정하세요.

비활성화하려면 DB 클러스터 파라미터 그룹에서 `aurora_enable_validate_password_component`를 `false`(또는 `0`)로 설정합니다.

**참고**  
`validate_password` 구성 요소에 대한 `INSTALL/UNINSTALL COMPONENT` 명령을 사용할 수 없습니다.

**참고**  
Aurora MySQL 버전 8.4부터는 `validate_password` 구성 요소가 `mysql.component` 테이블에 나열되지 않습니다. DB 클러스터 파라미터 그룹 또는 전역 변수(`aurora_enable_validate_password_component`)를 통해 구성 요소의 상태를 볼 수 있습니다.  

```
SELECT @@global.aurora_enable_validate_password_component;
```

### 지원되는 validate\_password 구성 요소 파라미터
<a name="AuroraMySQL.PasswordPolicies.validate-password.parameters"></a>


**validate\_password 구성 요소 파라미터**  

| 파라미터 이름 | 참고 | 
| --- | --- | 
| `validate_password.check_user_name` | Aurora MySQL 버전 8.4 이상에서 사용 가능합니다. | 
| `validate_password.length` | Aurora MySQL 버전 8.4 이상에서 사용 가능합니다. | 
| `validate_password.mixed_case_count` | Aurora MySQL 버전 8.4 이상에서 사용 가능합니다. | 
| `validate_password.number_count` | Aurora MySQL 버전 8.4 이상에서 사용 가능합니다. | 
| `validate_password.policy` | Aurora MySQL 버전 8.4 이상에서 사용 가능합니다. LOW 및 MEDIUM 수준만 지원됩니다. | 
| `validate_password.special_char_count` | Aurora MySQL 버전 8.4 이상에서 사용 가능합니다. | 

MySQL validate\_password 파라미터에 대한 자세한 내용은 [MySQL 암호 유효성 검사 옵션 및 변수 설명서](https://dev.mysql.com/doc/refman/8.4/en/validate-password-options-variables.html)를 참조하세요.

### RDS for MySQL 또는 Aurora MySQL 버전 3에서 Aurora MySQL 버전 8.4로 validate\_password 플러그인 및 구성 요소 마이그레이션
<a name="AuroraMySQL.PasswordPolicies.validate-password.migration"></a>

Aurora MySQL 버전 8.4부터 이전에 `INSTALL PLUGIN` 명령을 통해 `validate_password` 플러그인을 설치한 경우 `aurora_enable_validate_password_component` 파라미터를 활성화하여 `validate_password` 구성 요소로 마이그레이션한 다음 라이터 인스턴스의 `UNINSTALL PLUGIN` 명령을 통해 플러그인을 제거할 수 있습니다.

**참고**  
플러그인을 모두 설치하고 `aurora_enable_validate_password_component` 파라미터를 활성화한 경우 `validate_password` 구성 요소가 플러그인보다 우선합니다.

이전에 `INSTALL COMPONENT 'file://component_validate_password'`를 사용하여 `validate_password` 구성 요소를 수동으로 설치한 경우 업그레이드할 때 대상 DB 클러스터 `aurora_enable_validate_password_component` 파라미터 그룹에서 파라미터를 설정해야 합니다. 업그레이드 후에는 구성 요소가 더 이상 `mysql.component` 테이블에 나열되지 않습니다. `aurora_enable_validate_password_component` 전역 변수를 사용하여 구성 요소의 상태를 확인할 수 있습니다.

업그레이드 후 첫 번째 DB 엔진을 시작할 때 이전에 구성 요소를 수동으로 설치한 경우 MySQL 오류 로그에 다음 메시지가 표시됩니다.

```
Component 'file://component_validate_password' is being removed from mysql.component table.
validate_password component can be enabled/disabled through 'aurora_enable_validate_password_component' cluster parameter.
```

### 수동 설치 제한
<a name="AuroraMySQL.PasswordPolicies.validate-password.restrictions"></a>

Aurora MySQL 버전 8.4 릴리스부터 수동 `validate_password` 구성 요소 설치 및 제거 명령은 허용되지 않습니다.

```
mysql> INSTALL COMPONENT 'file://component_validate_password';
ERROR HY000: Cannot load component from specified URN: 'validate_password component can be
enabled/disabled through 'aurora_enable_validate_password_component' cluster parameter.'
```

### 구성 요소 상태 모니터링
<a name="AuroraMySQL.PasswordPolicies.validate-password.monitoring"></a>

Aurora MySQL은 구성 요소 상태 변경 사항을 MySQL 오류 로그에 기록합니다.

활성화된 경우:

```
Component 'validate_password' is enabled by parameter aurora_enable_validate_password_component
```

비활성화된 경우:

```
Component 'validate_password' is disabled by parameter aurora_enable_validate_password_component
```

### 마스터 사용자 암호에 대한 암호 검증 영향
<a name="AuroraMySQL.PasswordPolicies.validate-password.master-user"></a>

`modify-db-cluster` API를 통해 마스터 사용자 암호를 재설정할 때 새 암호가 구성된 암호 검증 규칙을 준수하지 않는 경우 Aurora MySQL은 실패를 나타내는 고객이 볼 수 있는 이벤트를 내보내므로 규정을 준수하는 암호로 작업을 다시 시도해야 합니다.

### Amazon RDS 관리형 마스터 사용자 암호에 대한 암호 검증 영향
<a name="AuroraMySQL.PasswordPolicies.validate-password.managed-password"></a>

AWS Secrets Manager에 저장된 Amazon RDS 관리형 마스터 사용자 자격 증명을 사용하는 클러스터의 경우 교체 중에 자동으로 생성된 암호가 구성된 검증 요구 사항을 준수하지 않으면 교체가 실패합니다. 교체가 성공하려면 암호 검증 파라미터를 조정해야 합니다. `validate_password` 구성 요소와 관리형 마스터 사용자 암호를 함께 사용하지 않는 것이 좋습니다.

## 관련 설명서
<a name="AuroraMySQL.PasswordPolicies.related"></a>
+ [Aurora MySQL 구성 파라미터](AuroraMySQL.Reference.ParameterGroups.md)
+ [Amazon Aurora MySQL를 사용한 보안](AuroraMySQL.Security.md)
+ [MySQL validate\_password 구성 요소 설명서](https://dev.mysql.com/doc/refman/8.4/en/validate-password.html)
+ [Amazon Aurora의 파라미터 그룹](USER_WorkingWithParamGroups.md)