Azure Web PubSub では、共有プライベート エンドポイント接続経由でプライベート ネットワーク内のキー コンテナーにアクセスできます。 この記事では、公衆ネットワーク経由ではなく共有プライベート エンドポイント経由でキー コンテナーに送信呼び出しをルーティングするように Web PubSub リソースを構成する方法について説明します。
Azure Web PubSub API を使用して作成された、セキュリティで保護されたリソースのプライベート エンドポイントは、"共有プライベート リンク リソース" と呼ばれます。
Azure Private Link と統合されているリソース (Azure Key Vault のインスタンスなど) へのアクセスは "共有" しています。 これらのプライベート エンドポイントは、Web PubSub の実行環境内に作成され、直接見ることはできません。
Note
この記事の例では、次のリソース ID を使用します。
- この Azure Web PubSub インスタンスのリソース ID は
_/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.SignalRService/webpubsub/contoso-webpubsub です。
- Azure Key Vault インスタンスのリソース ID は
/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.KeyVault/vaults/contoso-kv です。
次の例の手順を実行するには、これらの値を実際のサブスクリプション ID、Web PubSub リソースの名前、Azure Key Vault リソースの名前に置き換えます。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。
無料でアカウントを作成できます。
-
Azure CLI 2.25.0 以降 (Azure CLI を使用する場合)。
- Standard の価格レベル以上の Azure Web PubSub インスタンス。
- Azure Key Vault リソース。
キー コンテナーへの共有プライベート エンドポイント リソースを作成する
Azure portal で、Azure Web PubSub リソースに移動します。
左側のメニューで、[ネットワーク] を選択します。
[プライベート アクセス] タブを選択します。
[共有プライベート エンドポイントの追加] を選択します。
[名前] に、共有プライベート エンドポイントに使用する名前を入力します。
キー コンテナー リソースを選択するには、次のいずれかの手順を実行します。
-
[リソースから選択する] を選択し、一覧からリソースを選択します。
-
[リソース ID の指定] を選択し、キー コンテナーのリソース ID を入力します。
[要求メッセージ] には「承認してください」と入力します。
[追加] を選択します。
共有プライベート エンドポイント リソースが、プロビジョニングに [成功] した状態になります。 接続状態は "保留中" であり、ターゲット リソースの承認を待機しています。
Azure CLI で次の API 呼び出しを実行して、共有プライベート リンク リソースを作成できます。 値 uri を実際のシナリオの URI に置き換えます。
az rest --method put --uri https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.SignalRService/webpubsub/contoso-webpubsub/sharedPrivateLinkResources/kv-pe?api-version=2022-08-01-preview --body @create-pe.json
API への要求本文を表す create-pe.json ファイルの内容:
{
"name": "contoso-kv",
"properties": {
"privateLinkResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.KeyVault/vaults/contoso-kv",
"groupId": "vault",
"requestMessage": "please approve"
}
}
発信プライベート エンドポイントを作成するプロセスは長時間実行される (非同期の) 操作です。 すべての非同期 Azure 操作と同様に、PUT の呼び出しにより、次の例のような Azure-AsyncOperation ヘッダー値が返されます。
"Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.SignalRService/webpubsub/contoso-webpubsub/operationStatuses/c0786383-8d5f-4554-8d17-f16fcf482fb2?api-version=2022-08-01-preview"
この URI を定期的にポーリングして、操作の状態を取得できます。 状態が "成功" に変わるまで待ってから、次のセクションに進みます。
状態をポーリングするには、Azure-AsyncOperationHeader 値を手動で照会します。
az rest --method get --uri https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.SignalRService/webpubsub/contoso-webpubsub/operationStatuses/c0786383-8d5f-4554-8d17-f16fcf482fb2?api-version=2022-08-01-preview
キー コンテナーへのプライベート エンドポイント接続を承認する
プライベート エンドポイント接続が作成されると、Web PubSub からの接続要求を Key Vault リソースで承認する必要があります。
Azure portal で、キー コンテナー リソースに移動します。
左側のメニューで、[ネットワーク] を選択します。
[プライベート エンドポイント接続] を選択します。
Web PubSub によって作成されたプライベート エンドポイントを選択します。
[承認] を選択してから、[はい] を選択して確定します。
プライベート エンドポイントの接続状態が "承認済み" に変わるまでに数分かかる場合があります。
プライベート エンドポイント接続を一覧表示します。
az network private-endpoint-connection list --name <key-vault-resource-name> --resource-group <key-vault-resource-group-name> --type 'Microsoft.KeyVault/vaults'
保留中のプライベート エンドポイント接続を確認します。 接続 ID をメモします。
[
{
"id": "<ID>",
"location": "",
"name": "",
"properties": {
"privateLinkServiceConnectionState": {
"actionRequired": "None",
"description": "Please approve",
"status": "Pending"
}
}
}
]
プライベート エンドポイント接続を承認します。
az network private-endpoint-connection approve --id <private-endpoint-connection-ID>
共有プライベート リンク リソースの状態を照会する
Azure Web PubSub Service に承認が反映されるまでに数分かかります。 Azure portal または Azure CLI を使用して、状態を確認できます。 コンテナーの状態が承認されると、Azure Web PubSub Service と Azure Key Vault 間の共有プライベート エンドポイントがアクティブになります。
Azure portal で、Azure Web PubSub リソースに移動します。
左側のメニューで、[ネットワーク] を選択します。
[共有プライベート リンク リソース] を選択します。
az rest --method get --uri https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.SignalRService/webpubsub/contoso-webpubsub/sharedPrivateLinkResources/func-pe?api-version=2022-08-01-preview
このコマンドによって JSON が返されます。 接続状態は status の properties の下に示されます。
{
"name": "contoso-kv",
"properties": {
"privateLinkResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.KeyVault/vaults/contoso-kv",
"groupId": "vaults",
"requestMessage": "please approve",
"status": "Approved",
"provisioningState": "Succeeded"
}
}
properties.provisioningState が Succeeded で、properties.status (接続状態) が Approved である場合、共有プライベート リンク リソースが機能しており、Web PubSub がプライベート エンドポイントを介して通信できることを意味します。
これで、カスタム ドメインなどの機能を通常どおり構成できます。 キー コンテナーに特別なドメインを使用する必要はありません。 Web PubSub は、ドメイン ネーム システム (DNS) 解決を自動的に処理します。
関連するコンテンツ