Amazon Web Services ブログ
Amazon RDS for SQL Server のパスワードポリシーの構成
Amazon Relational Database Service (Amazon RDS) for SQL Server が、SQL Server 認証を使用するログインのパスワードポリシーの設定をサポートするようになりました。この機能により、ビジネス要件に合わせてカスタムパスワードポリシーを作成できます。SQL Server のパスワードポリシーは、パスワードの評価とそれらのパスワードを使用するエンティティの維持に関する様々なルールを定義します。これらのポリシーには以下が含まれる可能性があります。
- 新しいパスワードに対するパスワードの長さと複雑さの要件の強制
- パスワードの有効期限と定期的な変更の強制
- 不正なパスワードが多数回入力された場合のアカウントのロックアウト
この投稿では、Amazon RDS for SQL Server のパスワードポリシーを有効にし、そのポリシーに準拠する SQL Server ログインを作成するプロセスについてご案内します。
SQL Server のさまざまな認証の概要
SQL Server ログインは、データベースに対して認証可能なセキュリティプリンシパルを表すサーバーレベルのオブジェクトです。SQL Server インスタンスに接続するには、ユーザーはログインを使用して認証する必要があります。以下の形式でログインを作成します。
- SQL Server 認証(ログイン名とパスワード)を使用
- Windows 認証(Windows ユーザーまたはドメインアカウント)を使用
- 証明書から
- 非対称キーから
この投稿では、SQL Server 認証を使用してログインのパスワード ポリシーを構成する方法にフォーカスします。
前提条件
- Amazon RDS for SQL Server インスタンス
- Amazon RDS for SQL Server インスタンスに接続できる SQL Server Management Studio (SSMS)
- カスタムパラメータグループ
パラメータグループの作成または修正
Amazon RDS for SQL Server ではパラメータグループを通じてパスワードポリシーを有効にすることができます。詳細については、「Amazon RDS のパラメータグループ」を参照してください。
以下の表は、SQL Server のパスワードポリシーを設定するために構成可能なパラメータを示しています。以下のパラメータはすべて動的であり、RDS データベースインスタンスの再起動を必要とせずに変更を即座に適用できます。
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 |
RDS インスタンスのバージョンとエディションに基づいて、新しいパラメータグループを作成するか、既存のパラメータグループを使用することができます。カスタムパラメータグループが必要です。RDS インスタンスがデフォルトのパラメータグループで実行されている場合は、新しいパラメータグループを作成してください。すでに Amazon RDS for SQL Server インスタンスとそれにアタッチされたカスタムパラメータグループがある場合は、そのパラメータグループの名前をメモしてください。その後、以下の手順を実行します。
- Amazon RDS コンソールで、RDS for SQL Server インスタンスを見つけます。
- 設定タブで、DB インスタンスパラメータグループ rds-sql-parametergroup を選択します。
- 名前にパスワードというテキストを含むパラメータを検索します。
これにより、RDS インスタンスのパスワード設定に関連するすべてのパラメータが読み込まれます。
- 編集をクリックしてパラメータ値を変更します。
rds.password_complexity_enabled
の値を 0 から 1 に変更します。- 保存をクリックします。
注意: Amazon RDS for SQL Server のマルチ AZ 構成では、パスワードポリシーはプライマリインスタンスとスタンバイインスタンスの両方に適用されます。
SQL Server ログインのパスワードの複雑さを構成
rds.password_complexity_enabled パラメータを有効にしたので、RDS インスタンスに接続し、以下の手順を実行して既存のログインの 1 つにパスワード複雑性ポリシーを適用してください。
- SSMSを開きます。
ALTER ANY LOGIN
権限を持つログインを使用して、RDS for SQL Server に接続します。- セキュリティ、ログインのフォルダを展開します。
- 既存のログインの 1 つを選択し、そのプロパティを表示します。
- 複雑なパスワードを入力して、ログインのパスワードをリセットします。
- パスワードポリシーを適用とパスワードの有効期限を適用を選択します。
- OK をクリックします。
パスワードロックアウトポリシーの設定
さらに一歩進んで、Amazon RDS for SQL Server インスタンスにロックアウトポリシーを追加しましょう。ロックアウトの動作を制御する 3 つのパラメータがあります(詳細は上記のパラメータ表を参照してください)。
rds.password_lockout_threshold
(デフォルト値 = 0)rds.password_lockout_duration
(デフォルト値 = 10)rds.password_lockout_reset_counter_after
(デフォルト値 = 10)
SQL Server ログインのロックアウトポリシーを有効にするには、RDS パラメータグループに戻り、rds.password_lockout_threshold
パラメータを 0 から 3 に更新します。この設定により、3 回のパスワード入力失敗後に SQL Server ログインがロックアウトされます。
rds.password_lockout_threshold
は動的パラメータであり、CHECK_POLICY
が有効になっているすべてのログインに適用されます。
ロックアウトポリシーを有効にしたことで、「CHECK_POLICY」または「パスワードポリシーを適用する」が有効になっている任意の SQL Server ログインに対して、不正なパスワードを使用して 3 回連続でログインに失敗すると、そのログインはロックアウトされます。
以下の図に示すように、SQL Server Management Studio から SQL Server のログイン状態を確認できます。
あるいは、SQL サーバーのログファイルを参照することもできます。
EXEC rdsadmin.dbo.rds_read_error_log
Amazon RDS for SQL Server のエラーログによると、3 回のパスワード入力ミスの後、ログインユーザー user1 がロックアウトされ、正しいパスワードを入力しても接続できなくなっています。設定例のパラメータによると、ロックアウト期間は 10 分後に解除されます。データベース管理者は、ロックアウトされたログインを任意のタイミングで手動でロック解除することができます。
注意:プロアクティブな監視のために、失敗したログインを追跡するために SQL Server 監査用のデータベースアクティビティストリームを構成してください。
クリーンアップ
この設定が不要になり、今後の料金を避けたい場合は、Amazon RDS for SQL Server インスタンスを削除することができます。
結論
この投稿では、Amazon RDS for SQL Server データベースインスタンスで SQL Server 認証を使用したログインに対するパスワードポリシーの適用方法を紹介しました。この機能により、組織の要件に基づいて SQL Server ログインのパスワードポリシーを設定することができます。
翻訳はソリューションアーキテクトの Yoshinori Sawada が担当しました。原文はこちらです。
著者について
Vikas Babu Gali は、アマゾンウェブサービスにおいてマイクロソフトのワークロードに特化したシニアスペシャリストソリューションズアーキテクトです。彼は、クリケットをプレイすることや、家族や友人と屋外で時間を過ごすことを楽しんでいます。
Wasim Shaikh は AWS のデータベース専門のシニアパートナーソリューションアーキテクトです。お客様と協力して、様々なデータベースや分析プロジェクトに関するガイダンスと技術支援を提供し、AWS を使用する際のソリューションの価値向上を支援しています。