Diagnóstico y solución de problemas de excepciones de solicitudes prohibidas de Azure Cosmos DB
SE APLICA A: NoSQL
El código de estado HTTP 403 significa que se prohíbe que se complete la solicitud.
Solicitudes de bloqueo de firewall
Las solicitudes del plano de datos pueden llegar a Azure Cosmos DB a través de las tres rutas de acceso siguientes.
- Red pública de Internet (IPv4)
- Punto de conexión de servicio
- Punto de conexión privado
Cuando una solicitud del plano de datos se bloquea con el error 403 Prohibido, el mensaje de error especifica a través de cuál de las tres rutas de acceso anteriores llegó la solicitud a 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.
Solución
Determine a través de qué ruta de acceso se espera que llegue la solicitud a Azure Cosmos DB.
- Si el mensaje de error muestra que la solicitud no llegó a Azure Cosmos DB a través de la ruta de acceso esperada, es probable que el problema se deba a la configuración del cliente. Compruebe la configuración del lado cliente en función de las documentaciones siguientes.
- Red pública de Internet: Configuración del firewall de IP en Azure Cosmos DB.
- Punto de conexión de servicio: Configuración del acceso a Azure Cosmos DB desde redes virtuales. Considere si esperaba usar el punto de conexión de servicio, pero la solicitud llegó a Azure Cosmos DB desde la red pública de Internet. Esta situación podría indicar que la subred en la que se estaba ejecutando el cliente no habilitó el punto de conexión de servicio para Azure Cosmos DB.
- Punto de conexión privado: Configuración de Azure Private Link para una cuenta de Azure Cosmos DB. Considere también si esperaba usar el punto de conexión privado, pero la solicitud llegó a Azure Cosmos DB desde la red pública de Internet. Esta situación podría indicar que el servidor de nombres de dominio (DNS) de la máquina virtual no estaba configurado para resolver el punto de conexión de cuenta en el privado en lugar de la dirección IP pública.
- Si la solicitud llegó a Azure Cosmos DB a través de la ruta de acceso esperada, la solicitud se bloqueó porque la identidad de la red de origen no estaba configurada para la cuenta. Compruebe la configuración de la cuenta en función de la ruta de acceso a través de la que llegó la solicitud a Azure Cosmos DB.
- Red de Internet pública: compruebe las configuraciones de filtro de intervalo IP y el acceso a la red pública de la cuenta.
- Punto de conexión de servicio: compruebe las configuraciones de filtro de red virtual y el acceso de red pública de la cuenta.
- Punto de conexión privado: compruebe la configuración de DNS privado del cliente y la configuración del punto de conexión privado de la cuenta. Este problema podría deberse al acceso a la cuenta desde un punto de conexión privado que esté configurado para otra cuenta.
Si actualizó recientemente las configuraciones de firewall de la cuenta, tenga en cuenta que los cambios pueden tardar hasta 15 minutos en aplicarse.
Clave de partición que supera el almacenamiento
En este escenario, es habitual ver errores como los siguientes:
Response status code does not indicate success: Forbidden (403); Substatus: 1014
Partition key reached maximum size of {...} GB
Solución
Este error significa que la carga de trabajo y el diseño de creación de particiones actuales están intentando almacenar más de la cantidad de datos permitida para un valor de clave de partición determinado. No hay ningún límite en el número de particiones lógicas del contenedor, pero el tamaño de los datos que puede almacenar cada partición lógica es limitado. Puede comunicarse con el soporte técnico para que le den explicaciones.
No se permiten operaciones que no son de datos
Este escenario se produce al intentar realizar operaciones que no son de datos mediante identidades de Microsoft Entra. En este escenario, es habitual ver errores como los siguientes:
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.
Solución
Realice la operación mediante Azure Resource Manager, Azure Portal, la CLI de Azure o Azure PowerShell.
Si usa el desencadenador de Azure Cosmos DB de Azure Functions, asegúrese de que la propiedad CreateLeaseContainerIfNotExists
del desencadenador no esté establecida en true
. El uso de identidades de Microsoft Entra bloquea cualquier operación que no sea de datos, como la creación del contenedor de concesión.