通过共享专用终结点访问专用网络中的 Key Vault
Artículo 10/16/2023
1 colaborador
Comentarios
En este artículo
Azure SignalR 服务可以通过共享专用终结点访问专用网络中的 Key Vault。 这样,Key Vault 就不会在公用网络上公开。
可以通过 Azure SignalR 服务 API 创建专用终结点,以便对与 Azure 专用链接服务 集成的资源进行共享访问。 这些终结点称为“共享专用链接资源”,是在 SignalR 执行环境中创建的,不能在此环境外部访问。
本文介绍如何创建 Key Vault 的共享专用终结点。
先决条件
完成本文需要以下资源:
Azure 资源组。
一个 Azure SignalR 服务实例。
一个 Azure 密钥保管库实例。
本文中的示例使用以下命名约定,但你可以改用自己的名称。
此 Azure SignalR 服务的资源 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。
其余示例演示了如何配置 contoso-signalr 服务,使其对 Key Vault 的出站调用通过专用终结点而不是公用网络。
创建 Key Vault 的共享专用链接资源
在 Azure 门户中,转到 Azure SignalR 服务资源。
选择“网络”。
选择“专用访问”选项卡。
在“共享专用终结点”部分选择“添加共享专用终结点”。
输入以下信息:
字段
说明
名称
共享专用终结点的名称。
类型
选择 Microsoft.KeyVault/vaults
订阅
包含 Key Vault 的订阅。
资源
输入 Key Vault 资源的名称。
请求消息
输入“请批准”
选择添加 。
成功添加专用终结点后,预配状态将为“成功”。 在 Key Vault 端批准终结点之前,连接状态将为“挂起”。
请使用 Azure CLI 进行下列 API 调用,以创建共享专用链接资源:
az rest --method put --uri https://management.chinacloudapi.cn/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.chinacloudapi.cn/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.chinacloudapi.cn/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 服务创建的专用终结点,然后选择“批准”。
选择“是”以批准连接。
列出专用终结点连接。
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 服务,连接状态会设置为“已批准”。 你可以使用 Azure 门户或 Azure CLI 来检查状态。
az rest --method get --uri https://management.chinacloudapi.cn/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.SignalRService/signalr/contoso-signalr/sharedPrivateLinkResources/func-pe?api-version=2021-06-01-preview
该命令将返回一个 JSON 对象,其中的连接状态在“properties”节中显示为“status”。
{
"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 服务可以通过专用终结点进行通信。
当 SignalR 服务与 Azure Key Vault 之间的专用终结点正常运行时,预配状态的值为“成功”,连接状态为“已批准”。
清理
如果不打算使用在本文中的创建资源,则可以删除资源组。
注意
删除资源组会删除其中包含的所有资源。 如果指定的资源组中存在本文范围外的资源,这些资源也会被删除。
后续步骤