Azure File Sync のパブリックおよびプライベート ネットワーク エンドポイントを構成する

Azure Files および Azure File Sync では、Azure ファイル共有にアクセスするための次の主な 2 種類のエンドポイントが提供されます。

  • パブリック エンドポイント。パブリック IP アドレスを持ち、世界中のどこからでもアクセスできます。
  • プライベート エンドポイント。仮想ネットワーク内に存在し、その仮想ネットワークのアドレス空間内からのプライベート IP アドレスを持ちます。

Azure Files と Azure File Sync はどちらも、Azure 管理オブジェクト (ストレージ アカウントとストレージ同期サービス) によって、パブリックとプライベートの両方のエンドポイントを制御します。 ストレージ アカウントは、複数のファイル共有だけでなく、BLOB やキューなどのその他のストレージ リソースをデプロイできるストレージの共有プールを表す管理構造です。 ストレージ同期サービスは、Azure File Sync との信頼関係が確立された Windows ファイル サーバーである登録済みサーバーと、同期関係のトポロジを定義する同期グループを表す管理構造です。

この記事では、Azure Files と Azure File Sync の両方のネットワーク エンドポイントを構成する方法について説明します。Azure File Sync を使用してオンプレミスにキャッシュするのではなく、Azure ファイル共有に直接アクセスするためにネットワーク エンドポイントを構成する方法の詳細については、「Azure Files ネットワーク エンドポイントの構成」を参照してください。

この攻略ガイドを読む前に、「Azure File Sync のネットワークに関する考慮事項」をお読みになることをお勧めします。

前提条件

この記事では、以下のことを前提としています。

  • Azure サブスクリプションがある。 サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。
  • オンプレミスから接続する Azure ファイル共有をストレージ アカウント内に既に作成している。 Azure ファイル共有を作成する方法については、「Azure ファイル共有を作成する」をご覧ください。
  • 次のエンドポイントへのドメイン トラフィックを許可している。Azure サービス エンドポイントに関するページを参照してください。

追加として:

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

Azure リソースのプライベート エンドポイントを作成すると、次のリソースがデプロイされます。

  • プライベート エンドポイント: ストレージ アカウントまたはストレージ同期サービスのプライベート エンドポイントを表す Azure リソース。 これは、ご使用の Azure リソースとネットワーク インターフェイスを接続するリソースと考えます。
  • ネットワーク インターフェイス (NIC) : 指定された仮想ネットワークおよびサブネット内のプライベート IP アドレスを保持するネットワーク インターフェイス。 これは、仮想マシン (VM) をデプロイするとデプロイされるリソースとまったく同じものですが、VM に割り当てられるのではなく、プライベート エンドポイントによって所有されます。
  • プライベート DNS ゾーン: 以前にこの仮想ネットワークに対してプライベート エンドポイントをデプロイしたことがない場合は、新しいプライベート DNS ゾーンが仮想ネットワークにデプロイされます。 この DNS ゾーン内には、Azure リソースの DNS A レコードも作成されます。 この仮想ネットワーク内にプライベート エンドポイントを既にデプロイしてある場合は、Azure リソースの新しい A レコードが既存の DNS ゾーンに追加されます。 DNS ゾーンのデプロイは任意ですが、必要な DNS 管理を簡素化するために強くお勧めします。

Note

この記事では、Azure パブリック リージョンを対象に DNS サフィックス (ストレージ アカウントには core.windows.net、ストレージ同期サービスには afs.azure.net) を使用しています。 これは、Azure US Government クラウドなどの Azure ソブリン クラウドにも適用されます。サフィックスは、環境に適したものに置き換えてください。

ストレージ アカウントのプライベート エンドポイントを作成する

プライベート エンドポイントを作成するストレージ アカウントに移動します。 ストレージ アカウントの目次で [ネットワーキング][プライベート エンドポイント接続][+ プライベート エンドポイント] の順に選択して、新しいプライベート エンドポイントを作成します。

ストレージ アカウントの目次にある [プライベート エンドポイント接続] 項目のスクリーンショット。

表示されるウィザードには、設定するページが複数あります。

[基本] ブレードで、プライベート エンドポイントの目的のサブスクリプション、リソース グループ、名前、ネットワーク インターフェイス名、およびリージョンを選択します。 これらには任意の内容を指定でき、ストレージ アカウントと一致している必要はありませんが、プライベート エンドポイントは、そのプライベート エンドポイントを作成しようとしている仮想ネットワークと同じリージョン内に作成する必要があります。 その後、[次へ: リソース] を選択します。

