Azure Key Vault returns 403 与 "This TCP connection does not allow access to {host}"

Azure Key Vault returns 403 with "This TCP connection does not allow access to {host}"

当我尝试使用私有 Link(或者可能不是,不确定)访问我的 Key Vault 时,服务 returns 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 地址的适当命令(host <key-vault-name>.vault.azure.net 对于大多数 Linux)。
  3. 记下 IP 地址。
  4. 使用 Azure 门户,打开 Key Vault 资源和 select 网络 > 私有端点连接.
  5. 单击 专用端点 列下的 link。这将打开专用端点资源。
  6. 单击 网络接口 字段中的 link。这将打开 NIC 资源。
  7. 检查私人IP地址字段。这必须与您在步骤 2 中通过 nslookuphost 命令获得的匹配。如果不匹配,则必须修复。有关详细说明,请参阅 Azure 文档的 validate-the-dns-resolution 主题。

您的客户端或您正在使用的某些代理在向 Key Vault

的请求中的 host header 处发送了错误的值

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

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

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

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

  1. 转到 Azure 门户中的 Key Vault 资源,然后select 网络 > 私有终结点连接.
  2. 检查连接是否被批准,配置状态是否成功。如果不是这种情况,请通过批准或 re-creating 私有终结点资源来修复。
  3. 如果连接被批准并且配置成功,请单击 专用端点 列下方的 link。这将打开专用终结点资源。
  4. 检查属性配置状态连接状态。他们必须分别显示 SucceededApproved。如果他们不这样做,您必须批准或 re-create 专用终结点资源。
  5. 如果 Key Vault 资源和 Private Endpoint 资源中报告的值都被批准并成功,您必须 double-check 其他可能的原因。