安全な環境を実装する

推定所要時間:30 分

受講者は、レッスンで得た情報を利用して、Azure portal と AdventureWorksLT データベース内でセキュリティを構成した後、実装します。

あなたは、データベース環境のセキュリティを確保するために、上級データベース管理者として採用されています。 これらのタスクは Azure SQL Database に焦点を当てます。

📝 これらの演習では、T-SQL コードをコピーして貼り付け、既存の SQL リソースを使うように求められます。 コードを実行する前に、コードが正しくコピーされていることを確認してください。

環境をセットアップします

ラボ仮想マシンが提供され、事前に構成されている場合は、C:\LabFiles フォルダーにラボ ファイルが用意されているはずです。 少し時間をとって確認してください。ファイルが既に存在存在している場合には、このセクションをスキップしてください。 ただし、独自のマシンを使用している場合、またはラボ ファイルが見つからない場合は、 GitHub からそれらを複製して続行する必要があります。

  1. ラボ仮想マシン、または提供されていない場合はローカル コンピューターから、Visual Studio Code のセッションを起動します。

  2. コマンド パレット (Ctrl+Shift+P) を開き、「Git Clone」と入力します。 [Git: Clone] オプションを選択します。

  3. [Repository URL] フィールドに次の URL を貼り付け、Enter キーを押します。

     https://github.com/MicrosoftLearning/dp-300-database-administrator.git
    
  4. リポジトリを、ラボ仮想マシン、または提供されていない場合はローカル コンピューターの [C:\LabFiles] フォルダーに保存してください(フォルダーが存在しない場合は作成します)。

Azure で SQL Server を構成する

Azure にログインし、Azure で実行されている既存の Azure SQL Server インスタンスがあるかどうかを確認します。 Azure で SQL Server インスタンスが既に実行されている場合は、このセクションをスキップします

  1. ラボ仮想マシン、または提供されていない場合はローカル コンピューターから、Visual Studio Code セッションを起動し、前のセクションから複製されたリポジトリに移動します。

  2. /Allfiles/Labs フォルダーを右クリックし、[統合ターミナルで開く] を選択します。

  3. Azure CLI を使用して Azure に接続しましょう。 次のコマンドを入力して、Enter キーを押します。

     az login
    

    📝 ブラウザー ウィンドウが開くことに注意してください。 ログインには Azure 資格情報を使用してください。

  4. Azure にログインしたら、リソース グループがまだ存在しない場合は作成し、そのリソース グループの下に SQL サーバーとデータベースを作成します。 次のコマンドを入力して、Enter キーを押します。 スクリプトが完了するまで数分かかります

     cd ./Setup
     ./deploy-sql-database.ps1
    

    📝 既定では、このスクリプトは contoso-rg というリソース グループを作成するか、名前が contoso-rg (存在する場合) で始まるリソースを使用していることに注意してください。 既定では、 West US 2 リージョン (westus2) にもすべてのリソースが作成されます。 最後に、 SQL 管理者パスワードのランダムな 12 文字のパスワードを生成します。 これらの値は、パラメーター -rgName-location-sqlAdminPw のいずれかまたは複数を使用して、任意の値に変更することができます。 パスワードは Azure SQL のパスワードの複雑さの要件を満たす必要があります。具体的には、12文字以上で、大文字 1 文字、小文字 1 文字、数字 1 つ、特殊文字 1 つを含める必要があります。

    📝 スクリプトによって、現在のパブリック IP アドレスが SQL Server ファイアウォール規則に追加されることに注意してください。

  5. スクリプトが完了すると、リソース グループ名、SQL Server 名とデータベース名、管理者ユーザー名とパスワードが返されます。 これらの値は、後でラボで必要になりますのでメモしておきます