新しいプライベート エンドポイントのプロジェクトとインスタンスの詳細を提供する方法を示すスクリーンショット。

[リソース] ブレードで、ターゲット サブリソースのファイルを選択します。 [次へ: Virtual Network] を選択します。

新しいプライベート エンドポイントを使用して接続するリソースを選択する方法を示すスクリーンショット。

[Virtual Network] ブレードでは、プライベート エンドポイントを追加する特定の仮想ネットワークとサブネットを選択できます。 新しいプライベート エンドポイントの動的または静的 IP アドレスの割り当てを選択します。 静的を選択した場合は、名前とプライベート IP アドレスも指定する必要があります。 必要に応じて、アプリケーション セキュリティ グループを指定することもできます。 完了したら、[次: DNS] を選びます。

新しいプライベート エンドポイントの仮想ネットワーク、サブネット、および IP アドレスの詳細を提供する方法を示すスクリーンショット。

DNS ブレードには、プライベート エンドポイントとプライベート DNS ゾーンを統合するための情報が含まれています。 サブスクリプションとリソース グループが正しいことを確認し、[次へ: タグ] を選択します。

プライベート エンドポイントをプライベート DNS ゾーンと統合する方法を示すスクリーンショット。

必要に応じて、タグを適用してリソースを分類できます。たとえば、[名前] の [環境] と [値] の [テスト] をすべてのテスト リソースに適用します。 必要に応じて名前と値のペアを入力し、[次へ: レビュー + 作成] を選択します。

簡単に分類できるように、名前と値のペアでプライベート エンドポイントにオプションでタグを付ける方法を示すスクリーンショット。

[確認および作成] をクリックしてプライベート エンドポイントを作成します。

ご使用の仮想ネットワーク内に VM がある場合、または「Azure Files の DNS 転送の構成」で説明されているような DNS 転送を構成してある場合は、PowerShell、コマンド ライン、またはターミナル (Windows、Linux、または macOS で動作) から次のコマンドを実行して、ご使用のプライベート エンドポイントが正しく設定されていることをテストできます。 <storage-account-name> を適切なストレージ アカウント名に置き換える必要があります。

nslookup <storage-account-name>.file.core.windows.net

すべてが正常に動作する場合は、次のような出力が表示されます。192.168.0.5 は、仮想ネットワーク内のプライベート エンドポイントのプライベート IP アドレスです (Windows の場合に表示される出力)。

Server:  UnKnown
Address:  10.2.4.4

Non-authoritative answer:
Name:    storageaccount.privatelink.file.core.windows.net
Address:  192.168.0.5
Aliases:  storageaccount.file.core.windows.net

ストレージ同期サービス プライベート エンドポイントを作成する

Azure portal の上部にある検索バーに「プライベート リンク」と入力して、プライベート リンク センターに移動します。 プライベート リンク センターの目次で [プライベート エンドポイント] を選択した後、 [+ 追加] を選択して、新しいプライベート エンドポイントを作成します。

プライベート リンク センターのスクリーンショット

表示されるウィザードには、設定するページが複数あります。

[基本] ブレードで、プライベート エンドポイントの目的のリソース グループ、名前、リージョンを選択します。 これらには任意の内容を指定でき、ストレージ同期サービスと一致している必要はまったくありませんが、プライベート エンドポイントは、そのプライベート エンドポイントを作成しようとしている仮想ネットワークと同じリージョン内に作成する必要があります。

[プライベート エンドポイントの作成] セクションの [基本] セクションのスクリーンショット

[リソース] ブレードで、 [マイ ディレクトリ内の Azure リソースに接続します] のラジオ ボタンを選択します。 [リソースの種類] で、リソースの種類として [Microsoft.StorageSync/storageSyncServices] を選択します。

[構成] ブレードでは、プライベート エンドポイントを追加する特定の仮想ネットワークとサブネットを選択できます。 上のストレージ アカウントに使用したものと同じ仮想ネットワークを選択します。 [構成] ブレードには、プライベート DNS ゾーンを作成または更新するための情報も含まれています。

[確認と作成] を選び、プライベート エンドポイントを作成します。

