RDS for SQL Server での SQL Server ログインのパスワードポリシーの使用 - Amazon Relational Database Service

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 のフラグがあります。デフォルトでは、新しいログインは、CHECK_POLICYON に設定し、CHECK_EXPIRATIONOFF に設定して作成されます。

CHECK_POLICY がログインについて有効な場合、RDS for SQL Server は複雑さと最小長の要件に照らしてパスワードを検証します。ロックアウトポリシーも適用されます。CHECK_POLICYCHECK_EXPIRATION を有効にする T-SQL ステートメントの例:

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

CHECK_EXPIRATION が有効になっている場合、パスワードはパスワード有効期間ポリシーの対象です。CHECK_POLICYCHECK_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 ログインのパスワードを作成または変更するときは、パスワードの複雑さに関する要件を満たす必要があります。次の制約を満たす必要があります。
  • パスワードには、次の 3 つのカテゴリの文字を含める必要があります。

    • 英小文字 (a~z)

    • 英大文字 (A~Z)

    • 感嘆符 (!)、ドル記号 ($)、番号記号 (#)、パーセント (%) など、英数字以外の文字。

  • パスワードにユーザーのアカウント名が含まれていません。

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_durationrds.password_lockout_reset_counter_after は適用されません。

既存のログインに関する考慮事項

インスタンスのパスワードポリシーを変更した後、ログイン用の既存のパスワードは、新しいパスワードの複雑さと長さの要件に対して遡及的に評価されません。新しいパスワードのみが新しいポリシーに対して検証されます。

SQL Server は、既存のパスワードの有効期間要件を評価します

パスワードポリシーが変更されると、パスワードがすぐに期限切れになる可能性があります。例えば、ログインの CHECK_EXPIRATION が有効であり、パスワードが 100 日前に変更され、rds.password_max_age パラメータを 5 日に設定した場合、パスワードは直ちに期限切れになり、次回のログイン時にパスワードを変更する必要があります。

注記

RDS for SQL Server は、パスワード履歴ポリシーをサポートしていません。履歴ポリシーは、以前に使用されたパスワードを再利用したログインを禁止します。

マルチ AZ 配置に関する考慮事項

マルチ AZ インスタンスの失敗したログイン試行カウンターとロックアウト状態は、ノード間でレプリケートされません。マルチ AZ インスタンスがフェイルオーバーしたときにログインがロックアウトされていた場合、新しいノードでログインがすでにロック解除されている可能性があります。