ファイアウォールと VNet の内側のアクセス可能なストレージ アカウントに脆弱性評価スキャンの結果を格納する

適用対象: Azure SQL データベース Azure SQL Managed Instance Azure Synapse Analytics

特定の VNet またはサービスに対して Azure のストレージ アカウントへのアクセスを制限している場合は、SQL データベースまたは Azure SQL Managed Instance の脆弱性評価 (VA) スキャンがそのストレージ アカウントにアクセスできるように、適切な構成を有効にする必要があります。

注意

これらの設定は、高速構成を使う場合は必要ありません。

前提条件

SQL 脆弱性評価サービスを使用してベースラインとスキャンの結果を保存するには、ストレージ アカウントへのアクセス許可が必要です。

SQL Server マネージド ID を使用する:

  • SQL Server にはマネージド ID が必要です。
  • ストレージ アカウントには、SQL マネージド ID にストレージ BLOB データ共同作成者としてのロールが割り当てられている必要があります。
  • 設定を適用する場合、VA フィールド storageContainerSasKey と storageAccountAccessKey は空である必要があります (ストレージ アカウント キーまたはストレージ SAS キーを使用した構成は、このシナリオでは有効ではありません)。

Azure portal を使用して SQL VA の設定を保存するときは、ストレージのストレージ BLOB データ共同作成者としての新しいロールの割り当てをマネージド ID に割り当てるアクセス許可がユーザーにあるかどうかが、Azure によって確認されます。 アクセス許可が割り当てられている場合、Azure では SQL Server マネージド ID が使用されます。それ以外の場合、Azure ではキー メソッドが使用されます (このシナリオではサポートされていません)。

Note

  1. このシナリオでは、ユーザー割り当てマネージド ID はサポートされていません。
  2. Azure Storage ライフサイクル管理ポリシーを使っている場合は、VA によって使われているコンテナー上のファイルを、アーカイブ アクセス層に移動しないでください。 アーカイブ アクセス層に格納されているスキャン結果またはベースライン構成の読み取りはサポートされていません。

Azure SQL Database VA スキャンのストレージ アカウントへのアクセスを有効にする

特定のネットワークまたはサービスのみがアクセスできるように VA ストレージ アカウントを構成した場合は、Azure SQL Database に対する VA スキャンがストレージ アカウントにスキャンを格納できることを確認する必要があります。 論理 SQL サーバー のすべてのデータベースに対する VA スキャン結果を格納するには、既存のストレージ アカウントを使用することも、新しいストレージ アカウントを作成することもできます。

Note

ストレージ アクセス キーが必要な場合、脆弱性評価サービスは、ファイアウォールまたは VNet で保護されているストレージ アカウントにアクセスできません。

ストレージ アカウントが含まれている [リソース グループ] に移動し、 [ストレージ アカウント] ペインにアクセスします。 [設定] で、 [ファイアウォールと仮想ネットワーク] を選択します。

[信頼された Microsoft サービスによるこのストレージ アカウントに対するアクセスを許可します] チェック ボックスがオンになっていることを確認します。

[信頼された Microsoft サービスによるこのストレージ アカウントに対するアクセスを許可します] が選択されている、[ファイアウォールと仮想ネットワーク] ダイアログ ボックスを示すスクリーンショット。

使われているストレージ アカウントを調べるには、次の手順のようにします。

  1. Azure portal[SQL サーバー] ペインに移動します。
  2. [セキュリティ][Defender for Cloud] を選びます。
  3. [構成] をクリックします。

脆弱性評価の設定を示すスクリーンショット。

Azure SQL Managed Instance に対する VA スキャン結果を、ファイアウォールまたは VNet の内側でアクセスできるストレージ アカウントに格納する

Azure SQL Managed Instance は信頼された Microsoft サービスではなく、VNet がストレージ アカウントとは異なるため、VA スキャンを実行するとエラーが発生します。

Note

Azure SQL Managed Instance が 2022 年 11 月の機能ウェーブに登録されていることを確認することを強くおすすめします。これにより、ストレージ アカウントがファイアウォールまたは VNET の背後にある場合に、SQL の脆弱性評価の構成がより簡単になります。

2022 年 11 月の機能ウェーブがインストールされている Azure SQL Managed Instance で VA スキャンをサポートするには、次の手順のようにします。

  1. Azure SQL Managed Instance の [概要] ページで、[仮想ネットワークまたはサブネット] の値を記録しておきます。

  2. スキャン結果を格納するために SQL VA が構成されているストレージ アカウントの [ネットワーク] ページに移動します。

  3. [ファイアウォールと仮想ネットワーク] タブの [パブリック ネットワーク アクセス] で、[選択した仮想ネットワークと IP アドレスから有効] を選びます。

  4. [仮想ネットワーク] セクションで [既存の仮想ネットワークを追加する] をクリックし、最初のステップで記録したマネージド インスタンスによって使われる VNET とサブネットを選びます。

    2022 年 11 月の機能ウェーブ (以降) でのストレージ アカウント ネットワークの設定のスクリーンショット。

