Azure Backup のプライベート エンドポイントの作成と使用 (V1 エクスペリエンス)

この記事では、Azure Backup のプライベート エンドポイントを作成するプロセスと、プライベート エンドポイントによってリソースのセキュリティが維持しやすくなるシナリオに関する情報を提供します。

注意

Azure Backup では、プライベート エンドポイントを作成するための新しいエクスペリエンスが提供されるようになりました。 詳細については、こちらを参照してください

開始する前に

プライベート エンドポイントの作成に進む前に、前提条件サポートされるシナリオを確認してください。

これらの詳細は、コンテナーのプライベート エンドポイントを作成する前に満たす必要がある制限事項と条件を理解するのに役立ちます。

Backup 用のプライベート エンドポイントの作成の概要

このセクションでは、ご自身の仮想ネットワーク内に Azure Backup 用のプライベート エンドポイントを作成して使用するステップを説明します。

重要

このドキュメントに示されているのと同じ順序で手順に従うことを強くお勧めします。 そうしないと、コンテナーにプライベート エンドポイントを使用するための互換性がなくなり、新しいコンテナーを使ってプロセスをやり直すことが必要になる可能性があります。

Recovery Services コンテナーを作成する

Backup 用のプライベート エンドポイントは、項目が保護されていない (または、以前に保護または登録を試みた項目がない) Recovery Services コンテナーに対してのみ作成できます。 開始するには、新しいコンテナーを作成することをお勧めします。 新しいコンテナーの作成の詳細については、「Recovery Services コンテナーを作成して構成する」を参照してください。

Azure Resource Manager クライアントを使用してコンテナーを作成する方法については、こちらのセクションを参照してください。 これにより、マネージド ID が既に有効になっているコンテナーが作成されます。

コンテナーへのパブリック ネットワーク アクセスを拒否する

パブリック ネットワークからのアクセスを拒否するようにコンテナーを構成できます。

次の手順に従います。

  1. [値]>[ネットワーク] に移動します。

  2. [パブリック アクセス] タブで、[拒否] を選択して、パブリック ネットワークからアクセスできないようにします。

    [拒否] オプションを選択する方法を示すスクリーンショット。

    注意

  3. [適用] を選択して変更を保存します。

コンテナーのマネージド ID を有効にする

マネージド ID を使用すると、コンテナーでプライベート エンドポイントを作成して使用できます。 このセクションでは、ご自身のコンテナーのマネージド ID を有効にする方法について説明します。

  1. ご自身の Recovery Services コンテナー ->[ID] の順に移動します。

    ID の状態をオンに変更する

  2. [状態][On] に変更し、 [保存] を選択します。

  3. オブジェクト ID が生成されます。これがコンテナーのマネージド ID です。

    Note

    マネージド ID は、いったん有効にしたら (一時的にであっても) 無効にしないでください。 マネージド ID を無効にすると、動作に一貫性がなくなる可能性があります。

必要なプライベート エンドポイントを作成するためのアクセス許可をコンテナーに付与する

Azure Backup に必要なプライベート エンドポイントを作成するには、コンテナー (コンテナーのマネージド ID) に次のリソース グループへのアクセス許可が必要です。

  • 対象の VNet が含まれているリソース グループ
  • プライベート エンドポイントが作成されるリソース グループ
  • プライベート DNS ゾーンが含まれているリソース グループ (詳細については、こちらで説明しています)

これら 3 つのリソース グループの共同作成者ロールをコンテナー (マネージド ID) に付与することをお勧めします。 次の手順では、特定のリソース グループに対してこれを実行する方法について説明します (これは、3 つのリソース グループそれぞれに対して実行する必要があります)。

  1. リソース グループに移動し、左側のバーの [アクセス制御 (IAM)] に移動します。

  2. [アクセス制御] に移動したら、 [ロールの割り当てを追加する] に進みます。

    ロールの割り当てを追加する

  3. [ロールの割り当ての追加] ウィンドウで、 [ロール] として [共同作成者] を選択し、コンテナーの名前[プリンシパル] として使用します。 コンテナーを選択し、完了したら [保存] を選択します。

    ロールとプリンシパルの選択

より詳細なレベルでアクセス許可を管理するには、「ロールとアクセス許可を手動で作成する」を参照してください。

Azure Backup のプライベート エンドポイントを作成する

