Amazon Web Services ブログ
Amazon RDS for SQL サーバーでの SQL ログイン作成を監視する
データベースのセキュリティを維持することは、あらゆる組織の成功にとって不可欠です。データベースユーザーの認証と認可の実装は、データベースシステムを保護するための重要な手順です。従来のデータベース認証は、ユーザー名とパスワードのメカニズムに基づいています。このプロセスでは資格情報を管理するために DBA とエンドユーザーの両方に一定の時間と労力が必要です。対照的にリレーショナルデータベース認証を Microsoft Active Directory (AD) などの集中認証サービスと組み込むことは、より安全で広く受け入れられている業界のベストプラクティスです。
SQL Server は 2 つの認証モードをサポートしています。
- Windows
- 混合モード
Amazon Relational Database Service (Amazon RDS) for SQL Server は、混合モード認証のみをサポートします。お客様が Windows 認証のみを利用したいシナリオでは、SQL ログイン作成を監視するカスタムソリューションを実装できます。
この投稿では、Amazon RDS for SQL Server インスタンス内で SQL ログインが作成されたときに E メール通知を受け取るソリューションを紹介します。
ソリューションの概要
この投稿のソリューションでは、データベースメールが構成された Amazon RDS for SQL Server を使用します。データベースメールを使用すると、SMTP (Simple Mail Transfer Protocol) サーバーを使用して SQL Server からユーザーにメッセージを送信することができます。 Amazon RDS for SQL Server インスタンスには、データベースインスタンス内での SQL ログインの作成を定期的に監視するように設定された SQL エージェントジョブがあります。 SQL ログインの作成を検出すると、SQL Server エージェントジョブはデータベース管理者が適切なアクションを取れるように、ログインの詳細を含む E メールメッセージをデータベース管理者に送信します。
Amazon Simple Email Service (Amazon SES) は、独自の E メールアドレスとドメインを使用して E メールを送受信するための簡単かつコスト効率の高い方法を提供する E メールプラットフォームです。
前提条件
開始するには、次の前提条件を満たしている必要があります。
- Amazon RDS for SQL Server インスタンス
- Amazon SES で構成された SQL サーバー データベースメール
- SQL Server Management Studio (SSMS) の知識があること
- SQL エージェントジョブの作成に関する知識があること
Amazon SES 経由で E メールを送信するようにデータベースメールを構成する
「Amazon RDS for SQL Server でのデータベースメールの使用」の投稿では、Amazon SES でデータベースメールを設定するための詳細な手順を説明しました。データベースメールを使用すると、Amazon RDS on SQL Server データベースインスタンスからユーザーに E メールメッセージを送信できます。 Amazon RDS は、SQL Server の Web、Standard および Enterprise Edition のすべてのバージョンのデータベースメールをサポートします。
データベースメールを構成した後、テスト E メールを送信して成功したかどうかをすぐに検証できます。
SQLエージェントジョブの作成
次のステップは、SQL エージェントジョブを作成して、SQL ログインを定期的に監視するスケジュールを設定します。
- SQL Server Management Studio を使用して SQL Server にログインします。
- SQL Server エージェントの下のジョブのコンテキストメニューを開き (右クリック)、[新しいジョブ] を選択します。
- SQL エージェントジョブの名前を指定します。
- 「ページの選択」セクションで [ステップ] を選択し、[新規作成] を選択します。
- ステップ名を指定し、コマンドセクション内に次の T-SQL スクリプトをコピーして貼り付けます。このスクリプトは sys.sql_logins DMV を監視し、マスターユーザー以外の SQL ログインが見つかった場合に E メール通知を送信します。
必要に応じて、T-SQL スクリプトで次の変更を行う必要があります。- admin – このソリューションではマスターユーザーとしてデフォルトの「admin」を使用しました。デフォルトの「admin」からマスターユーザー名を変更する場合は、マスターユーザー名を編集します。この変更箇所はスクリプト内で 2 箇所あります。
- @recipients – 必要に応じて受信者の E メールアドレスを編集します。この変更箇所はスクリプト内で 1 箇所です。
- スクリプトに変更を加えたら、[OK] を選択します。
- 「ページの選択」セクションで [スケジュール] を選択し、 [新規作成] を選択します。
- ジョブ スケジュールの名前を入力し、必要に応じて頻度を選択し、[OK] を選択します。
- [OK] を選択して SQL サーバーエージェントジョブを作成します。
セットアップのテスト
- SQL ログインを作成します。これは、T-SQL または SSMS を使用して実行できます。
- 数分後、新しい SQL ログインについて警告する E メール通知が届きます。次のスクリーンショットは E メールの例を示しています。
後片付け
このソリューションをテストした場合、追加の課金を回避するために次の手順を実行して作成されたコンポーネントを削除します。
- SSMS を使用して RDS インスタンスに接続し、作成された SQL Server エージェントジョブを削除します。
- Amazon RDS コンソールで RDS SQL Server インスタンスを選択し、[アクション] メニューで [削除] を選択します。
まとめ
この投稿では、Amazon RDS for SQL Server インスタンス内で SQL ログインが作成されたときに Amazon SES を通じて E メール通知を送信する SQL Server エージェントジョブを作成する方法を説明しました。
ご質問、コメント、フィードバックがありましたら、この投稿のコメントセクションに残してください。
著者について
Sid Vantair は、戦略アカウントを担当する AWS のソリューション アーキテクトです。リレーショナル データベースを扱う 10 年以上の経験を持つ彼は、顧客のハードルを克服するために複雑な技術的問題を解決することに熱心に取り組んでいます。仕事以外では、家族と過ごす時間を大切にし、子供たちの好奇心を育んでいます。
Poulami Maity は、アマゾン ウェブ サービスのデータベース スペシャリスト ソリューション アーキテクトです。彼女は AWS の顧客と協力して、既存のデータベースを AWS クラウドに移行して最新化するのを支援しています。
翻訳はソリューションアーキテクトの Yoshinori Sawada が担当しました。原文はこちらです。