如何解决Azure Key Vault 返回 403,并显示“此 TCP 连接不允许访问 {host}” 您在 Key Vault 中的 DNS 记录指向错误的 IP 地址您的客户端或您使用的某个代理在向 Key Vault 的请求中的 host 标头中发送了错误的值您的私有端点未处于“已批准”状态,或者已获批准但未成功配置
当我尝试使用私有链接(或者可能不是,不确定)访问我的 Key Vault 时,服务返回 403 (Forbidden
) 并显示以下消息:
This TCP connection does not allow access to {host}.
这是什么原因造成的?
解决方法
这可能由以下原因引起:
您在 Key Vault 中的 DNS 记录指向错误的 IP 地址
这是最常见的原因。以下步骤有助于诊断:
- 转到出现错误的虚拟机或客户端。
- 运行
nslookup <key-vault-name>.vault.azure.net
或相应的命令来解析 IP 地址(对于大多数 Linux 为host <key-vault-name>.vault.azure.net
)。 - 记下 IP 地址。
- 使用 Azure 门户,打开 Key Vault 资源并选择网络 > 私有端点连接。
- 点击私有端点列下的链接。这将打开私有端点资源。
- 点击网络接口字段中的链接。这将打开 NIC 资源。
- 选中私有 IP 地址字段。它必须与您在第 2 步中的
nslookup
或host
命令中得到的匹配。如果不匹配,您必须修复。有关详细说明,请参阅 Azure 文档的 validate-the-dns-resolution 主题。
您的客户端或您使用的某个代理在向 Key Vault 的请求中的 host
标头中发送了错误的值
访问 Key Vault 时,HTTP host
标头必须始终与 Key Vault 主机名匹配。这是绝大多数客户端的默认行为,但某些客户端允许自定义。此外,如果您使用代理,代理可能会更改此值。
- 转到 Azure 门户中的 Key Vault 资源,然后在 概述 选项卡中,检查 Vault URI 属性的值。
- 从该属性中提取主机名。例如,如果保险库 URI 为
https://contoso.vault.azure.net/
,则host
标头的值必须为contoso.vault.azure.net
。 - 检查您的客户端或代理设置。检查 HTTP 处理程序、代理处理程序、名称解析处理程序等。确保发送到 Key Vault 服务的
host
标头与您在第 2 步中捕获的标头相匹配。 - 还要确保您的客户端确实将主机名解析为 Key Vault 的 IP 地址(请参阅上一节)。
您的私有端点未处于“已批准”状态,或者已获批准但未成功配置
这种情况并不常见,但是当您从服务端点迁移到私有端点并且迁移未完成时可能会发生。以下步骤有助于诊断:
- 转到 Azure 门户中的 Key Vault 资源,然后选择网络 > 专用端点连接。
- 检查连接是否获得批准以及配置状态是否成功。如果不是这种情况,请通过批准或重新创建私有端点资源来修复。
- 如果连接获得批准且配置成功,请点击私有端点列下方的链接。这将打开私有端点资源。
- 检查属性配置状态和连接状态。它们必须分别显示成功和批准。如果他们不同意,您必须批准或重新创建私有端点资源。
- 如果 Key Vault 资源和私有终结点资源中报告的值都获得批准并成功,则必须仔细检查其他可能的原因。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。