この記事では、 Private Link を使用して、サブスクリプション内のリソースの管理へのアクセスを制限する方法について説明します。 Private Link を使用すると、仮想ネットワーク内のプライベート エンドポイント経由で、Azure サービスにアクセスできます。 これにより、サービスがパブリック インターネットに公開されるのを防ぐことができます。
この記事では、 Azure portal を使用した Private Link のセットアップ プロセスについて説明します。
重要
この機能は、各レベルで、追加料金で有効にすることができます。
注
Azure Notification Hubs でプライベート リンクを使用する機能は、現在プレビュー段階です。 この機能の使用に関心がある場合は、Microsoft のカスタマー サクセス マネージャーに問い合わせるか、Azure サポート チケットを作成してください。
ポータルで新しい通知ハブと共にプライベート エンドポイントを作成する
次の手順では、Azure portal を使用して、新しい通知ハブと共にプライベート エンドポイントを作成します。
新しい通知ハブを作成し、[ネットワーク] タブ を 選択します。
[ プライベート アクセス] を選択し、[ 作成] を選択します。
サブスクリプション、リソース グループ、場所、および新しいプライベート エンドポイントの名前を入力します。 仮想ネットワークとサブネットを選択します。 [プライベート DNS ゾーンとの統合] で、[はい] を選択し、[プライベート DNS ゾーン] ボックスに「privatelink.notificationhub.windows.net」と入力します。
[ OK] を 選択すると、プライベート エンドポイントを使用した名前空間とハブの作成の確認が表示されます。
[ 作成] を選択して、プライベート エンドポイント接続を使用して通知ハブを作成します。
ポータルで既存の通知ハブのプライベート エンドポイントを作成する
ポータルの左側にある [セキュリティとネットワーク ] セクションで、[ Notification Hubs] を選択し、[ ネットワーク] を選択します。
[プライベート アクセス] タブを選択します。
サブスクリプション、リソース グループ、場所、および新しいプライベート エンドポイントの名前を入力します。 仮想ネットワークとサブネットを選択します。 を選択してを作成します。
CLI を使用してプライベート エンドポイントを作成する
Azure CLI にサインインし、サブスクリプションを設定します。
az login az account set --subscription <azure_subscription_id>
新しいリソース グループを作成します。
az group create -n <resource_group_name> -l <azure_region>
Microsoft.NotificationHubs をプロバイダーとして登録します。
az provider register -n Microsoft.NotificationHubs
新しい Notification Hubs 名前空間とハブを作成します。
az notification-hub namespace create --name <namespace_name> --resource-group <resource_group_name> --location <azure_region> --sku "Standard" az notification-hub create --name <notification_hub_name> --namespace-name <namespace_name> --resource-group <resource_group_name> --location <azure_region>
サブネットを含む仮想ネットワークを作成します。
az network vnet create --resource-group <resource_group_name> --name <vNet name> --location <azure_region> az network vnet subnet create --resource-group <resource_group_name> --vnet-name <vNet_name> --name <subnet_name> --address-prefixes <address_prefix>
仮想ネットワーク ポリシーを無効にします。
az network vnet subnet update --name <subnet_name> --resource-group <resource_group_name> --vnet-name <vNet_name> --disable-private-endpoint-network-policies true
プライベート DNS ゾーンを追加し、仮想ネットワークにリンクします。
az network private-dns zone create --resource-group <resource_group_name> --name privatelink.servicebus.windows.net az network private-dns zone create --resource-group <resource_group_name> --name privatelink.notificationhub.windows.net az network private-dns link vnet create --resource-group <resource_group_name> --virtual-network <vNet_name> --zone-name privatelink.servicebus.windows.net --name <dns_zone_link_name> --registration-enabled true az network private-dns link vnet create --resource-group <resource_group_name> --virtual-network <vNet_name> --zone-name privatelink.notificationhub.windows.net --name <dns_zone_link_name> --registration-enabled true
プライベート エンドポイントを作成する (自動的に承認):
az network private-endpoint create --resource-group <resource_group_name> --vnet-name <vNet_name> --subnet <subnet_name> --name <private_endpoint_name> --private-connection-resource-id "/subscriptions/<azure_subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.NotificationHubs/namespaces/<namespace_name>" --group-ids namespace --connection-name <private_link_connection_name> --location <azure-region>
プライベート エンドポイントを作成します (手動要求の承認を使用)。
az network private-endpoint create --resource-group <resource_group_name> --vnet-name <vnet_name> --subnet <subnet_name> --name <private_endpoint_name> --private-connection-resource-id "/subscriptions/<azure_subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.NotificationHubs/namespaces/<namespace_name>" --group-ids namespace --connection-name <private_link_connection_name> --location <azure-region> --manual-request
接続の状態を表示します。
az network private-endpoint show --resource-group <resource_group_name> --name <private_endpoint_name>
ポータルを使用してプライベート エンドポイントを管理する
プライベート エンドポイントを作成する際は、接続を承認する必要があります。 プライベート エンドポイントを作成するリソースがディレクトリ内にある場合は、十分なアクセス許可があれば、接続要求を承認できます。 別のディレクトリ内の Azure リソースに接続している場合は、そのリソースの所有者が接続要求を承認するまで待機する必要があります。
プロビジョニングの状態には次の 4 つがあります:
サービス アクション | サービス コンシューマーのプライベート エンドポイントの状態 | 説明 |
---|---|---|
なし | 保留中 | 接続は手動で作成され、プライベート リンク リソース所有者からの承認が保留中です。 |
承認する | 承認 | 接続が自動または手動で承認され、使用する準備が整っています。 |
リジェクト | 拒否 | プライベート リンク リソースの所有者によって接続が拒否されました。 |
[削除] | 切断された | プライベート リンク リソースの所有者によって接続が削除されました。 プライベート エンドポイントは情報が多くなり、クリーンアップのために削除する必要があります。 |
プライベート エンドポイント接続の承認、拒否、または削除
- Azure portal にサインインします。
- 検索バーに「 Notification Hubs」と入力します。
- 管理する名前空間を選択します。
- [ネットワーク] タブを選択します。
- 承認、拒否、または削除する操作に基づいて、適切なセクションに移動します。
プライベート エンドポイント接続を承認する
保留中の接続がある場合、接続はプロビジョニング状態で [保留中] と表示されます。
承認するプライベート エンドポイントを選択します。
[承認] を選択します。
[ 接続の承認 ] ページで、オプションのコメントを入力し、[ はい] を選択します。 [いいえ] を選択した場合は、何も起こりません。
一覧の接続の状態が [承認済み] に変わります。
プライベート エンドポイント接続を拒否する
拒否するプライベート エンドポイント接続がある場合は、それが保留中の要求であるか、以前に承認された既存の接続であるかに関係なく、エンドポイント接続アイコンを選択し、[拒否] を選択 します。
[ 接続の拒否 ] ページで、オプションのコメントを入力し、[ はい] を選択します。 [いいえ] を選択した場合は、何も起こりません。
一覧の接続の状態が [拒否済み] に変わります。
プライベート エンドポイント接続を削除する
プライベート エンドポイント接続を削除するには、一覧でプライベート エンドポイント接続を選択し、ツール バーの [削除 ] を選択します。
[接続の削除] ページで [はい] を選択して、プライベート エンドポイントの削除を確定します。 [いいえ] を選択した場合は、何も起こりません。
一覧の接続の状態が [切断済み] に変わります。 その後、エンドポイントは一覧から消えます。
プライベート リンク接続が機能することを検証する
プライベート エンドポイントの仮想ネットワーク内のリソースがプライベート IP アドレス経由で Notification Hubs 名前空間に接続していること、およびそれらが適切なプライベート DNS ゾーン統合を持っていることを検証する必要があります。
まず、「Azure portal で Windows 仮想マシンを作成する」の手順に従って 仮想マシンを作成します。
[ネットワーク] タブで、次の操作を行います。
- 仮想ネットワークとサブネットを指定します。 プライベート エンドポイントをデプロイした仮想ネットワークを選択する必要があります。
- [パブリック IP] リソースを指定します。
- [NIC ネットワーク セキュリティ グループ] で [なし] を選択します。
- [負荷分散] で [いいえ] を選択します。
VM に接続し、コマンド ラインを開き、次のコマンドを実行します。
Resolve-DnsName <namespace_name>.privatelink.servicebus.windows.net
VM からコマンドを実行すると、プライベート エンドポイント接続の IP アドレスが返されます。 外部ネットワークから実行されると、いずれかの Notification Hubs クラスターのパブリック IP アドレスが返されます。
制限事項と設計に関する考慮事項
制限事項: この機能は、すべての Azure パブリック リージョンで使用できます。 Notification Hubs 名前空間あたりのプライベート エンドポイントの最大数: 200
詳細については、「 Azure Private Link サービス: 制限事項」を参照してください。