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 地址
这是最常见的原因。以下步骤有助于诊断:
- 转到出现错误的虚拟机或客户端。
- 运行
nslookup <key-vault-name>.vault.azure.net
或用于解析 IP 地址的适当命令(host <key-vault-name>.vault.azure.net
对于大多数 Linux)。
- 记下 IP 地址。
- 使用 Azure 门户,打开 Key Vault 资源和 select 网络 > 私有端点连接.
- 单击 专用端点 列下的 link。这将打开专用端点资源。
- 单击 网络接口 字段中的 link。这将打开 NIC 资源。
- 检查私人IP地址字段。这必须与您在步骤 2 中通过
nslookup
或 host
命令获得的匹配。如果不匹配,则必须修复。有关详细说明,请参阅 Azure 文档的 validate-the-dns-resolution 主题。
您的客户端或您正在使用的某些代理在向 Key Vault
的请求中的 host
header 处发送了错误的值
访问 Key Vault 时,HTTP host
header 必须始终与 Key Vault 主机名匹配。这是绝大多数客户端的默认行为,但某些客户端允许自定义。此外,如果您使用代理,代理可能会更改此值。
- 转到 Azure 门户中的 Key Vault 资源,并在 Overview 选项卡中,检查 Vault URI 的值 属性.
- 从 属性 中提取主机名。例如,如果保险库 URI 为
https://contoso.vault.azure.net/
,则 host
header 的值必须为 contoso.vault.azure.net
.
- 检查您的客户端或代理设置。检查 HTTP 处理程序、代理处理程序、名称解析处理程序等。确保发送到 Key Vault 服务的
host
header 与您在步骤 2 中捕获的匹配。
- 还要确保您的客户端确实将主机名解析为您的 Key Vault 的 IP 地址(请参阅上一节)。
您的专用端点未处于“已批准”状态,或者已批准但未成功配置
这并不常见,但当您从服务端点迁移到专用端点并且迁移未完成时可能会发生。以下步骤有助于诊断:
- 转到 Azure 门户中的 Key Vault 资源,然后select 网络 > 私有终结点连接.
- 检查连接是否被批准,配置状态是否成功。如果不是这种情况,请通过批准或 re-creating 私有终结点资源来修复。
- 如果连接被批准并且配置成功,请单击 专用端点 列下方的 link。这将打开专用终结点资源。
- 检查属性配置状态和连接状态。他们必须分别显示 Succeeded 和 Approved。如果他们不这样做,您必须批准或 re-create 专用终结点资源。
- 如果 Key Vault 资源和 Private Endpoint 资源中报告的值都被批准并成功,您必须 double-check 其他可能的原因。
当我尝试使用私有 Link(或者可能不是,不确定)访问我的 Key Vault 时,服务 returns 403 (Forbidden
) 显示以下消息:
This TCP connection does not allow access to {host}.
这是什么原因造成的?
这可能是由以下原因引起的:
Key Vault 的 DNS 记录指向错误的 IP 地址
这是最常见的原因。以下步骤有助于诊断:
- 转到出现错误的虚拟机或客户端。
- 运行
nslookup <key-vault-name>.vault.azure.net
或用于解析 IP 地址的适当命令(host <key-vault-name>.vault.azure.net
对于大多数 Linux)。 - 记下 IP 地址。
- 使用 Azure 门户,打开 Key Vault 资源和 select 网络 > 私有端点连接.
- 单击 专用端点 列下的 link。这将打开专用端点资源。
- 单击 网络接口 字段中的 link。这将打开 NIC 资源。
- 检查私人IP地址字段。这必须与您在步骤 2 中通过
nslookup
或host
命令获得的匹配。如果不匹配,则必须修复。有关详细说明,请参阅 Azure 文档的 validate-the-dns-resolution 主题。
您的客户端或您正在使用的某些代理在向 Key Vault
的请求中的host
header 处发送了错误的值
访问 Key Vault 时,HTTP host
header 必须始终与 Key Vault 主机名匹配。这是绝大多数客户端的默认行为,但某些客户端允许自定义。此外,如果您使用代理,代理可能会更改此值。
- 转到 Azure 门户中的 Key Vault 资源,并在 Overview 选项卡中,检查 Vault URI 的值 属性.
- 从 属性 中提取主机名。例如,如果保险库 URI 为
https://contoso.vault.azure.net/
,则host
header 的值必须为contoso.vault.azure.net
. - 检查您的客户端或代理设置。检查 HTTP 处理程序、代理处理程序、名称解析处理程序等。确保发送到 Key Vault 服务的
host
header 与您在步骤 2 中捕获的匹配。 - 还要确保您的客户端确实将主机名解析为您的 Key Vault 的 IP 地址(请参阅上一节)。
您的专用端点未处于“已批准”状态,或者已批准但未成功配置
这并不常见,但当您从服务端点迁移到专用端点并且迁移未完成时可能会发生。以下步骤有助于诊断:
- 转到 Azure 门户中的 Key Vault 资源,然后select 网络 > 私有终结点连接.
- 检查连接是否被批准,配置状态是否成功。如果不是这种情况,请通过批准或 re-creating 私有终结点资源来修复。
- 如果连接被批准并且配置成功,请单击 专用端点 列下方的 link。这将打开专用终结点资源。
- 检查属性配置状态和连接状态。他们必须分别显示 Succeeded 和 Approved。如果他们不这样做,您必须批准或 re-create 专用终结点资源。
- 如果 Key Vault 资源和 Private Endpoint 资源中报告的值都被批准并成功,您必须 double-check 其他可能的原因。