2022 年 11 月の機能ウェーブがインストールされていない Azure SQL Managed Instance で VA スキャンをサポートするには、次の手順のようにします。

  1. [SQL Managed Instance] ペインの [概要] 見出しの下にある [仮想ネットワーク/サブネット] リンクをクリックします。 [仮想ネットワーク] ペインが表示されます。

    SQL マネージド インスタンスの概要セクションのスクリーンショット。

  2. [設定] で、 [サブネット] を選択します。 新しいペインで [+ サブネット] をクリックしてサブネットを追加します。 詳細については、サブネットの管理に関するページを参照してください。

    サブネットの一覧とサブネット追加オプションを示すスクリーンショット。

  3. デフォルトの Managed Instance サブネット内のインスタンスから Azure Resource Manager へのトラフィックは、インターネット経由でルーティングする必要があります。 したがって、Managed Instance が配置されているサブネットには、ネクスト ホップがインターネットであり、宛先タグが Azure Resource Manager のアドレス範囲に対応する適切な UDR タグであるルートを割り当てる必要があります。 このルートは新しい展開で自動的に追加されますが、削除された場合はもう一度追加する必要があります。

    必須のルートを示すスクリーンショット。

  4. 新しいサブネットは次のように構成する必要があります。

    VA という名前のサブネットとその設定を示すスクリーンショット。

    • [NAT ゲートウェイ]: [なし]
    • [ネットワーク セキュリティ グループ]: [なし]
    • [ルート テーブル]: [なし]
    • [サービス エンドポイント] - [サービス]: [なし] を選択
    • [サブネット委任] - [サブネットをサービスに委任]: [なし]
    • [プライベート エンドポイントのネットワーク ポリシー] - [Private endpoint network policy] (プライベート エンドポイント ネットワーク ポリシー): [なし] を選択
  5. スキャン結果を格納するための SQL VA が構成されているストレージ アカウントに移動し、[プライベート エンドポイント接続] タブをクリックして、[+ プライベート エンドポイント] をクリックします。

    ファイアウォールと仮想ネットワークの設定を示すスクリーンショット。

    プライベート エンドポイントの追加ボタンを示すスクリーンショット。

  6. プライベート エンドポイントの詳細を選びます (同じリージョンの同じ RG に配置することをお勧めします)。

    プライベート エンドポイントの作成の [基本] タブを示すスクリーンショット。

  7. [対象サブリソース][BLOB] を選びます

    プライベート エンドポイントの作成の [リソース] タブを示すスクリーンショット。

  8. SQL MI の仮想ネットワークを選び (ステップ 1 のもの)、作成したサブネットを選びます (ステップ 3 のもの)。

    プライベート エンドポイントの作成の [仮想ネットワーク] タブを示すスクリーンショット。

  9. [プライベート DNS ゾーンと統合する] を選び (既定値のはずです)、他の既定値を選びます

    プライベート エンドポイントの作成の [DNS] タブを示すスクリーンショット。

  10. [確認と作成] タブに進み、[作成] クリックします。 デプロイが完了すると、ストレージ アカウントの [ネットワーク] セクションの [プライベート エンドポイント接続] タブに次の情報が表示されます。

    構成後のストレージの [ネットワーク] の [プライベート エンドポイント接続] を示すスクリーンショット。

これで、Azure SQL Managed Instance に対する VA スキャンをストレージ アカウントに格納できるようになります。

脆弱性評価スキャンに関連する一般的な問題のトラブルシューティングを行います。

脆弱性評価の設定を保存できない

ストレージ アカウントがいくつかの前提条件を満たしていない場合や、アクセス許可が不足している場合には、脆弱性評価の設定の変更を保存できないことがあります。

ストレージ アカウントの要件

脆弱性評価スキャン結果を保存するストレージ アカウントは、次の要件を満たしている必要があります。

  • : StorageV2 (General Purpose V2) または Storage (General Purpose V1)
  • パフォーマンス: Standard (のみ)
  • リージョン:ストレージは Azure SQL Server のインスタンスと同じリージョンにある必要があります。

これらの要件のいずれかが満たされていない場合、脆弱性評価の設定に加えた変更の保存は失敗します。

アクセス許可

脆弱性評価の設定に加えた変更を保存するには、次のアクセス許可が必要です。

  • SQL Security Manager
  • ストレージ BLOB データ閲覧者
  • ストレージ アカウントに対する所有者ロール

新しいロールの割り当てを設定するには、ストレージ アカウントへの所有者またはユーザー管理者のアクセス許可と、次のアクセス許可が必要です。

  • ストレージ BLOB データ所有者

ストレージ アカウントが脆弱性評価設定で選択対象として表示されない

ストレージ アカウントは、いくつかの理由でストレージ アカウント ピッカーに表示されない場合があります。

  • お探しのストレージ アカウントが、選択したサブスクリプションに含まれていない。
  • お探しのストレージ アカウントが、Azure SQL Server のインスタンスと同じリージョンにない。
  • ストレージ アカウントに対する Microsoft.Storage/storageAccounts/read アクセス許可がない。

必要なアクセス許可を持っていない場合、またはスキャン結果を開いたり表示することに対応していないブラウザーを使用している場合は、スキャン結果に関する通知メールのリンクを開いたり、スキャン結果を表示したりできない場合があります。

必要なアクセス許可

スキャン結果に関するメール通知のリンクを開いたり、スキャン結果を表示するには、次のアクセス許可が必要です。

  • SQL Security Manager
  • ストレージ BLOB データ閲覧者

ブラウザー要件

Firefox ブラウザーでは、スキャン結果ビューを開く、または表示する機能はサポートされていません。 脆弱性評価スキャンの結果を表示するには、Microsoft Edge または Chrome を使用することをお勧めします。

次のステップ