Azure File Sync ネットワーク エンドポイントを構成する

Azure File Syncは2つのAzureリソースを使用し、それぞれ独自のネットワークエンドポイントを持っています。ストレージアカウント(Azureファイル共有を保持)とStorage Sync Service(同期、サーバー登録、同期グループを調整)です。 両方のリソースはデフォルトでパブリックエンドポイントを使用しています。

Azure File SyncエージェントはHTTPS(ポート443)を通じて両方のリソースと通信します。 VPNやExpressRouteなしでインターネット経由でAzureに接続するサーバーなら、パブリックエンドポイントを使え、設定は不要です。 しかし、多くのAzure File Syncの顧客はプライベートエンドポイントの設定を望んでいます。

プライベートエンドポイントが必要かどうかは以下の表を参考にしてください。 必要なら両方のリソースにプライベートエンドポイントを作成しましょう。

~する必要がある Use
VPNやExpressRouteなしでインターネット経由でAzureに接続するサーバーを同期させる パブリックエンドポイント(設定不要)
すべての同期トラフィックをExpressRouteまたはサイト間VPN接続でルーティングします 両方のリソースに対するプライベートエンドポイント
公共インターネット上のデータ公開を禁止するコンプライアンス要件を満たす 両方のリソースに対するプライベートエンドポイント
セキュリティ強化策としてパブリックエンドポイントを無効にする まず両方のリソースにプライベートエンドポイントを設置し、その後アクセスを制限します
ゼロトラストネットワークアクセスの実装 両方のリソースに対するプライベートエンドポイント

より広いネットワークの概念については、Azure File Sync Networkingの考慮事項を参照してください。 Azure File SyncなしでAzureファイル共有に直接アクセスするためのエンドポイントを設定するには、「Azure Filesネットワークエンドポイントの設定」をご覧ください。

前提条件

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

  • Azure サブスクリプションがある。 サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。
  • ストレージアカウントにSMBのAzureクラシックファイル共有を作成し、オンプレミスから接続したいと考えています。 Azure classicファイル共有の作成方法を学びたい方は、「Create an Azure classicファイル共有」をご覧ください。
  • ファイアウォールは通信に必要なドメインを許可しています。 Azure File Syncのファイアウォール設定を参照してください。

追加として:

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

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

展開リソース Description あなたの活動内容
プライベート エンドポイント ストレージアカウントやストレージ同期サービスを仮想ネットワーク内のネットワークインターフェースに接続するAzureリソースです ストレージアカウントのプライベートエンドポイント作成とストレージ同期サービスのプライベートエンドポイント作成で、各リソースごとに1つずつ作成してください
ネットワーク インターフェイス (NIC) サブネット内のプライベートエンドポイントのプライベートIPアドレスを保持します プライベートエンドポイントで自動的に作成;追加の行動は必要ありません
プライベート DNS ゾーン リソースの公開ホスト名をプライベートエンドポイントのIPアドレスにマッピングするため、クライアントは接続文字列を変えずにプライベートエンドポイントに解決します 存在しなければ自動的に作成されます。手動のDNS設定を避けることを推奨します

注意

この記事では、AzureパブリックリージョンのDNSサフィックスを使用しています。ストレージアカウントにはcore.windows.net、ストレージ同期サービスにはafs.azure.netです。 この名称はAzure 米国政府機関クラウドのようなAzure Sovereignクラウドにも適用されます。 環境に適したサフィックスに置き換えます。

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

プライベート エンドポイントを作成するストレージ アカウントに移動します。 サービス メニューの [セキュリティとネットワーク] で、[ネットワーク][プライベート エンドポイント接続]、および [+ プライベート エンドポイント] の順に選択して新しいプライベート エンドポイントを作成します。

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

生成されたウィザードには、完了するページが複数あります。

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

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