このセクションでは、コンテナーのプライベート エンドポイントを作成する方法について説明します。

  1. 上記で作成したコンテナーに移動し、左側のナビゲーション バーの [プライベート エンドポイント接続] に移動します。 上部にある [+ プライベート エンドポイント] を選択して、このコンテナーの新しいプライベート エンドポイントの作成を開始します。

    新しいプライベート エンドポイントを作成する

  2. [プライベート エンドポイントの作成] のプロセスに入ったら、プライベート エンドポイント接続を作成するための詳細を指定する必要があります。

    1. [基本] :プライベート エンドポイントの基本的な詳細を入力します。 リージョンは、バックアップするコンテナーおよびリソースと同じである必要があります。

      基本的な詳細を入力する

    2. リソース:このタブでは、接続を作成する対象の PaaS リソースを選択する必要があります。 目的のサブスクリプションのリソースの種類から、 [Microsoft.RecoveryServices/vaults] を選択します。 完了したら、 [リソース] として Recovery Services コンテナーの名前を選択し、AzureBackup[対象サブリソース] としてします。

      接続に使用するリソースを選択する

    3. 構成:[構成] では、プライベート エンドポイントを作成する仮想ネットワークとサブネットを指定します。 これは、VM が存在する Vnet です。

      プライベートに接続するには、目的の DNS レコードが必要です。 ネットワークの設定に応じて、以下のいずれかを選択することができます。

      • プライベート エンドポイントをプライベート DNS ゾーンを統合する: 統合する場合は、 [はい] を選択します。
      • カスタム DNS サーバーを使用する: ご自分の DNS サーバーを使用する場合は、 [いいえ] を選択します。

      これらの両方の DNS レコードの管理については、後で説明します

      仮想ネットワークとサブネットを指定する

    4. 必要に応じて、プライベート エンドポイントのタグを追加できます。

    5. 詳細の入力が完了したら、 [確認および作成] に進みます。 検証が完了したら、 [作成] を選択してプライベート エンドポイントを作成します。

プライベート エンドポイントを承認する

プライベート エンドポイントを作成しているユーザーが Recovery Services コンテナーの所有者でもある場合、上記で作成したプライベート エンドポイントは自動承認されます。 それ以外の場合、プライベート エンドポイントが使用できるようになるには、その前にコンテナーの所有者によって承認される必要があります。 このセクションでは、Azure portal を使用してプライベート エンドポイントを手動で承認する方法について説明します。

Azure Resource Manager クライアントを使用してプライベート エンドポイントを承認する方法については、「Azure Resource Manager クライアントを使用したプライベート エンドポイントの手動による承認」を参照してください。

  1. Recovery Services コンテナーで、左側のバーの [プライベート エンドポイント接続] に移動します。

  2. 承認するプライベート エンドポイントを選択します。

  3. 上部バーにある [承認] を選択します。 エンドポイント接続を拒否または削除する場合は、 [拒否] または [削除] を選択することもできます。

    プライベート エンドポイントを承認する

DNS レコードの管理

前述のように、プライベートに接続するには、プライベート DNS ゾーンまたはサーバーに目的の DNS レコードが必要です。 プライベート エンドポイントを Azure プライベート DNS ゾーンと直接統合することも、カスタム DNS サーバーを使用してネットワークの設定に基づいてこれを実現することもできます。 これは、次の 3 つのサービスすべてで行う必要があります: Backup、BLOB、キュー。

また、DNS ゾーンまたはサーバーが、プライベート エンドポイントを含むものとは異なるサブスクリプションに存在する場合は、「DNS サーバーまたは DNS ゾーンが別のサブスクリプションに存在する場合に DNS エントリを作成する」も参照してください。

プライベート エンドポイントを Azure プライベート DNS ゾーンと統合する場合

プライベート エンドポイントとプライベート DNS ゾーンを統合することを選択した場合は、必要な DNS レコードが Azure Backup によって追加されます。 使用されているプライベート DNS ゾーンは、プライベート エンドポイントの [DNS 構成] で表示できます。 これらの DNS ゾーンが存在しない場合は、プライベート エンドポイントの作成時に自動的に作成されます。

注意

コンテナーに割り当てられたマネージド ID には、Azure プライベート DNS ゾーンに DNS レコードを追加するためのアクセス許可が必要です。

ただし、次に示すように、仮想ネットワーク (バックアップ対象のリソースを含む) が 3 つすべてのプライベート DNS ゾーンと適切にリンクされていることを確認する必要があります。

Azure プライベート DNS ゾーンの DNS 構成

Note

プロキシ サーバーを使用している場合、プロキシ サーバーをバイパスするか、プロキシ サーバー経由でバックアップを実行できます。 プロキシ サーバーのバイパス方法については、次のセクションに進んでください。 プロキシ サーバーを使用してバックアップする方法については、Recovery Services コンテナーのプロキシ サーバー セットアップの詳細に関するページを参照してください。

上記のそれぞれのプライベート DNS ゾーン (Backup、BLOB、キュー) に対して、次の手順を行います。

  1. 左側のナビゲーション バーで、それぞれの [仮想ネットワーク リンク] オプションに移動します。

  2. 次に示すように、プライベート エンドポイントを作成した仮想ネットワークのエントリを確認できます。

    プライベート エンドポイントの仮想ネットワーク

  3. エントリが表示されない場合は、仮想ネットワークのリンクを、それを持っていないすべての DNS ゾーンに追加します。

    仮想ネットワークリンクの追加

