共有プライベート エンドポイント経由でプライベート ネットワーク内の Key Vault にアクセスする
[アーティクル] 07/15/2023
5 人の共同作成者
フィードバック
この記事の内容
Azure SignalR Service では、共有プライベート エンドポイント経由でプライベート ネットワーク内の Key Vault にアクセスできます。 この方法により、Key Vault はパブリック ネットワーク上に公開されません。
Azure Private Link サービス と統合されたリソースへの共有アクセスのために、Azure SignalR Service API を使用してプライベート エンドポイントを作成できます。 これらのエンドポイント ("共有プライベート リンク リソース" と呼ばれます) は、SignalR 実行環境の内部に作成され、この環境の外部からはアクセスできません。
この記事では、Key Vault への共有プライベート エンドポイントを作成する方法について説明します。
前提条件
この記事を完了するには、次のリソースが必要になります。
Azure リソース グループ。
Azure SignalR Service インスタンス。
Azure Key Vault インスタンス。
この記事の例では、次の名前付け規則を使用しますが、代わりに独自の名前を使用することもできます。
この Azure SignalR Service のリソース ID は /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.SignalRService/signalr/contoso-signalr です。
Azure Key Vault のリソース ID は、/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.KeyVault/vaults/contoso-kv です。
残りの例では、Key Vault への送信呼び出しが公衆ネットワークではなくプライベート エンドポイントを通るよう contoso-signalr サービスを構成する方法について説明します。
Key Vault への共有プライベート リンク リソースを作成する
Azure portal で、Azure SignalR Service リソースに移動します。
[ネットワーク] を選択します。
[プライベート アクセス] タブを選択します。
[共有プライベート エンドポイント] セクションで [共有プライベート エンドポイントの追加] を選択します。
次の情報を入力します。
フィールド
説明
名前
共有プライベート エンドポイントの名前。
Type
Microsoft.KeyVault/vaults を選択する
サブスクリプション
Key Vault を含むサブスクリプション。
リソース
Key Vault リソースの名前を入力します。
要求メッセージ
「承認してください」と入力します
[追加] を選択します。
プライベート エンドポイントが正常に追加されると、プロビジョニング状態は [成功] になります。 Key Vault 側でエンドポイントを承認するまで、接続状態は [保留中] になります。
Azure CLI で次の API 呼び出しを行って共有プライベート リンク リソースを作成します。
az rest --method put --uri https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.SignalRService/signalr/contoso-signalr/sharedPrivateLinkResources/kv-pe?api-version=2021-06-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/signalr/contoso-signalr/operationStatuses/c0786383-8d5f-4554-8d17-f16fcf482fb2?api-version=2021-06-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/signalr/contoso-signalr/operationStatuses/c0786383-8d5f-4554-8d17-f16fcf482fb2?api-version=2021-06-01-preview
状態が [成功] に変化するまで待ってから次の手順に進みます。
Key Vault へのプライベート エンドポイント接続を承認する
Key Vault リソースに移動します。
[ネットワーク] を選択します。
[プライベート エンドポイント接続] タブを選択します。非同期操作が成功したら、以前の API 呼び出しからの要求メッセージを使用して、プライベート エンドポイント接続に対する要求を行う必要があります。
SignalR Service で作成されたプライベート エンドポイントを選択してから、[承認] を選択します。
[はい] を選択して接続を承認します。
プライベート エンドポイント接続を一覧表示します。
az network private-endpoint-connection list -n <key-vault-resource-name> -g <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>
共有プライベート エンドポイントが機能していることを確認する
数分経つと、承認が SignalR Service に伝達され、接続状態が [承認済み] に設定されます。 Azure portal または Azure CLI を使用して、状態を確認できます。
az rest --method get --uri https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.SignalRService/signalr/contoso-signalr/sharedPrivateLinkResources/func-pe?api-version=2021-06-01-preview
このコマンドは、接続状態が "properties" セクションに "status" として示されている JSON オブジェクトを返します。
{
"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
である場合、共有プライベート リンク リソースは機能しており、SignalR Service はプライベート エンドポイント経由で通信できます。
SignalR Service と Azure Key Vault の間のプライベート エンドポイントが機能している場合、プロビジョニング状態の値は [成功] であり、接続状態は [承認済み] です。
クリーンアップ
この記事で作成したリソースを使用する予定がない場合は、そのリソース グループを削除できます。
注意事項
リソース グループを削除すると、その中に含まれているすべてのリソースが削除されます。 指定したリソース グループにこの記事の範囲外のリソースが含まれている場合、それらも削除されます。
次のステップ