Azure SQL Database ファイアウォール規則を構成する

  1. ラボ仮想マシン、または提供されていない場合はローカル コンピューターから、ブラウザー セッションを起動し、 https://portal.azure.comに移動します。 Azure 資格情報を使用して、Azure portal に接続します。

  2. Azure portal の上部にある検索ボックスで SQL サーバーを検索し、オプションの一覧から SQL サーバーを選択します。

  3. SQL Server dp300-lab-xxxxxxxx を選択します。xxxxxxxx はランダムな数値文字列です。

    📝 このラボで作成されていない独自の Azure SQL Server を使用している場合は、その SQL Server の名前を選択します。

  4. SQL Server の [概要] 画面で、サーバー名の右側にある [クリップボードにコピー] ボタンを選択します。

  5. [ネットワーク設定を表示する] を選択します。

  6. [ネットワーク] ページで、[ファイアウォール規則] の一覧を確認し、クライアント IP アドレスが一覧表示されていることを確認します。 一覧にない場合は、[+ クライアント IPv4 アドレス (IP アドレス) の追加] を選択し、[保存] を選択します。

    📝 クライアント IP アドレスは自動的に入力されたことに注意してください。 使用するクライアント IP アドレスを一覧に追加すると、SQL Server Management Studio (SSMS) またはその他任意のクライアント ツールを使用して、Azure SQL Database に接続できます。 クライアントの IP アドレスをメモしてください。後で使用します。

  7. SQL Server Management Studio を開きます。 [サーバーへの接続] ダイアログ ボックスで、Azure SQL Database サーバーの名前を貼り付け、次の資格情報でログインします。

    • サーバー名: <Azure SQL Database のサーバー名をここに貼り付けてください>__
    • 認証: SQL Server 認証
    • [サーバー管理者ログイン]: Azure SQL Databaseサーバー管理者ログイン
    • パスワード: Azure SQL Database サーバー管理者パスワード
  8. [接続] を選択します。

  9. オブジェクト エクスプローラーでサーバー ノードを展開し、 [Databases] を右クリックします。 [データ層アプリケーションのインポート] を選択します。

  10. [データ層アプリケーションのインポート] ダイアログで、最初の画面の [次へ] をクリックします。

  11. [インポートの設定] 画面で、[参照] をクリックし、C:\LabFiles\dp-300-database-administrator\Allfiles\Labs\04 フォルダーに移動して AdventureWorksLT.bacpac ファイルをクリックしたあと、[開く] をクリックします。 [データ層アプリケーションのインポート] 画面に戻り、 [次へ] を選択します。

  12. [データベースの設定] 画面で、次のように変更します。

    • データベース名: AdventureWorksFromBacpac
    • Microsoft Azure SQL Database のエディション: Basic
  13. [次へ] を選択します。

  14. [概要] 画面で [完了] を選択します。 この処理には数分かかります。 インポートが完了すると、次の結果が表示されます。 次に、[閉じる](Close) を選択します。

  15. SQL Server Management Studio に戻り、オブジェクト エクスプローラー[Databases] フォルダーを展開します。 次に、AdventureWorksFromBacpac データベースを右クリックし、 [新しいクエリ] をクリックします。

  16. テキストをクエリウィンドウに貼り付けて、次の T-SQL クエリを実行します。
    1. 重要: 000.000.000.00 は実際のクライアント IP アドレスに置き換えます。 [実行] を選択します。
     EXECUTE sp_set_database_firewall_rule 
             @name = N'AWFirewallRule',
             @start_ip_address = '000.000.000.000', 
             @end_ip_address = '000.000.000.000'
    
  17. 次に、AdventureWorksFromBacpac データベースに含まれるユーザーを作成します。 [新しいクエリ] を選択し、次の T-SQL を実行します。

     USE [AdventureWorksFromBacpac]
     GO
     CREATE USER ContainedDemo WITH PASSWORD = 'P@ssw0rd01'
    

    📝 このコマンドで、AdventureWorksFromBacpac データベース内に含まれるユーザーが作成されます。 この資格情報は、次の手順でテストします。

  18. オブジェクト エクスプローラーに移動します。 [接続][データベース エンジン] の順にクリックします。

  19. 前の手順で作成した資格情報を使用して接続を試みます。 次の情報を使用する必要があります。

    • ログイン: ContainedDemo
    • パスワード: P@ssw0rd01

    [Connect] をクリックします。

    次のエラーが表示されます。

    ユーザー ‘ContainedDemo’ はログインできませんでした。(Microsoft SQL Server、エラー: 18456)

    📝 このエラーが発生するのは、ユーザーが作成された AdventureWorksFromBacpac ではなく master データベースに接続でログインしようとしたからです。 [OK] を選択してエラー メッセージを終了したあと、[サーバーに接続][オプション »] を選択することで、接続コンテキストを変更します。

  20. [接続のプロパティ] タブで、データベース名「AdventureWorksFromBacpac」を入力してから、[接続] を選択します。

  21. ContainedDemo ユーザーを使用して正しく認証できたことに注意してください。 今度は AdventureWorksFromBacpac に直接ログインしました。これは、新しく作成されたユーザーがアクセスできる唯一のデータベースです。

リソースをクリーンアップする

Azure SQL Server を他の目的で使用していない場合は、このラボで作成したリソースをクリーンアップできます。

リソース グループを削除します

このラボの新しいリソース グループを作成した場合は、リソース グループを削除して、このラボで作成されたすべてのリソースを削除できます。

  1. Azure portal で、左側のナビゲーション ペインから リソース グループ を選択するか、検索バーで リソース グループを検索して、結果からそのリソース グループを選択します。

  2. このラボ用に作成したリソース グループに移動します。 リソース グループには、Azure SQL Server と、このラボで作成されたその他のリソースが含まれます。

  3. トップ メニューから [リソース グループの削除] を選択します。

  4. [リソース グループの削除] ダイアログで、リソース グループの名前を入力して確認した後、[削除] を選択します。

  5. リソース グループが削除されるのを待ちます。

  6. Azure Portal を閉じます。

ラボ リソースのみを削除する

このラボ用の新しいリソース グループを作成せず、リソース グループとその以前のリソースをそのまま残したい場合は、このラボで作成したリソースを削除できます。

  1. Azure portal で、左側のナビゲーション ペインから リソース グループ を選択するか、検索バーで リソース グループを検索して、結果からそのリソース グループを選択します。

  2. このラボ用に作成したリソース グループに移動します。 リソース グループには、Azure SQL Server と、このラボで作成されたその他のリソースが含まれます。

  3. ラボで以前に指定した SQL Server 名のプレフィックスが付いたすべてのリソースを選択します。

  4. トップ メニューから、削除を選択します。

  5. [リソースの削除] ダイアログで、「delete」と入力し、[削除] を選択します。

  6. [削除] をもう一度選択し、リソースの削除を確定します。

  7. リソースが削除されるまで待ちます。

  8. Azure Portal を閉じます。

LabFiles フォルダーを削除する

このラボ用に新しい LabFiles フォルダーを作成して、それが不要になった場合は、LabFiles フォルダーを削除して、このラボで作成されたすべてのファイルを削除できます。

  1. ラボ仮想マシン、または提供されていない場合はローカル コンピューターから、エクスプローラーを開き、 C:\ ドライブに移動します。
  2. LabFiles フォルダーを右クリックし、[削除] を選択します。
  3. [はい] を選択して、フォルダーの削除を確認します。

このラボは以上で完了です。

この演習では、Azure SQL Database でホストされているデータベースにアクセスするために、サーバーとデータベースのファイアウォール規則を構成しました。 また、T-SQL ステートメントを使用して含まれるユーザーを作成し、SQL Server Management Studio を使用してアクセスを確認しました。