【发布时间】:2023-01-09 07:25:05
【问题描述】:
我正在尝试通过 Azure Bastion 连接到我的 Mongo CosmosDB 实例。我们的 IT 部门会阻止所有不在端口 443 上的出站流量,因此为了让我能够访问任何内容,我必须先通过端口 443 进行隧道传输。
我有一些看起来像这样的脚本:
COSMOS_ID=$(az cosmosdb list --resource-group $RES_NAME | jq -r '.[] | .id')
az network bastion tunnel \
--resource-group $RES_NAME \
--name $RES_NAME \
--target-resource-id $COSMOS_ID \
--resource-port 10255 \
--port 10255 \
--debug
发出此输出:
Opening tunnel on port: 10255
Tunnel is ready, connect on port 10255
Ctrl + C to close
然后我使用 mongo compass 和在 azure 门户中找到的连接字符串,将 cosmosdb 主机名替换为 localhost,尝试连接后立即在终端中看到此错误,隧道进程退出:
Exception in thread Thread-1 (_start_tunnel):
Traceback (most recent call last):
File "/usr/local/Cellar/python@3.10/3.10.4/Frameworks/Python.framework/Versions/3.10/lib/python3.10/threading.py", line 1009, in _bootstrap_inner
self.run()
File "/usr/local/Cellar/python@3.10/3.10.4/Frameworks/Python.framework/Versions/3.10/lib/python3.10/threading.py", line 946, in run
self._target(*self._args, **self._kwargs)
File "/usr/local/Cellar/azure-cli/2.37.0/libexec/lib/python3.10/site-packages/azure/cli/command_modules/network/custom.py", line 8482, in _start_tunnel
tunnel_server.start_server()
File "/usr/local/Cellar/azure-cli/2.37.0/libexec/lib/python3.10/site-packages/azure/cli/command_modules/network/tunnel.py", line 184, in start_server
self._listen()
File "/usr/local/Cellar/azure-cli/2.37.0/libexec/lib/python3.10/site-packages/azure/cli/command_modules/network/tunnel.py", line 117, in _listen
auth_token = self._get_auth_token()
File "/usr/local/Cellar/azure-cli/2.37.0/libexec/lib/python3.10/site-packages/azure/cli/command_modules/network/tunnel.py", line 104, in _get_auth_token
raise exp
msrestazure.azure_exceptions.CloudError: Unexpected internal error
如果我启用调试日志记录,我会得到很多输出,但这些是异常发生前的最后 3 行:
urllib3.connectionpool: Starting new HTTPS connection (1): bst-210816cd-d967-41ee-8f90-31ee6af4574d.bastion.azure.com:443
urllib3.connectionpool: https://bst-210816cd-d967-41ee-8f90-31ee6af4574d.bastion.azure.com:443 "POST /api/tokens HTTP/1.1" 500 None
msrest.exceptions: Unexpected internal error
我已将堡垒子网添加到 cosmosdb 的防火墙,并将端口添加到 NSG……我想。我遇到的问题只是不知道我是否配置错误或者是否完全不支持。
我应该能够直接隧道到宇宙吗?如果不是,那为什么不呢,或者还有哪些其他解决方案可供我连接到通过端口 443 隧道连接的 cosmos?
【问题讨论】:
-
我没有看到这方面的提及,但是您是否也向该 cosmosDB 添加了一个私有端点?可能值得研究?我没有使用 Azure Bastion 的经验,但如果我在此处阅读的内容:learn.microsoft.com/en-us/azure/bastion/connect-ip-address 是正确的,那么几乎任何可从部署堡垒的 VNET 访问的内容都可以使用。也许连接 IP 而不是 ID 效果更好?不幸的是,500 错误并没有多大帮助。
-
它给我一个错误,说“AzureBastionSubnet 受到限制,不能与专用端点一起使用”。
标签: azure azure-cosmosdb-mongoapi azure-bastion