Private Link (プレビュー) を使用します。
この記事では、Private Link を使って、サブスクリプション内のリソースを管理するアクセスを制限する方法について説明します。 Private Link を使用すると、仮想ネットワーク内のプライベート エンドポイント経由で、Azure サービスにアクセスできます。 これにより、サービスをパブリック インターネットに公開するのを防ぐことができます。
この記事では、Azure portal を使った Private Link のセットアップ プロセスについて説明します。
重要
この機能は、各レベルで、追加料金で有効にすることができます。
Note
Azure Notification Hubs でプライベート リンクを使う機能は現在プレビュー段階です。 この機能の使用に関心がある場合は、Microsoft のカスタマー サクセス マネージャーに問い合わせるか、Azure サポート チケットを作成してください。
ポータルで新しい通知ハブと共にプライベート エンドポイントを作成する
次の手順により、Azure portal を使って、新しい通知ハブと共にプライベート エンドポイントを作成できます。
新しい通知ハブを作成し、[ネットワーク] タブを選択します。
[プライベート アクセス] を選択し、[作成] を選択します。
新しいプライベート エンドポイントのサブスクリプション、リソース グループ、場所、名前を入力します。 仮想ネットワークとサブネットを選択します。 [プライベート DNS ゾーンと統合する] で [はい] を選択し、[プライベート DNS ゾーン] ボックスに「privatelink.notificationhubs.windows.net」と入力します。
[OK] を選択すると、プライベート エンドポイントを使用した名前空間とハブの作成の確認が表示されます。
[作成] を選択して、プライベート エンドポイント接続を使用した通知ハブを作成します。
ポータルで既存の通知ハブ用のプライベート エンドポイントを作成する
ポータルで、左側の [セキュリティとネットワーク] セクションの下にある [通知ハブ] を選択し、[ネットワーク] を選択します。
[プライベート アクセス] タブを選択します。
新しいプライベート エンドポイントのサブスクリプション、リソース グループ、場所、名前を入力します。 仮想ネットワークとサブネットを選択します。 [作成] を選択します
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.notoficationhub.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 つがあります。
サービス アクション | サービス コンシューマーのプライベート エンドポイントの状態 | 説明 |
---|---|---|
なし | 保留中 | 接続が手動で作成されており、プライベート リンク リソースの所有者からの承認を待っています。 |
承認 | Approved | 接続が自動または手動で承認され、使用する準備が整っています。 |
Reject | 拒否 | プライベート リンク リソースの所有者によって接続が拒否されました。 |
[削除] | [Disconnected](切断済み) | プライベート リンク リソースの所有者によって接続が削除されました。 プライベート エンドポイントは情報が多くなり、クリーンアップのために削除する必要があります。 |
プライベート エンドポイント接続の承認、拒否、または削除
- 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 サービスの「制限事項」を参照してください。