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 地址

这是最常见的原因。以下步骤有助于诊断:

  1. 转到出现错误的虚拟机或客户端。
  2. 运行 nslookup <key-vault-name>.vault.azure.net 或相应的命令来解析 IP 地址(对于大多数 Linux 为 host <key-vault-name>.vault.azure.net)。
  3. 记下 IP 地址。
  4. 使用 Azure 门户,打开 Key Vault 资源并选择网络 > 私有端点连接
  5. 点击私有端点列下的链接。这将打开私有端点资源。
  6. 点击网络接口字段中的链接。这将打开 NIC 资源。
  7. 选中私有 IP 地址字段。它必须与您在第 2 步中的 nslookuphost 命令中得到的匹配。如果不匹配,您必须修复。有关详细说明,请参阅 Azure 文档的 validate-the-dns-resolution 主题。

您的客户端或您使用的某个代理在向 Key Vault 的请求中的 host 标头中发送了错误的值

访问 Key Vault 时,HTTP host 标头必须始终与 Key Vault 主机名匹配。这是绝大多数客户端的默认行为,但某些客户端允许自定义。此外,如果您使用代理,代理可能会更改此值。

  1. 转到 Azure 门户中的 Key Vault 资源,然后在 概述 选项卡中,检查 Vault URI 属性的值。
  2. 从该属性中提取主机名。例如,如果保险库 URI 为 https://contoso.vault.azure.net/,则 host 标头的值必须为 contoso.vault.azure.net
  3. 检查您的客户端或代理设置。检查 HTTP 处理程序、代理处理程序、名称解析处理程序等。确保发送到 Key Vault 服务的 host 标头与您在第 2 步中捕获的标头相匹配。
  4. 还要确保您的客户端确实将主机名解析为 Key Vault 的 IP 地址(请参阅上一节)。

您的私有端点未处于“已批准”状态,或者已获批准但未成功配置

这种情况并不常见,但是当您从服务端点迁移到私有端点并且迁移未完成时可能会发生。以下步骤有助于诊断:

  1. 转到 Azure 门户中的 Key Vault 资源,然后选择网络 > 专用端点连接
  2. 检查连接是否获得批准以及配置状态是否成功。如果不是这种情况,请通过批准或重新创建私有端点资源来修复。
  3. 如果连接获得批准且配置成功,请点击私有端点列下方的链接。这将打开私有端点资源。
  4. 检查属性配置状态连接状态。它们必须分别显示成功批准。如果他们不同意,您必须批准或重新创建私有端点资源。
  5. 如果 Key Vault 资源和私有终结点资源中报告的值都获得批准并成功,则必须仔细检查其他可能的原因。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...