1. Managed Cloudのセキュリティ

Azure SQL ServerとWeb AppsのIPホワイトリスト

Version:
日本語翻訳に関する免責事項

このページの翻訳は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ホワイトリストの設定

Webアプリケーションのメニューを使用して、特定のWebアプリケーションのアクセスを指定したIPアドレスに制限できます。ただし、特定のWebアプリケーションのIPホワイトリストを設定するには、SettingsNetworking、<the Web App overview page> に移動します。IP restrictionsConfigure IP restrictionsをクリックします。ルールを追加するには、IPアドレスまたはIPアドレス範囲を指定し、サブネット マスクを指定します。

Configure IP restrictions

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コードを生成します。

{
   "test-whitelisting-9x-131490-cm":  {
"ReferencedWebAppsComponents":  [
       {                                                                                    "ConnectionStringName":  "xconnect.collection",                                                                                      "WebAppUrl":  "https://test-whitelisting-9x-131490-xc-search.azurewebsites.net",                                                                                      "WebAppName":  "test-whitelisting-9x-131490-xc-search"
     },
     {                                                                                      "ConnectionStringName":  "xdb.referencedata.client",                                                                                     "WebAppUrl":  "https://test-whitelisting-9x-131490-xc-refdata.azurewebsites.net",                                                                                      "WebAppName":  "test-whitelisting-9x-131490-xc-refdata"
      },
       {                                                                                     "ConnectionStringName":  "reporting.apikey",                                                                                     "WebAppUrl":  "https://test-whitelisting-9x-131490-rep.azurewebsites.net",                                                                                      "WebAppName":  "test-whitelisting-9x-131490-rep"
      },
       {                                                                                      "ConnectionStringName":  "xdb.marketingautomation.reporting.client",                                                                                      "WebAppUrl":  "https://test-whitelisting-9x-131490-ma-rep.azurewebsites.net",                                                                                      "WebAppName":  "test-whitelisting-9x-131490-ma-rep"
        },     
  {                                                                                   "ConnectionStringName":  "xdb.marketingautomation.operations.client",                                                                                      "WebAppUrl":  "https://test-whitelisting-9x-131490-ma-ops.azurewebsites.net",                                                                                      "WebAppName":  "test-whitelisting-9x-131490-ma-ops"
      }
  ],
     "WebAppName":  "test-whitelisting-9x-131490-cm",
   "OutboundIpAddresses":"52.230.1.186,52.230.15.158,52.230.7.174,52.230.11.232,52.230.7.87"
}

この例は、完全な出力ファイルの一部を示しています。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ホワイトリストの構成

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コードを生成します。

    "test9xbd-113010-rep":  {
     "connectionStrings":  
           [
             {
     "name":  "core",
    "initialcatalog":  "test9xbd-113010-core-db", 
    "datasource":  "test9xbd-113010-sql.database.windows.net,1433"
               },
    "name":  " master ",
    "initialcatalog":  "test9xbd-113010-master-db",
    "datasource":  "test9xbd-113010-sql.database.windows.net,1433"
               },
    "name":  "web",
    "initialcatalog":  " test9xbd-113010-web-db", 
    "datasource":  "test9xbd-113010-sql.database.windows.net,1433"
               },
    "name":  "reporting",
    "initialcatalog":  " test9xbd-113010-rep-db", 
    "datasource":  "test9xbd-113010-sql.database.windows.net,1433"
               },
             ]
        
    "OutboundIpAddresses":  "104.43.16.94,104.43.20.5,104.43.13.79,207.46.235.213"

    このコード サンプルは、レポートWebアプリが参照しているSQLサーバーのデータベースへの接続文字列を一覧表示します。レポートWebアプリの送信IPアドレスは、SQL Serverファイアウォールで指定する必要があります。これを行うには、次の手順を実行します。

この記事を改善するための提案がある場合は、 お知らせください!