プライベート リンクを構成する

プライベート リンクを使用すると、プライベート エンドポイント経由で Azure API for FHIR にアクセスできます。プライベート エンドポイントは、仮想ネットワークのプライベート IP アドレスを使用してプライベートかつ安全に接続するネットワーク インターフェイスです。 プライベート リンクを使用すると、パブリック ドメイン ネーム システム (DNS) を経由しなくても、VNet から Microsoft のサービスにファーストパーティ サービスとして安全にアクセスできます。 この記事では、Azure API for FHIR のプライベート エンドポイントを作成、テスト、および管理する方法について説明します。

注意

Private Link を有効にすると、Private Link または Azure API for FHIR も、あるリソース グループまたはサブスクリプションから別のリソース グループまたはサブスクリプションに移動できなくなります。 移動するには、まずプライベート リンクを削除し、次に Azure API for FHIR を移動します。 移動が完了したら、新しいプライベート リンクを作成します。 Private Link を削除する前に、潜在的なセキュリティの問題を評価します。

Azure API for FHIR の監査ログとメトリックのエクスポートが有効になっている場合は、ポータルから [診断設定] を使用してエクスポート設定を更新します。

前提条件

プライベート エンドポイントを作成する前に、いくつかの Azure リソースをまず作成しておく必要があります。

  • リソース グループ – 仮想ネットワークとプライベート エンドポイントを含める Azure リソース グループ。
  • Azure API for FHIR – プライベート エンドポイントの背後に配置する FHIR リソース。
  • 仮想ネットワーク – クライアント サービスとプライベート エンドポイントが接続される VNet。

詳細については、「Private Link のドキュメント」を参照してください。

プライベート エンドポイントの作成

プライベート エンドポイントを作成するために、FHIR リソースに対するロールベースのアクセス制御 (RBAC) のアクセス許可を持つ開発者は、Azure portal、Azure PowerShell、または Azure CLI を使用できます。 この記事では、Azure portal を使用する手順について説明します。 プライベート DNS ゾーンの作成と構成を自動化するため、Azure portal を使用することをお勧めします。 詳細については、Private Link のクイック スタート ガイドを参照してください。

プライベート エンドポイントを作成するには、2 つの方法があります。 自動承認フローを使用すると、FHIR リソースに対する RBAC アクセス許可を持つユーザーは、承認を受ける必要なく、プライベート エンドポイントを作成できます。 手動承認フローを使用すると、FHIR リソースに対するアクセス許可を持たないユーザーは、プライベート エンドポイントを FHIR リソースの所有者に承認してもらうよう要求できます。

注意

承認されたプライベート エンドポイントが Azure API for FHIR に対して作成されると、そのエンドポイントへのパブリック トラフィックは自動的に無効になります。

自動承認

新しいプライベート エンドポイントのリージョンが、使用している仮想ネットワークのリージョンと同じであることを確認します。 FHIR リソースのリージョンは異なっていてもかまいません。

Azure portal の [基本] タブ

[リソースの種類] には、Microsoft.HealthcareApis/services を検索して選択します。 [リソース] には、FHIR リソースを選択します。 ターゲット サブリソースの場合は、 FHIR を選択します。

Azure portal の [リソース] タブ

既存のプライベート DNS ゾーンを設定していない場合は、(新規)privatelink.azurehealthcareapis.com を選択します。 プライベート DNS ゾーンが既に構成されている場合は、一覧からそれを選択できます。 これは、privatelink.azurehealthcareapis.com の形式である必要があります。

Azure Portal の [構成] タブ

デプロイが完了したら、 [プライベート エンドポイント接続] タブに戻ります。ここでは、接続状態が "承認済み" と表示されます。

手動承認

手動承認の場合は、[リソース] の下の 2 つ目のオプションである [リソース ID またはエイリアスを使って Azure リソースに接続します] を選択します。 [ターゲット サブリソース] に、[自動承認] に「fhir」と入力します。

手動承認

デプロイが完了したら、[プライベート エンドポイント接続] タブに戻ります。ここでは、接続の承認、拒否、または削除を行うことができます。

オプション

VNet ピアリング

Private Link構成すると、同じ VNet 内の FHIR サーバー、または FHIR サーバーの VNet にピアリングされている別の VNet にアクセスできます。 次の手順に従って、VNet ピアリングを構成し、DNS ゾーンの構成Private Linkします。

VNet ピアリングを構成する

VNet ピアリングは、ポータルから構成することも、PowerShell、CLI スクリプト、Azure Resource Manager (ARM) テンプレートを使用して構成することもできます。 2 つ目の VNet は、同じサブスクリプションでも異なるサブスクリプションでも、同じリージョンでも異なるリージョンでもかまいません。 ネットワーク共同作成者ロールを付与していることを確認します。 VNet ピアリングの詳細については、「 仮想ネットワーク ピアリングを作成する」を参照してください。