カスタム DNS サーバーまたはホスト ファイルを使用する場合

  • カスタム DNS サーバーを使用している場合は、バックアップ サービス、BLOB、キューの FQDN に条件付きフォワーダーを使用して、DNS 要求を Azure DNS (168.63.129.16) にリダイレクトできます。 Azure DNS はこれを Azure プライベート DNS ゾーンにリダイレクトします。 このようなセットアップでは、こちらのセクションで説明されているように、Azure プライベート DNS ゾーンの仮想ネットワーク リンクが存在することを確認します。

    次の表に、Azure Backup に必要な Azure プライベート DNS ゾーンの一覧を示します。

    ゾーン サービス
    privatelink.<geo>.backup.windowsazure.com バックアップ
    privatelink.blob.core.windows.net BLOB
    privatelink.queue.core.windows.net キュー

    Note

    上のテキストで、<geo> はリージョン コードを示します (たとえば、米国東部と北ヨーロッパはそれぞれ eusne)。 リージョン コードについては、次の一覧を参照してください。

  • カスタム DNS サーバーまたはホスト ファイルを使用していて、Azure プライベート DNS ゾーンのセットアップがない場合は、プライベート エンドポイントに必要な DNS レコードを DNS サーバーまたはホスト ファイルに追加する必要があります。

    • バックアップ サービス用: 作成したプライベート エンドポイントに移動し、[DNS の構成] に移動します。 次に、バックアップ用 DNS ゾーンの "タイプ A" レコードとして表示される各 FQDN と IP のエントリを追加します。

      名前解決にホスト ファイルを使用している場合は、形式 <private ip><space><backup service privatelink FQDN> に従って、各 IP および FQDN のホスト ファイルで対応するエントリを作成します。

    • BLOB とキュー用: Azure Backup が、マネージド ID のアクセス許可を使用して、BLOB とキューのプライベート エンドポイントを作成します。 BLOB とキューのプライベート エンドポイントは標準の名前付けパターンに従って、<the name of the private endpoint>_ecs または <the name of the private endpoint>_prot で始まり、末尾にそれぞれ _blob_queue が付きます。

      上記のパターンに従って Azure Backup によって作成されたプライベート エンドポイントに移動し、[DNS の構成] に移動します。 次に、バックアップ用 DNS ゾーンの "タイプ A" レコードとして表示される各 FQDN と IP のエントリを追加します。

      名前解決にホスト ファイルを使用している場合は、形式 <private ip><space><blob/queue FQDN> に従って、各 IP および FQDN のホスト ファイルで対応するエントリを作成します。

注意

Azure Backup は、バックアップ データ用のコンテナーに新しいストレージ アカウントを割り当てる場合があるため、拡張機能またはエージェントはそれぞれのエンドポイントにアクセスする必要があります。 登録とバックアップ後に DNS レコードを追加する方法の詳細については、Backup 用のプライベート エンドポイントを使用する方法に関するガイダンスを参照してください。

Backup 用のプライベート エンドポイントを使用する

ご自身の VNet 内のコンテナー用に作成したプライベート エンドポイントが承認されたら、バックアップと復元を実行するためにそれらの使用を開始できます。

重要

続行する前に、ドキュメントに記載された前述のすべての手順を確実に完了してください。 まとめると、次のチェックリストの手順を完了している必要があります。

  1. (新しい) Recovery Services コンテナーを作成しました
  2. システム割り当てマネージド ID をコンテナーで使用できるようにしました
  3. コンテナーのマネージド ID に、関連するアクセス許可を割り当てました
  4. コンテナーのプライベート エンドポイントを作成しました
  5. プライベート エンドポイントを承認しました (自動承認されない場合)
  6. すべての DNS レコードが適切に追加されていることを確認します (以下のセクションで説明するカスタム サーバーの BLOB とキューのレコードは除く)

VM の接続を確認する

ロックダウンされたネットワーク内の VM で、次のことを確認します。

  1. VM が Microsoft Entra ID にアクセスできる必要があります。
  2. VM からバックアップ URL (xxxxxxxx.privatelink.<geo>.backup.windowsazure.com) で nslookup を実行して、接続を確保する。 これにより、仮想ネットワークに割り当てられたプライベート IP が返されます。

バックアップの構成

上記のチェックリストを確認し、アクセスが正常に完了したら、コンテナーへのワークロードのバックアップを引き続き構成できます。 カスタム DNS サーバーを使用している場合は、最初のバックアップを構成した後で使用可能な BLOB およびキューの DNS エントリを追加する必要があります。

最初の登録後の BLOB とキューの DNS レコード (カスタム DNS サーバーとホスト ファイルの場合のみ)

