Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
HTTP 状态代码 403 表示已禁止完成请求。
防火墙阻止请求
数据平面请求可以通过以下三个路径到达Azure Cosmos DB。
- 公共 Internet (IPv4)
- 服务终结点
- 专用端点
当数据平面请求被403禁止时,错误消息指明请求是通过之前三个路径中的哪个路径达至 Azure Cosmos DB。
Request originated from client IP {...} through public internet.Request originated from client VNET through service endpoint.Request originated from client VNET through private endpoint.
解决方案
了解请求预计通过哪个路径到达 Azure Cosmos DB。
- 如果错误消息显示请求未通过预期的路径到达Azure Cosmos DB,那么问题可能出在客户端设置。 请根据文档再次检查您的客户端设置。
- 公共 Internet:Azure Cosmos DB 中配置 IP 防火墙。
- 服务终结点:配置从虚拟网络访问Azure Cosmos DB 的权限。 请考虑您是否期望使用服务终结点,但请求来自公共互联网到 Azure Cosmos DB。 这种情况可能表明客户端运行的子网未启用服务终结点Azure Cosmos DB。
- 专用终结点:为 Azure Cosmos DB 帐户配置Azure Private Link。 请考虑您是否计划使用专用终结点,但请求来自公共互联网的 Azure Cosmos DB。 这种情况可能表明,虚拟机上的域名服务器 (DNS) 未配置为将帐户终结点解析为专用而不是公共 IP 地址。
- 如果请求通过预期路径到达Azure Cosmos DB,则请求被阻止,因为未为帐户配置源网络标识。 根据请求到达 Azure Cosmos DB 的路径来检查帐户的设置。
如果最近更新了帐户的防火墙配置,请记住应用更改最多需要 15 分钟。
超出存储容量的分区键
在这种情况下,通常会看到如下错误:
Response status code does not indicate success: Forbidden (403); Substatus: 1014
Partition key reached maximum size of {...} GB
解决方案
此错误表示当前分区设计和工作负载尝试存储超过给定分区键值的允许数据量。 容器中的逻辑分区数没有限制,但每个逻辑分区可以存储的数据大小有限。 可以联系支持人员了解具体情况。
不允许非数据操作
尝试使用 Microsoft Entra ID 标识执行非数据操作时,会出现这种情况。 在这种情况下,通常会看到如下错误:
Operation 'POST' on resource 'calls' is not allowed through Azure Cosmos DB endpoint
Forbidden (403); Substatus: 5300; The given request [PUT ...] cannot be authorized by AAD token in data plane.
解决方案
通过Azure Resource Manager、Azure portal、Azure CLI或Azure PowerShell执行作。
如果在使用 Microsoft Entra 身份验证对管理数据库或容器资源的方法(例如数据库或容器上的 create*、createIfNotExists、replace 或 delete 操作)时收到此错误,则这些 SDK 方法会失败,因为它们需要控制平面访问权限。 如果您只有通过基于 Microsoft Entra 角色的访问控制(RBAC)获得的数据平面访问权限,则无法执行控制平面的操作。 将管理平面 SDK 与相应的Microsoft Entra RBAC 角色(如参与者或 Cosmos DB 帐户参与者)配合使用来完成这些任务。
如果使用 Azure Functions Azure Cosmos DB 触发器,请确保触发器的 CreateLeaseContainerIfNotExists 属性未设置为 true。 使用 Microsoft Entra 标识可阻止任何非数据操作,例如创建租用容器。