[リソース] ブレードで、ターゲット サブリソースのファイルを選択します。 [次へ: 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ポータルの検索バー上部に「Private Link」と入力すると、Private Link Centerにアクセスしてください。 Private Link Centerの目次でPrivate endpointsを選択し、+Add を選択して新しいプライベートエンドポイントを作成します。

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

生成されたウィザードには、完了するページが複数あります。

「基本」タブで、プライベートエンドポイントのリソースグループ、名前、リージョンを選択します。 これらの値は任意の有効な値であってよい。 ストレージ同期サービスと一致する必要はありませんが、選択した仮想ネットワークと同じリージョン内でプライベートエンドポイントを作成する必要があります。

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

[リソース] タブで [Connect to an Azure resource in my directory](マイ ディレクトリ内の 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 つ以上の仮想ネットワークに制限されます。 ストレージ アカウントへのアクセスを仮想ネットワークに制限するには、次のいずれかの方法を使用します。

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

注意

Azure File Sync などの信頼できる Microsoft のファーストパーティ サービスがストレージ アカウントにアクセスできるようにするには、ストレージ アカウントで このリソースへのアクセスを信頼できる Microsoft サービスに許可する チェック ボックスを選択します。 詳細については、「 特定のネットワークへのパブリックエンドポイントへのアクセスを制限する」をご覧ください。

重要

Azure File Sync には、ネットワーク セキュリティ境界 (NSP) に関する既知の制限があります。 ストレージ同期サービスを境界内に配置することはできません。また、境界全体の統合はサポートされていません。

ストレージ同期サービスを NSP によって保護されたストレージ アカウントに接続するには:

  1. マネージド ID を使用するようにストレージ同期サービスを構成します。
  2. ストレージ同期サービスをホストするサブスクリプションを許可リストする NSP 受信プロファイル規則を作成します。

同期が正しく機能するためには、ストレージ同期サービスが境界外に残っている必要があります。

信頼された 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 Files および Azure File Sync 向けの Azure Policy

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

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

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

アクション Service 条件 ポリシー名
監査 Azure Files ストレージ アカウントのパブリック エンドポイントが有効になっています。 詳細については、「信頼された Azure サービスへのアクセスを許可し、ストレージ アカウントのパブリック エンドポイントへのアクセスを無効にする」を参照してください。 ストレージ アカウントではネットワーク アクセスを制限する必要がある
監査 Azure File Sync ストレージ同期サービスのパブリック エンドポイントが有効になっています。 詳細については、「ストレージ同期サービスのパブリック エンドポイントへのアクセスを無効にする」を参照してください。 Azure File Sync のパブリック ネットワーク アクセスを無効にする必要がある
監査 Azure Files ストレージ アカウントには、少なくとも 1 つのプライベート エンドポイントが必要です。 詳細については、「ストレージ アカウントのプライベート エンドポイントを作成する」を参照してください。 ストレージ アカウントではプライベート リンク接続を使用する必要がある
監査 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 を構成する

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

プライベートエンドポイント展開ポリシーを設定するには、以下の手順に従ってください:

  1. Azureポータルにサインインして「ポリシー」を検索してください。 結果から ポリシー を選択します。
  2. ポリシーセンターの目次にある 「Authoring>Definitions 」へ行ってください。
  3. 定義ペインでカテゴリフィルターのストレージカテゴリを選択するか、「Configure Azure File Sync with private endpoints」を検索してください。
  4. ポリシーの横で ... を選択し、次に 割り当てを選択します。
  5. Basicsページでは、オプションで範囲、除外リスト、そしてポリシーのフレンドリーな名前を設定することができます。 次へを選択します。
  6. パラメータページで、privateEndpointSubnetIdフィールドの隣にある...を選択します。 ストレージ同期サービスリソースのプライベートエンドポイントを展開すべき仮想ネットワークとサブネットを選択してください。 ウィザードは利用可能な仮想ネットワークの読み込みに数秒かかることもあります。 次へを選択します。
  7. リメディエーションページで「リメディエーションタスクを作成」を選択し、プライベートエンドポイントを持たないストレージ同期サービスが特定された際にプライベートエンドポイントが展開されます。
  8. ポリシー割り当てを確認するには レビュー+作成 を選択し、その後 作成を選択します。

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

関連項目