プライベート エンドポイントが有効になっているコンテナーに少なくとも 1 つのリソースのバックアップを構成した後、次に示すように、BLOB とキューに必要な DNS レコードを追加します。

  1. リソース グループに移動し、作成したプライベート エンドポイントを検索します。

  2. 自分が指定したプライベート エンドポイント名以外に、2 つのプライベート エンドポイントが作成されていることがわかります。 これらは、<the name of the private endpoint>_ecs で始まり、それぞれに _blob_queue のサフィックスが付けられています。

    プライベート エンドポイントのリソース

  3. これらのプライベート エンドポイントに移動します。 2 つのプライベート エンドポイントそれぞれの DNS 構成オプションで、FQDN および IP アドレスを持つレコードが表示されます。 前に説明したものに加えて、これらの両方をカスタム DNS サーバーに追加します。 ホスト ファイルを使用している場合は、次の形式に従って、各 IP および FQDN のホスト ファイルで対応するエントリを作成します。

    <private ip><space><blob service privatelink FQDN>
    <private ip><space><queue service privatelink FQDN>

    BLOB の DNS 構成

上記に加えて、最初のバックアップの後に必要なもう 1 つのエントリがあります。これについては後で説明します。

Azure VM でのワークロードのバックアップと復元 (SQL と SAP HANA)

プライベート エンドポイントが作成され、承認されたら、クライアント側でプライベート エンドポイントを使用するために必要な変更はありません (SQL 可用性グループを使用している場合については、このセクションの後半で説明します)。 セキュリティで保護されたネットワークからコンテナーへのすべての通信とデータ転送は、プライベート エンドポイントを介して実行されます。 ただし、サーバー (SQL または SAP HANA) がボールトに登録された後にそのプライベート エンドポイントを削除した場合は、コンテナーをボールトに再登録する必要があります。 それらに対する保護を停止する必要はありません。

最初のバックアップ後の BLOB の DNS レコード (カスタム DNS サーバーとホスト ファイルの場合のみ)

最初のバックアップを実行した後に (条件付きの転送を行わずに) カスタム DNS サーバーを使用していると、バックアップが失敗するおそれがあります。 その場合は、以下の手順を行ってください。

  1. リソース グループに移動し、作成したプライベート エンドポイントを検索します。

  2. 前に説明した 3 つのプライベート エンドポイントとは別に、<the name of the private endpoint>_prot から始まる名前で、_blob のサフィックスが付いている、4 番目のプライベート エンドポイントが表示されます。

    サフィックス

  3. この新しいプライベート エンドポイントに移動します。 DNS 構成オプションには、FQDN と IP アドレスを含むレコードが表示されます。 前に説明したものに加えて、これらをプライベート DNS サーバーに追加します。

    ホスト ファイルを使用している場合は、次の形式に従って、各 IP および FQDN のホスト ファイルで対応するエントリを作成します。

    <private ip><space><blob service privatelink FQDN>

Note

この時点で、VM から nslookup を実行して、コンテナーのバックアップとストレージの URL で実行したときにプライベート IP アドレスに解決できるようになります。

SQL 可用性グループを使用する場合

SQL 可用性グループ (AG) を使用する場合は、次に示すように、カスタム AG DNS で条件付き転送をプロビジョニングする必要があります。

  1. ドメイン コントローラーにサインインします。

  2. DNS アプリケーションの下で、必要に応じて、3 つすべての DNS ゾーン (Backup、BLOB、キュー) の条件付きフォワーダーをホスト IP 168.63.129.16 またはカスタム DNS サーバーの IP アドレスに追加します。 次のスクリーンショットは、Azure ホスト IP に転送する場合を示しています。 独自の DNS サーバーを使用している場合は、お使いの DNS サーバーの IP に置き換えます。

    DNS マネージャーの条件付きフォワーダー

    新しい条件付きフォワーダー

MARS エージェントと DPM サーバーを使用したバックアップと復元

MARS エージェントを使用してオンプレミスのリソースをバックアップする場合は、オンプレミスのネットワーク (バックアップ対象のリソースが含まれている) が Azure VNet (コンテナーのプライベート エンドポイントが含まれている) と確実にピアリングされているようにしてください。これにより、コンテナーを使用できるようになります。 その後、MARS エージェントをインストールして、ここで詳しく説明しているように、バックアップを構成できます。 ただし、バックアップ用のすべての通信が、ピアリングされたネットワークのみを介して行われるようにする必要があります。

MARS エージェントの登録後にそのボールト用のプライベート エンドポイントを削除した場合は、コンテナーをボールトに再登録する必要があります。 それらに対する保護を停止する必要はありません。

Note

  • プライベート エンドポイントは、"DPM サーバー 2022 (10.22.123.0)" 以降でのみサポートされます。
  • プライベート エンドポイントは、"DPM サーバー 2022 MABS V4 (14.0.30.0)" 以降でのみサポートされます。

プライベート エンドポイントを削除する

プライベート エンドポイントを削除する方法については、こちらのセクションを参照してください。

関連トピック

Azure Resource Manager クライアントを使用して Recovery Services コンテナーを作成する

Azure Resource Manager クライアントを使用して、Recovery Services コンテナーを作成し、そのマネージド ID を有効にすることができます (後で説明するように、マネージド ID の有効化は必ず行う必要があります)。 これを行うサンプルを次に示します。

armclient PUT /subscriptions/<subscriptionid>/resourceGroups/<rgname>/providers/Microsoft.RecoveryServices/Vaults/<vaultname>?api-version=2017-07-01-preview @C:\<filepath>\MSIVault.json

