RDS for SQL Server에서 SQL Server 로그인에 암호 정책 사용
Amazon RDS를 사용하면 Microsoft SQL Server를 실행하는 Amazon RDS DB 인스턴스에 암호 정책을 설정할 수 있습니다. 이를 사용하여 SQL Server 인증으로 DB 인스턴스를 인증하는 로그인의 복잡성, 길이 및 잠금 요구 사항을 설정할 수 있습니다.
주요 용어
- 로그인
-
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 작업 단원을 참조하십시오.
각 로그인에 대한 정책 활성화 및 비활성화
각 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;
암호 정책 파라미터
모든 암호 정책 파라미터는 동적이므로 DB를 재부팅하지 않아도 적용됩니다. 다음 표에는 SQL Server 로그인에 대한 암호 정책을 수정하기 위해 설정할 수 있는 DB 파라미터가 나열되어 있습니다.
DB 파라미터 | 설명 | 허용된 값 | 기본 값 |
---|---|---|---|
rds.password_complexity_enabled | SQL Server 로그인을 위한 암호를 만들거나 변경할 때는 암호 복잡성 요구 사항을 충족해야 합니다. 다음 제약 조건을 충족해야 합니다.
|
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 암호 정책에 대한 자세한 내용은 암호 정책
암호 복잡성 및 최소 길이 정책은 포함된 데이터베이스의 DB 사용자에게도 적용됩니다. 자세한 내용은 포함된 데이터베이스
암호 정책 매개변수에는 다음 제약 조건이 적용됩니다.
-
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
는 적용되지 않습니다.
기존 로그인에 대한 고려 사항
인스턴스의 암호 정책을 수정한 후에는 로그인을 위한 기존 암호가 새로운 암호 복잡성 및 길이 요구 사항을 기준으로 소급 평가되지 않습니다. 새 암호만 새 정책을 기준으로 검증됩니다.
SQL Server는 수명 요구 사항을 기준으로 기존 암호를 평가합니다.
암호 정책이 수정되는 즉시 암호가 만료될 수도 있습니다. 예를 들어 로그인에 CHECK_EXPIRATION
이 활성화되어 있고 100일 전에 암호를 마지막으로 변경했으며 rds.password_max_age
파라미터를 5일로 설정한 경우 암호가 즉시 만료되므로 다음 로그인 시도 시 암호를 변경해야 합니다.
참고
RDS for SQL Server는 암호 기록 정책을 지원하지 않습니다. 기록 정책은 로그인이 이전에 사용한 암호를 재사용하지 못하도록 합니다.
다중 AZ 배포에 대한 고려 사항
다중 AZ 인스턴스의 로그인 시도 실패 카운터 및 잠금 상태는 노드 간에 복제되지 않습니다. 다중 AZ 인스턴스가 장애 조치될 때 로그인이 잠기는 경우 새 노드에서 로그인이 이미 잠금 해제되어 있을 수 있습니다.