Azure SQL ServerとWeb AppsのIPホワイトリスト
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Sitecore on Azureは、Azure WebアプリとAzure SQL Serverテクノロジーを使用します。IPホワイトリストは、特定のIPアドレスからサービスにアクセスするコンピューターのAzure Web AppsとSQL Serverリソースへのアクセスを提供します。同時に、不特定のすべてのIPアドレスから不正アクセスを試みるコンピューターのアクセスをブロックします。このトピックでは、考慮事項、Sitecore 9.0.xのIPホワイトリストの設定、およびSQL ServerファイアウォールのIPホワイトリストの設定について説明します。
考慮 事項
考慮 事項
Azure SQL ServerとWeb AppsのIPホワイトリストを構成する前に、次の点を考慮してください。
-
Azure Web Appsサービスでは、静的IPは提供されません。ただし、Microsoftは、バックエンドのIPアドレスを変更する前に、約90日前に通知します。サイトコアは、当社の事前の知識なしにIPアドレスが変更される可能性のある技術的なケースを保証することはできません。たとえば、App Serviceプランをスケールアップしたり、アプリケーションを1つのApp Serviceプランから別のApp Serviceプランに移動したりすると、IPアドレスが変更される可能性があります。
-
Microsoftは、Web AppsとAzure App Services製品の他のテナントとの間で送信IPアドレスを共有できます。つまり、他のサブスクライバーが所有するAzureテナントが、Sitecore Webアプリケーションに関連付けられたAzureアウトバウンドIPアドレスをホワイトリストに登録すると、MLabクラスターなどの外部リソースに理論的にアクセスできるという小さなリスクがあります。
非静的で一意でないIPアドレスに関連する潜在的な影響は比較的小さいです。それでも、Azureは分離されたホスティング環境 (App Service Environment) を提供し、静的で一意のIPアドレスと他の標準機能を提供します。
-
Webアプリケーションのサービス プランの変更 (スケールアップやスケールアウトなど) により、Web Appsが新しい送信IPアドレスを取得する可能性があります。これにより、IPホワイトリスト構成設定が無効になり、古いIPアドレスが参照される可能性があります。
Sitecore 9.0.xのIPホワイトリストの設定
Sitecore 9.0.xのIPホワイトリストの設定
Webアプリケーションのメニューを使用して、特定のWebアプリケーションのアクセスを指定したIPアドレスに制限できます。ただし、特定のWebアプリケーションのIPホワイトリストを設定するには、Settings、Networking、<the Web App overview page> に移動します。IP restrictionsでConfigure IP restrictionsをクリックします。ルールを追加するには、IPアドレスまたはIPアドレス範囲を指定し、サブネット マスクを指定します。
Azure Web AppsやオンプレミスのASP.Netアプリケーション (特にSitecore 9トポロジ) などのSitecoreインスタンスは、設定ファイルの接続文字列で相互に参照します。つまり、特定のSitecoreインスタンスに対してIPホワイトリストを有効にする場合は、そのSitecoreインスタンス (およびそれが参照する他のインスタンス) の送信IPアドレスもホワイトリストに登録する必要がありますall 。
たとえば、コンテンツ配信ロールが3つのSitecoreインスタンス (xConnectコレクション、xDB参照データ、マーケティング オートメーションなど) を参照している場合、3つのインスタンスすべてについて、コンテンツ配信インスタンスの送信IPアドレスをホワイトリストに登録する必要があります。
インスタンスが持つコンポーネント参照は、トポロジやサイズなどの要因によって異なります。Sitecore Managed Cloudは、Azure上でさまざまなサイズのさまざまなSitecore製品とトポロジを提供します。アーキテクチャとスケーリング プロパティが異なるため、これらのコンポーネント参照と接続文字列は製品ごとに異なる場合があります。
GetConnectionString.ps1PowerShellスクリプトを使用して、Azure上のSitecoreインスタンスのコンポーネント参照を検索し、前述のようにIPホワイトリストを適用できます。
PowerShellスクリプトには、次のパラメーターの値が必要です。
-
Resource Group Name- Managed Cloudセットを含むリソース グループの名前。
Subscription ID- リソース グループを含むAzureサブスクリプションのGUID
このスクリプトは、次の例のようなJSONコードを生成します。
この例は、完全な出力ファイルの一部を示しています。Sitecore製品とトポロジによっては、出力ファイル内のリソースの数が大幅に異なる場合があります。したがって、コンポーネントを参照している場合は、すべてのロールをホワイトリストに登録することを忘れないでください。
この例では、Content Managementロールは他の5つのインスタンスを参照します。つまり、5つのインスタンスすべてでContent Managementの送信IPアドレスをホワイトリストに登録する必要があります。
この特定の例は、すべてのコンポーネントがAzureでホストされているSitecore製品用です。xDBなど、他のトポロジの一部のロールは、Azureまたはオンプレミス サーバーでホストされているインスタンスを持つことができます。その場合は、その特定のコンポーネントのIPアドレスをホワイトリストに登録する必要があります (Azureサーバーでホストされているか、オンプレミスのサーバーでホストされているかに関係なく)。
xDBの場合、オンプレミスのXMコンテンツ管理ロールは、Azureでホストされているxdb.referencedata.clientロールを参照します。そのため、xdb.referencedata.client Azure WebアプリでContent ManagementロールをホストしているサーバーのIPアドレスをホワイトリストに登録する必要があります。「Sitecore for xDB on Azureの設定」では、Managed Cloud xDBセットのContent DeliveryロールとContent Managementロールを設定する方法を学ぶことができます。
reporting.apikey接続文字列は、Sitecore Reporting ロールが受信リクエストを認証するために使用するキーに対応します。Reporting Web Appでは、reporting.apikey接続文字列を参照するSitecoreロールのIPアドレスをホワイトリストに登録する必要があります。
SQL ServerファイアウォールのIPホワイトリストの構成
SQL ServerファイアウォールのIPホワイトリストの構成
Sitecore on AzureソリューションでMicrosoft SQL Serverを使用している場合は、サーバー上のデータベースにアクセスする必要があるコンピューターのIPアドレスを明示的にホワイトリストに登録する必要があります。そうしないと、SQL Serverファイアウォールによってすべてのアクセスが禁止されます。SQL Serverファイアウォールのアクセス許可とルールは、次のいずれかの方法で構成できます。
-
Allow access to Azure services- これにより、任意のAzureリソースがファイアウォール経由でアクセスできるようになります。これには、他の組織が所有するサブスクリプション内のAzureリソースが含まれます。
-
Disable access to Azure services- このオプションでは、SQLサーバーへのアクセスを必要とするAzure上のコンピューターとリソースに関連付けられているIPアドレスを明示的にホワイトリストに登録する必要があります。この手順は、Sitecoreのバージョンやトポロジによって異なります。
-
Specify the machine IP address for the Azure SQL Server firewall- Azure上のデータベースに接続するオンプレミス インスタンスの場合。Azure SQL Serverの場合、Sitecore for xDB on Azureを設定して、オンプレミス マシンのIPアドレスをホワイトリストに登録する必要があります。Azure SQL Serverファイアウォールには、クライアント インスタンスの接続文字列が参照するデータベースが含まれています。ここで、クライアントのIPアドレスをホワイトリストに登録する必要があります。
-
Whitelisting resources, specifically Web Apps on Azure- Sitecore on Azureを実行している各Sitecore Webアプリケーションについて、GetConnectionString.ps1PowerShellスクリプトを使用して、データベースのすべての接続文字列を一覧表示します。このスクリプトは、JSONファイルでリストを生成し、次のパラメーターの値を必要とします。
-
Resource Group Name- Managed Cloudセットを含むリソース グループの名前。
-
Subscription ID- リソース グループを含むAzureサブスクリプションのGUID。
PowerShellスクリプトは、次のJSONコードを生成します。
このコード サンプルは、レポートWebアプリが参照しているSQLサーバーのデータベースへの接続文字列を一覧表示します。レポートWebアプリの送信IPアドレスは、SQL Serverファイアウォールで指定する必要があります。これを行うには、次の手順を実行します。
-
Microsoft Azureファイアウォールのガイドラインを使用して、IPホワイトリストに登録するIPアドレスまたは開始IPアドレスと終了IPアドレスの範囲を指定します。
-
仮想ネットワークを構成します。 仮想ネットワーク ルールは、Azure SQL Databaseサーバーが仮想ネットワーク内の特定のサブネットから送信された通信を受け入れるかどうかを制御します。
-