上記の JSON ファイルには、次の内容が含まれています。

要求 JSON:

{
  "location": "eastus2",
  "name": "<vaultname>",
  "etag": "W/\"datetime'2019-05-24T12%3A54%3A42.1757237Z'\"",
  "tags": {
    "PutKey": "PutValue"
  },
  "properties": {},
  "id": "/subscriptions/<subscriptionid>/resourceGroups/<rgname>/providers/Microsoft.RecoveryServices/Vaults/<vaultname>",
  "type": "Microsoft.RecoveryServices/Vaults",
  "sku": {
    "name": "RS0",
    "tier": "Standard"
  },
  "identity": {
    "type": "systemassigned"
  }
}

応答 JSON:

{
   "location": "eastus2",
   "name": "<vaultname>",
   "etag": "W/\"datetime'2020-02-25T05%3A26%3A58.5181122Z'\"",
   "tags": {
     "PutKey": "PutValue"
   },
   "identity": {
     "tenantId": "<tenantid>",
     "principalId": "<principalid>",
     "type": "SystemAssigned"
   },
   "properties": {
     "provisioningState": "Succeeded",
     "privateEndpointStateForBackup": "None",
     "privateEndpointStateForSiteRecovery": "None"
   },
   "id": "/subscriptions/<subscriptionid>/resourceGroups/<rgname>/providers/Microsoft.RecoveryServices/Vaults/<vaultname>",
   "type": "Microsoft.RecoveryServices/Vaults",
   "sku": {
     "name": "RS0",
     "tier": "Standard"
   }
 }

Note

この例で Azure Resource Manager クライアントを使用して作成されたコンテナーは、システム割り当てマネージド ID を使用して既に作成されています。

リソース グループに対するアクセス許可の管理