Azure portalで、FHIR サーバーのリソース グループを選択します。 プライベート DNS ゾーンを選択して開 privatelink.azurehealthcareapis.com。 [設定] セクションの [仮想ネットワーク リンク] を選択します。 [ 追加 ] ボタンを選択して、プライベート DNS ゾーンに 2 つ目の VNet を追加します。 任意のリンク名を入力し、サブスクリプションと作成した VNet を選択します。 必要に応じて、2 番目の VNet のリソース ID を入力できます。 [ 自動登録を有効にする] を選択します。これにより、2 番目の VNet に接続されている VM の DNS レコードが自動的に追加されます。 VNet リンクを削除すると、VM の DNS レコードも削除されます。

プライベート リンク DNS ゾーンがプライベート エンドポイント IP アドレスを FHIR サーバーなどのリソースの完全修飾ドメイン名 (FQDN) に解決する方法の詳細については、「 Azure プライベート エンドポイント DNS の構成」を参照してください。

[VNet の追加] リンク。

必要に応じて VNet リンクをさらに追加し、ポータルから追加したすべての VNet リンクを表示できます。

VNet リンクをPrivate Linkします。

[概要] ブレードでは、FHIR サーバーとピアリングされた仮想ネットワークに接続されている VM のプライベート IP アドレスを表示できます。

FHIR と VM のプライベート IP アドレスをPrivate Linkします。

マネージド プライベート エンドポイント

表示

プライベート エンドポイントとそれに関連付けられているネットワーク インターフェイス コントローラー (NIC) は、それらが作成されたリソース グループから Azure portal で確認できます。

リソースでの表示

削除

プライベート エンドポイントは、Azure portal の [概要] ブレードを使用するか、 [ネットワーク プライベート エンドポイント接続] タブの [削除] オプションを選択することによってのみ削除できます。 [削除] を選択すると、プライベート エンドポイントだけでなく、関連付けられている NIC も削除されます。 FHIR リソースへのすべてのプライベート エンドポイントとパブリック ネットワークを削除すると、アクセスは無効になり、FHIR サーバーに対する要求は行われません。

プライベート エンドポイントの削除

パブリック ネットワーク アクセスを無効にした後に FHIR サーバーがパブリック トラフィックを受信しないようにするには、コンピューターからサーバーの /metadata エンドポイントを選択します。 "403 Forbidden" (403 許可されていません) という応答を受け取るはずです。

注意

パブリック ネットワーク アクセス フラグを更新してからパブリック トラフィックがブロックされるまでに、最大 5 分かかることがあります。

VM を作成して使用する

プライベート エンドポイントからサーバーへトラフィックが送信されることを確認するには、次のようにします。

  1. プライベート エンドポイントが構成されている仮想ネットワークとサブネットに接続されている仮想マシン (VM) を作成します。 VM からのトラフィックで確実にプライベート ネットワークのみが使用されるようにするには、ネットワーク セキュリティ グループ (NSG) ルールを使用して送信インターネット トラフィックを無効にします。
  2. RDP で VM に接続します。
  3. VM から FHIR サーバーの /metadata エンドポイントにアクセスします。 応答として機能ステートメントを受け取るはずです。

nslookup を使用する

nslookup ツールを使用して、接続を確認できます。 プライベート リンクが正しく構成されている場合は、次に示すように、FHIR サーバーの URL が有効なプライベート IP アドレスに解決されます。 IP アドレス 168.63.129.16 は、Azure で使用される仮想パブリック IP アドレスであることに注意してください。 詳細については、「IP アドレス 168.63.129.16 とは」を参照してください。

C:\Users\testuser>nslookup fhirserverxxx.azurehealthcareapis.com
Server:  UnKnown
Address:  168.63.129.16

Non-authoritative answer:
Name:    fhirserverxxx.privatelink.azurehealthcareapis.com
Address:  172.21.0.4
Aliases:  fhirserverxxx.azurehealthcareapis.com

プライベート リンクが正しく構成されていない場合は、代わりにパブリック IP アドレスと、Traffic Manager エンドポイントを含むいくつかのエイリアスが表示されることがあります。 これは、プライベート リンク DNS ゾーンが FHIR サーバーの有効なプライベート IP アドレスに解決できないことを示します。 VNet ピアリングが構成されている場合、考えられる理由の 1 つは、2 つ目のピアリングされた VNet がプライベート リンク DNS ゾーンに追加されていないことです。 その結果、FHIR サーバーの /metadata エンドポイントにアクセスしようとすると、HTTP エラー 403 "xxx へのアクセスが拒否されました" が表示されます。

C:\Users\testuser>nslookup fhirserverxxx.azurehealthcareapis.com
Server:  UnKnown
Address:  168.63.129.16

Non-authoritative answer:
Name:    xxx.cloudapp.azure.com
Address:  52.xxx.xxx.xxx
Aliases:  fhirserverxxx.azurehealthcareapis.com
          fhirserverxxx.privatelink.azurehealthcareapis.com
          xxx.trafficmanager.net

詳細については、「Azure Private Link接続の問題のトラブルシューティング」を参照してください。

次のステップ

この記事では、プライベート リンクと VNet ピアリングを構成する方法について説明しました。 また、プライベート リンクと VNet 構成のトラブルシューティング方法についても学習しました。

プライベート リンクのセットアップと、アプリケーションの登録の詳細については、次を参照してください。

FHIR® は HL7 の登録商標であり、HL7 の許可を得て使用しています。