次の PowerShell コマンドを実行して、ご使用のプライベート エンドポイントが正しく設定されていることをテストできます。

$privateEndpointResourceGroupName = "<your-private-endpoint-resource-group>"
$privateEndpointName = "<your-private-endpoint-name>"

Get-AzPrivateEndpoint `
        -ResourceGroupName $privateEndpointResourceGroupName `
        -Name $privateEndpointName `
        -ErrorAction Stop | `
    Select-Object -ExpandProperty NetworkInterfaces | `
    Select-Object -ExpandProperty Id | `
    ForEach-Object { Get-AzNetworkInterface -ResourceId $_ } | `
    Select-Object -ExpandProperty IpConfigurations | `
    Select-Object -ExpandProperty PrivateLinkConnectionProperties | `
    Select-Object -ExpandProperty Fqdns | `
    ForEach-Object { Resolve-DnsName -Name $_ } | `
    Format-List

すべてが正常に動作する場合は、次のような出力が表示されます。192.168.1.4192.168.1.5192.168.1.6192.168.1.7 は、プライベート エンドポイントに割り当てられているプライベート IP アドレスです。

Name     : mysssmanagement.westus2.afs.azure.net
Type     : CNAME
TTL      : 60
Section  : Answer
NameHost : mysssmanagement.westus2.privatelink.afs.azure.net


Name       : mysssmanagement.westus2.privatelink.afs.azure.net
QueryType  : A
TTL        : 60
Section    : Answer
IP4Address : 192.168.1.4

Name     : myssssyncp.westus2.afs.azure.net
Type     : CNAME
TTL      : 60
Section  : Answer
NameHost : myssssyncp.westus2.privatelink.afs.azure.net


Name       : myssssyncp.westus2.privatelink.afs.azure.net
QueryType  : A
TTL        : 60
Section    : Answer
IP4Address : 192.168.1.5

Name     : myssssyncs.westus2.afs.azure.net
Type     : CNAME
TTL      : 60
Section  : Answer
NameHost : myssssyncs.westus2.privatelink.afs.azure.net


Name       : myssssyncs.westus2.privatelink.afs.azure.net
QueryType  : A
TTL        : 60
Section    : Answer
IP4Address : 192.168.1.6

Name     : mysssmonitoring.westus2.afs.azure.net
Type     : CNAME
TTL      : 60
Section  : Answer
NameHost : mysssmonitoring.westus2.privatelink.afs.azure.net


Name       : mysssmonitoring.westus2.privatelink.afs.azure.net
QueryType  : A
TTL        : 60
Section    : Answer
IP4Address : 192.168.1.7

パブリック エンドポイントへのアクセスを制限する

ストレージ アカウントとストレージ同期サービスの両方のパブリック エンドポイントへのアクセスを制限できます。 パブリック エンドポイントへのアクセスを制限して、承認済みの場所からのネットワーク パケットのみが受け入れられるようにすることで、セキュリティが強化されます。

ストレージ アカウントのパブリック エンドポイントへのアクセスを制限する

パブリック エンドポイントへのアクセス制限は、ストレージ アカウントのファイアウォール設定を使用して行います。 一般に、ストレージ アカウントのほとんどのファイアウォール ポリシーではネットワーク アクセスが 1 つ以上の仮想ネットワークに制限されます。 ストレージ アカウントへのアクセスを仮想ネットワークに制限するには、次の 2 つの方法があります。

  • ストレージ アカウントに 1 つ以上のプライベート エンドポイントを作成し、パブリック エンドポイントへのアクセスを無効にします。 これで、そのストレージ アカウント内の Azure ファイル共有にアクセスできるのは、特定の仮想ネットワーク内から送信されたトラフィックだけになります。
  • パブリック エンドポイントを 1 つ以上の仮想ネットワークに制限します。 これは、"サービス エンドポイント" と呼ばれる仮想ネットワークの機能を使用して実現できます。 ストレージ アカウントへのトラフィックをサービス エンドポイントを使用して制限しても、そのストレージ アカウントには引き続きパブリック IP アドレス経由でアクセスします。

Note

ご使用のストレージ アカウントで [信頼されたサービスの一覧にある Azure サービスがこのストレージ アカウントにアクセスすることを許可します] を選択し、Azure File Sync などの信頼できるファースト パーティの Microsoft サービスに、ストレージ アカウントへのアクセスを許可します。 詳細については、「信頼された Azure サービスにアクセスを許可する」を参照してください。

信頼された Azure サービスへのアクセスを許可し、ストレージ アカウントのパブリック エンドポイントへのアクセスを無効にする

パブリック エンドポイントへのアクセスが無効にされている場合でも、そのプライベート エンドポイントを介してストレージ アカウントにアクセスできます。 それ以外の場合、ストレージ アカウントのパブリック エンドポイントに対する有効な要求は拒否されます。

パブリック エンドポイントへのすべてのアクセスを制限するストレージ アカウントに移動します。 ストレージ アカウントの目次で、 [ネットワーク] を選択します。

ページの上部で、[選択した仮想ネットワークと IP アドレスから有効] オプション ボタンを選びます。 これにより、パブリック エンドポイントの制限を制御するためのいくつかの設定が表示されるようになります。 [信頼されたサービスの一覧にある Azure サービスがこのストレージ アカウントにアクセスすることを許可します] を選び、Azure File Sync などの信頼できるファースト パーティの Microsoft サービスに、ストレージ アカウントへのアクセスを許可します。

ストレージ アカウントのパブリック エンドポイントへのアクセスを無効にするために必要な設定が表示された [ネットワーク] ブレードのスクリーンショット。

信頼された Azure サービスへのアクセスを許可し、ストレージ アカウントのパブリック エンドポイントへのアクセスを特定の仮想ネットワークに制限する

ストレージ アカウントを特定の仮想ネットワークに制限すると、指定した仮想ネットワーク内からパブリック エンドポイントへの要求が許可されます。 これは、"サービス エンドポイント" と呼ばれる仮想ネットワークの機能を使用して実現できます。 これは、プライベート エンドポイントの有無に関係なく使用できます。

パブリック エンドポイントを特定の仮想ネットワークに制限するストレージ アカウントに移動します。 ストレージ アカウントの目次で、 [ネットワーク] を選択します。

ページの上部で、[選択した仮想ネットワークと IP アドレスから有効] オプション ボタンを選びます。 これにより、パブリック エンドポイントの制限を制御するためのいくつかの設定が表示されるようになります。 [+ 既存の仮想ネットワークを追加] を選び、パブリック エンドポイント経由でのストレージ アカウントへのアクセスを許可する特定の仮想ネットワークを選びます。 仮想ネットワークとその仮想ネットワークのサブネットを選び、[有効化] を選びます。

[信頼されたサービスの一覧にある Azure サービスがこのストレージ アカウントにアクセスすることを許可します] を選び、Azure File Sync などの信頼できるファースト パーティの Microsoft サービスに、ストレージ アカウントへのアクセスを許可します。

特定の仮想ネットワークがパブリック エンドポイント経由でストレージ アカウントへのアクセスを許可されている [ネットワーク] ブレードのスクリーンショット。

ストレージ同期サービスのパブリック エンドポイントへのアクセスを無効にする

Azure File Sync を使用すると、プライベート エンドポイントによるアクセスを特定の仮想ネットワークのみに制限できます。Azure File Sync では、サービス エンドポイントによって、パブリック エンドポイントへのアクセスを特定の仮想ネットワークに制限することはサポートされていません。 つまり、ストレージ同期サービスのパブリック エンドポイントには有効無効の 2 つの状態があるということです。

重要

パブリック エンドポイントへのアクセスを無効にする前に、プライベート エンドポイントを作成する必要があります。 パブリック エンドポイントが無効になっていて、プライベート エンドポイントが構成されていない場合は、同期が機能しません。

ストレージ同期サービスのパブリック エンドポイントへのアクセスを無効にするには、次の手順に従います。

  1. Azure portal にサインインします。
  2. ストレージ同期サービスに移動し、左側のナビゲーションから [設定]>[ネットワーク] を選択します。
  3. [アクセスを許可する] で、[プライベート エンドポイントのみ] を選択します。
  4. [プライベート エンドポイントの接続] の一覧からプライベート エンドポイントを選択します。

Azure Policy

Azure Policy を使用すると、組織の標準を適用し、標準に対するコンプライアンスを大規模に評価する場合に役立ちます。 Azure Files と Azure File Sync により、デプロイの監視と自動化に役立ついくつかの便利な監査および修復ネットワーク ポリシーが公開されています。

ポリシーによって環境が監査され、ストレージ アカウントまたはストレージ同期サービスが定義された動作から逸脱している場合は警告されます。 たとえば、パブリック エンドポイントを無効にするようにポリシーが設定されているときに、パブリック エンドポイントが有効な場合です。 変更またはデプロイ ポリシーはさらに一歩進み、ポリシーに合わせてリソース (ストレージ同期サービスなど) を事前に変更したり、リソース (プライベート エンドポイントなど) をデプロイしたりすることができます。

次の事前定義されたポリシーは、Azure Files と Azure File Sync で使用できます。

アクション サービス 条件 ポリシー名
Audit Azure Files ストレージ アカウントのパブリック エンドポイントが有効になっています。 詳細については、「信頼された Azure サービスへのアクセスを許可し、ストレージ アカウントのパブリック エンドポイントへのアクセスを無効にする」を参照してください。 ストレージ アカウントではネットワーク アクセスを制限する必要がある
Audit Azure File Sync ストレージ同期サービスのパブリック エンドポイントが有効になっています。 詳細については、「ストレージ同期サービスのパブリック エンドポイントへのアクセスを無効にする」を参照してください。 Azure File Sync のパブリック ネットワーク アクセスを無効にする必要がある
Audit Azure Files ストレージ アカウントには、少なくとも 1 つのプライベート エンドポイントが必要です。 詳細については、「ストレージ アカウントのプライベート エンドポイントを作成する」を参照してください。 ストレージ アカウントではプライベート リンク接続を使用する必要がある
Audit Azure File Sync ストレージ同期サービスには、少なくとも 1 つのプライベート エンドポイントが必要です。 詳細については、「ストレージ同期のプライベート エンドポイントを作成する」を参照してください。 Azure File Sync ではプライベート リンクを使用する必要がある
変更 Azure File Sync ストレージ同期サービスのパブリック エンドポイントを無効にします。 変更 - パブリック ネットワーク アクセスを無効にするように Azure File Sync を構成する
デプロイ Azure File Sync ストレージ同期サービスのプライベート エンドポイントをデプロイします。 プライベート エンドポイントを持つ Azure File Sync を構成する
デプロイ Azure File Sync A レコードを privatelink.afs.azure.net DNS ゾーンにデプロイします。 プライベート DNS ゾーンを使用するように Azure File Sync を構成する

プライベート エンドポイント デプロイ ポリシーを設定する

プライベート エンドポイント デプロイ ポリシーを設定するには、Azure portal に移動し、Policy を検索します。 Azure Policy センターが一番上に表示されるはずです。 Policy センターの目次で、 [作成]>[定義] に移動します。 結果の [定義] ペインには、すべての Azure サービスにわたる事前に定義されたポリシーが表示されます。 特定のポリシーを見つけるには、カテゴリ フィルターで [ストレージ] カテゴリを選択するか、プライベート エンドポイントを使用した Azure File Sync の構成を検索します。 [...][割り当て] を選択し、定義から新しいポリシーを作成します。

[ポリシーの割り当て] ウィザードの [基本] ブレードを使用すると、スコープ、リソース、またはリソース グループの除外一覧を設定し、ポリシーにわかりやすい名前を付けて区別しやすくすることができます。 ポリシーを機能させるためにこれらを変更する必要はありませんが、変更することもできます。 [次へ] を選択し、 [パラメーター] ページに進みます。

[パラメーター] ブレードで、 [privateEndpointSubnetId] ドロップダウン リストの横にある [...] を選択して、ストレージ同期サービス リソースのプライベート エンドポイントをデプロイする必要がある仮想ネットワークとサブネットを選択します。 結果のウィザードに、サブスクリプションで使用できる仮想ネットワークが読み込まれるまでに数秒かかる場合があります。 お使いの環境に適した仮想ネットワークとサブネットを選択し、 [選択] をクリックします。 [次へ] を選択して、 [修復] ブレードに進みます。

プライベート エンドポイントを持たないストレージ同期サービスが特定されたときにプライベート エンドポイントをデプロイするには、 [修復] ページで [修復タスクを作成する] を選択する必要があります。 最後に、 [確認と作成] を選択してポリシーの割り当てを確認し、 [作成] を選択して作成します。

結果のポリシーの割り当ては定期的に実行されます。また、作成された直後には実行されない場合があります。

関連項目