コンテナーのマネージド ID には、プライベート エンドポイントが作成されるリソース グループと仮想ネットワークにおいて、次のアクセス許可が必要です。

  • Microsoft.Network/privateEndpoints/* これは、リソース グループ内のプライベート エンドポイントで CRUD を実行するために必要です。 リソース グループに割り当てられている必要があります。
  • Microsoft.Network/virtualNetworks/subnets/join/action これは、プライベート IP がプライベート エンドポイントに接続される仮想ネットワークに対して必要です。
  • Microsoft.Network/networkInterfaces/read これは、プライベート エンドポイント用に作成されたネットワーク インターフェイスを取得するために、リソース グループに対して必要です。
  • プライベート DNS ゾーン共同作成者ロール: このロールは既に存在し、Microsoft.Network/privateDnsZones/A/* および Microsoft.Network/privateDnsZones/virtualNetworkLinks/read のアクセス許可を付与するために使用できます。

次のいずれかの方法を使用して、必要なアクセス許可を持つロールを作成できます。

ロールとアクセス許可を手動で作成する

次の JSON ファイルを作成し、セクションの最後にある PowerShell コマンドを使用してロールを作成します。

//PrivateEndpointContributorRoleDef.json

{
  "Name": "PrivateEndpointContributor",
  "Id": null,
  "IsCustom": true,
  "Description": "Allows management of Private Endpoint",
  "Actions": [
    "Microsoft.Network/privateEndpoints/*",
  ],
  "NotActions": [],
  "AssignableScopes": [
    "/subscriptions/00000000-0000-0000-0000-000000000000"
  ]
}

//NetworkInterfaceReaderRoleDef.json

{
  "Name": "NetworkInterfaceReader",
  "Id": null,
  "IsCustom": true,
  "Description": "Allows read on networkInterfaces",
  "Actions": [
    "Microsoft.Network/networkInterfaces/read"
  ],
  "NotActions": [],
  "AssignableScopes": [
    "/subscriptions/00000000-0000-0000-0000-000000000000"
  ]
}

//PrivateEndpointSubnetContributorRoleDef.json

{
  "Name": "PrivateEndpointSubnetContributor",
  "Id": null,
  "IsCustom": true,
  "Description": "Allows adding of Private Endpoint connection to Virtual Networks",
  "Actions": [
    "Microsoft.Network/virtualNetworks/subnets/join/action"
  ],
  "NotActions": [],
  "AssignableScopes": [
    "/subscriptions/00000000-0000-0000-0000-000000000000"
  ]
}
 New-AzRoleDefinition -InputFile "PrivateEndpointContributorRoleDef.json"
 New-AzRoleDefinition -InputFile "NetworkInterfaceReaderRoleDef.json"
 New-AzRoleDefinition -InputFile "PrivateEndpointSubnetContributorRoleDef.json"

スクリプトを使用する

  1. Azure portal で Cloud Shell を開始し、PowerShell ウィンドウで [ファイルのアップロード] を選択します。

    PowerShell ウィンドウで [ファイルのアップロード] を選択する

  2. 次のスクリプトをアップロードします。VaultMsiPrereqScript

  3. ホーム フォルダー (例: cd /home/user) に移動します。

  4. 次のスクリプトを実行します。

    ./VaultMsiPrereqScript.ps1 -subscription <subscription-Id> -vaultPEResourceGroup <vaultPERG> -vaultPESubnetResourceGroup <subnetRG> -vaultMsiName <msiName>
    

    パラメーターは次のとおりです。

    • subscription: コンテナーのプライベート エンドポイントが作成されるリソース グループと、コンテナーのプライベート エンドポイントが接続されるサブネットを持つ SubscriptionId

    • vaultPEResourceGroup: コンテナーのプライベート エンドポイントが作成されるリソース グループ

    • vaultPESubnetResourceGroup: プライベート エンドポイントの参加先となるサブネットのリソース グループ

    • vaultMsiName: コンテナーの MSI の名前 (VaultName と同じ)

  5. 認証を完了すると、スクリプトによって上記で指定されたサブスクリプションのコンテキストが取得されます。 テナントに存在しない場合は適切なロールが作成され、コンテナーの MSI にロールが割り当てられます。

Azure PowerShell を使用してプライベート エンドポイントを作成する

プライベート エンドポイントの自動承認

$vault = Get-AzRecoveryServicesVault `
        -ResourceGroupName $vaultResourceGroupName `
        -Name $vaultName

$privateEndpointConnection = New-AzPrivateLinkServiceConnection `
        -Name $privateEndpointConnectionName `
        -PrivateLinkServiceId $vault.ID `
        -GroupId "AzureBackup"  

$vnet = Get-AzVirtualNetwork -Name $vnetName -ResourceGroupName $VMResourceGroupName
$subnet = $vnet | Select -ExpandProperty subnets | Where-Object {$_.Name -eq '<subnetName>'}


$privateEndpoint = New-AzPrivateEndpoint `
        -ResourceGroupName $vmResourceGroupName `
        -Name $privateEndpointName `
        -Location $location `
        -Subnet $subnet `
        -PrivateLinkServiceConnection $privateEndpointConnection `
        -Force

Azure Resource Manager クライアントを使用したプライベート エンドポイントの手動による承認

  1. GetVault を使用して、ご自身のプライベート エンドポイントのプライベート エンドポイント接続 ID を取得します。

    armclient GET /subscriptions/<subscriptionid>/resourceGroups/<rgname>/providers/Microsoft.RecoveryServices/vaults/<vaultname>?api-version=2017-07-01-preview
    

    これにより、プライベート エンドポイント接続 ID が返されます。 接続 ID の最初の部分を次のように使用して、接続の名前を取得できます。

    privateendpointconnectionid = {peName}.{vaultId}.backup.{guid}

  2. 次のサンプルに示すように、プライベート エンドポイント接続 ID (および必要に応じて プライベート エンドポイント名) を応答から取得し、次の JSON および Azure Resource Manager URI 内でそれを置き換えて、状態を "Approved、Rejected、Disconnected" のいずれかに変更します。

    armclient PUT /subscriptions/<subscriptionid>/resourceGroups/<rgname>/providers/Microsoft.RecoveryServices/Vaults/<vaultname>/privateEndpointConnections/<privateendpointconnectionid>?api-version=2020-02-02-preview @C:\<filepath>\BackupAdminApproval.json
    

    JSON:

    {
    "id": "/subscriptions/<subscriptionid>/resourceGroups/<rgname>/providers/Microsoft.RecoveryServices/Vaults/<vaultname>/privateEndpointConnections/<privateendpointconnectionid>",
    "properties": {
        "privateEndpoint": {
        "id": "/subscriptions/<subscriptionid>/resourceGroups/<pergname>/providers/Microsoft.Network/privateEndpoints/pename"
        },
        "privateLinkServiceConnectionState": {
        "status": "Disconnected",  //choose state from Approved/Rejected/Disconnected
        "description": "Disconnected by <userid>"
        }
    }
    }
    

プライベート エンドポイントを使用して Recovery Services コンテナー用のプロキシ サーバーを設定する

Azure VM またはオンプレミスのマシン用のプロキシ サーバーを構成するには、次の手順を実行します。

  1. プロキシ サーバーからアクセスする必要がある次のドメインを追加します。

    サービス ドメイン名 Port
    Azure Backup *.backup.windowsazure.com 443
    Azure Storage *.blob.core.windows.net

    *.queue.core.windows.net

    *.blob.storage.azure.net
    443
    Microsoft Entra ID

    Microsoft 365 Common および Office Online」のセクション 56 および 59 に記載されている更新されたドメイン URL。
    *.msftidentity.com、*.msidentity.com、account.activedirectory.windowsazure.com、accounts.accesscontrol.windows.net、adminwebservice.microsoftonline.com、api.passwordreset.microsoftonline.com、autologon.microsoftazuread-sso.com、becws.microsoftonline.com、clientconfig.microsoftonline-p.net、companymanager.microsoftonline.com、device.login.microsoftonline.com、graph.microsoft.com、graph.windows.net、login.microsoft.com、login.microsoftonline.com、login.microsoftonline-p.com、login.windows.net、logincert.microsoftonline.com、loginex.microsoftonline.com、login-us.microsoftonline.com、nexus.microsoftonline-p.com、passwordreset.microsoftonline.com、provisioningapi.microsoftonline.com

    20.190.128.0/18、40.126.0.0/18、2603:1006:2000::/48、2603:1007:200::/48、2603:1016:1400::/48、2603:1017::/48、2603:1026:3000::/48、2603:1027:1::/48、2603:1036:3000::/48、2603:1037:1::/48、2603:1046:2000::/48、2603:1047:1::/48、2603:1056:2000::/48、2603:1057:2::/48

    *.hip.live.com、*.microsoftonline.com、*.microsoftonline-p.com、*.msauth.net、*.msauthimages.net、*.msecnd.net、*.msftauth.net、*.msftauthimages.net、*.phonefactor.net、enterpriseregistration.windows.net、management.azure.com、policykeyservice.dc.ad.msft.net
    該当する場合。
  2. プロキシ サーバー内でこれらのドメインへのアクセスを許可し、プロキシ サーバーが作成された VNET にプライベート DNS ゾーン (*.privatelink.<geo>.backup.windowsazure.com*.privatelink.blob.core.windows.net*.privatelink.queue.core.windows.net) をリンクするか、それぞれの DNS エントリと共にカスタム DNS サーバーを使用します。

    プロキシ サーバーが実行されている VNET と、プライベート エンドポイント NIC が作成された VNET をピアリングする必要があります。これにより、プロキシ サーバーがプライベート IP に要求をリダイレクトできるようになります。

    Note

    上のテキストで、<geo> はリージョン コードを示します (たとえば、米国東部と北ヨーロッパはそれぞれ eusne)。 リージョン コードについては、次の一覧を参照してください。

次の図は、必須の DNS エントリを含むプライベート DNS ゾーンに VNet がリンクされているプロキシ サーバーがあるセットアップ (Azure プライベート DNS ゾーンの使用) を示しています。 プロキシ サーバーには独自のカスタム DNS サーバーを含めることもでき、上記のドメインは条件付きで 168.63.129.16 に転送できます。 DNS 解決にカスタム DNS サーバー/ホスト ファイルを使用している場合、DNS エントリの管理保護の構成に関するセクションを参照してください。

プロキシ サーバーがあるセットアップを示す図。

DNS サーバーまたは DNS ゾーンが別のサブスクリプションに存在する場合に DNS エントリを作成する

このセクションでは、サブスクリプションに存在する DNS ゾーン、またはハブ アンド スポーク トポロジなど、Recovery Services コンテナーのプライベート エンドポイントを含むものとは異なるリソース グループを使用するケースについて説明します。 プライベート エンドポイント (および DNS エントリ) の作成に使用されるマネージド ID には、プライベート エンドポイントが作成されるリソース グループに対してのみアクセス許可があるため、必須の DNS エントリも追加で必要になります。 DNS エントリを作成するには、次の PowerShell スクリプトを使用します。

Note

必要な結果を得るには、以下で説明するプロセス全体を参照してください。 プロセスは、2 回繰り返す必要があります (初回検出中に 1 回 (通信ストレージ アカウントに必要な DNS エントリを作成するため) と、初回バックアップ中に 1 回 (バックエンド ストレージ アカウントに必要な DNS エントリを作成するため))。

手順 1: 必須の DNS エントリを取得する

PrivateIP.ps1 スクリプトを使用して、作成する必要があるすべての DNS エントリを一覧表示します。

Note

構文内の subscription は、コンテナーのプライベート エンドポイントが作成されるサブスクリプションを示しています。

スクリプトを使用するための構文

./PrivateIP.ps1 -Subscription "<VaultPrivateEndpointSubscriptionId>" -VaultPrivateEndpointName "<vaultPrivateEndpointName>" -VaultPrivateEndpointRGName <vaultPrivateEndpointRGName> -DNSRecordListFile dnsentries.txt

サンプル出力

ResourceName                                                                 DNS                                                                       PrivateIP
<vaultId>-ab-pod01-fc1         privatelink.eus.backup.windowsazure.com         10.12.0.15
<vaultId>-ab-pod01-fab1        privatelink.eus.backup.windowsazure.com         10.12.0.16
<vaultId>-ab-pod01-prot1       privatelink.eus.backup.windowsazure.com         10.12.0.17
<vaultId>-ab-pod01-rec2        privatelink.eus.backup.windowsazure.com         10.12.0.18
<vaultId>-ab-pod01-ecs1        privatelink.eus.backup.windowsazure.com         10.12.0.19
<vaultId>-ab-pod01-id1         privatelink.eus.backup.windowsazure.com         10.12.0.20
<vaultId>-ab-pod01-tel1        privatelink.eus.backup.windowsazure.com         10.12.0.21
<vaultId>-ab-pod01-wbcm1       privatelink.eus.backup.windowsazure.com         10.12.0.22
abcdeypod01ecs114        privatelink.blob.core.windows.net       10.12.0.23
abcdeypod01ecs114        privatelink.queue.core.windows.net      10.12.0.24
abcdeypod01prot120       privatelink.blob.core.windows.net       10.12.0.28
abcdeypod01prot121       privatelink.blob.core.windows.net       10.12.0.32
abcdepod01prot110       privatelink.blob.core.windows.net       10.12.0.36
abcdeypod01prot121       privatelink.blob.core.windows.net       10.12.0.30
abcdeypod01prot122       privatelink.blob.core.windows.net       10.12.0.34
abcdepod01prot120       privatelink.blob.core.windows.net       10.12.0.26

手順 2: DNS エントリを作成する

上記に対応する DNS エントリを作成します。 使用している DNS の種類に基づいて、DNS エントリを作成するための代替手段が 2 つあります。

ケース 1: カスタム DNS サーバーを使用している場合は、上記のスクリプトからレコードごとにエントリを手動で作成し、FQDN (ResourceName.DNS) が VNET 内のプライベート IP に解決されることを確認する必要があります。

ケース 2: Azure プライベート DNS ゾーンを使用している場合は、CreateDNSEntries.ps1 スクリプトを使用してプライベート DNS ゾーンに DNS エントリを自動的に作成できます。 次の構文では、subscription にプライベート DNS ゾーンが存在します。

スクリプトを使用するための構文

/CreateDNSEntries.ps1 -Subscription <PrivateDNSZoneSubId> -DNSResourceGroup <PrivateDNSZoneRG> -DNSRecordListFile dnsentries.txt

プロセス全体の概要

この回避策を使用して Recovery Services コンテナーのプライベート エンドポイントを正しく設定するには、次の作業が必要です。

  1. コンテナーのプライベート エンドポイントを作成します (この記事で既に説明したとおり)。
  2. 検出をトリガーします。 通信ストレージ アカウントの DNS エントリが存在しないため、SQL/HANA の検出は UserErrorVMInternetConnectivityIssue で失敗します。
  3. スクリプトを実行して DNS エントリを取得し、このセクションで前述した通信ストレージ アカウントの対応する DNS エントリを作成します。
  4. 検出を再度トリガーします。 今回は、検出に成功します。
  5. バックアップをトリガーします。 このセクションで前述したように、バックエンド ストレージ アカウントの DNS エントリが存在しないため、SQL/HANA と MARS のバックアップが失敗する可能性があります。
  6. スクリプトを実行して、バックエンド ストレージ アカウントの DNS エントリを作成します。
  7. バックアップを再度トリガーします。 今回は、バックアップが成功します。

よく寄せられる質問

既存の Recovery Services コンテナーのプライベート エンドポイントを作成できますか?

いいえ。プライベート エンドポイントは、新しい Recovery Services コンテナーに対してのみ作成できます。 そのため、コンテナーには、保護されている項目があってはなりません。 実際に、プライベート エンドポイント作成前にコンテナーに項目を保護することはできません。

コンテナーに項目を保護しようとしましたが失敗し、コンテナーには保護された項目がまだ含まれていません。 このコンテナーのプライベート エンドポイントを作成できますか?

いいえ。コンテナーに項目を保護しようとしたことが過去にあってはなりません。

バックアップと復元のためにプライベート エンドポイントを使用しているコンテナーがあります。 保護されているバックアップ項目がある場合でも、このコンテナーのプライベート エンドポイントを後で追加または削除できますか?

はい。 コンテナーのプライベート エンドポイントと、そのコンテナーに保護されているバックアップ項目を既に作成済みの場合、必要に応じて、後でプライベート エンドポイントを追加または削除できます。

Azure Backup のプライベート エンドポイントを Azure Site Recovery にも使用することはできますか?

いいえ。Backup のプライベート エンドポイントは、Azure Backup にのみ使用できます。 Azure Site Recovery 用の新しいプライベート エンドポイントを作成する必要があります (そのサービスでサポートされている場合)。

この記事にある手順の 1 つを実行しないまま続行し、データ ソースを保護しました。 それでもプライベート エンドポイントを使用できますか?

記事の手順に従わずに項目の保護まで続行した場合、コンテナーでプライベート エンドポイントを使用できなくなる可能性があります。 このため、項目の保護に進む前に、このチェックリストを参照することをお勧めします。

Azure プライベート DNS ゾーンや統合されたプライベート DNS ゾーンを使用するのではなく、独自の DNS サーバーを使用できますか?

はい。独自の DNS サーバーを使用できます。 ただし、このセクションで提示されているように、必要なすべての DNS レコードを確実に追加してください。

この記事の手順に従った後に、使用しているサーバーで追加の手順を実行する必要がありますか?

この記事で詳しく説明されているプロセスに従った後、バックアップと復元にプライベート エンドポイントを使用するために追加の作業を行う必要はありません。

次のステップ