Diagnostiquer et résoudre les problèmes liés à des exceptions interdites Azure Cosmos DB
S’APPLIQUE À : NoSQL
Le code d’état HTTP 403 indique que la demande n’est pas autorisée à se terminer.
Requêtes de blocage de pare-feu
Les requêtes de plan de données peuvent être envoyées à Azure Cosmos DB via les trois chemins suivants.
- Internet public (IPv4)
- Point de terminaison de service
- Point de terminaison privé
Lorqu’une requête de plan de données est bloquée avec 403 Interdit, le message d’erreur spécifie par lequel des trois chemins précédents la requête est parvenue à 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.
Solution
Déterminez à partir de quel chemin la requête est censée parvenir à Azure Cosmos DB.
- Si le message d’erreur indique que la requête n’est pas parvenue à Azure Cosmos DB via le chemin attendu, le problème est probablement lié à la configuration côté client. Vérifiez votre configuration côté client conformément à la documentation.
- Internet public : Configurer un pare-feu IP dans Azure Cosmos DB.
- Point de terminaison de service : Configurer l’accès à Azure Cosmos DB à partir de réseaux virtuels. Supposons que vous prévoyiez d’utiliser le point de terminaison de service, mais que la demande est arrivée à Azure Cosmos DB à partir de l’Internet public. Cette situation peut indiquer que le sous-réseau dans lequel le client s’exécute n’a pas activé le point de terminaison de service vers Azure Cosmos DB.
- Point de terminaison privé : Configurer Azure Private Link pour un compte Azure Cosmos DB. Supposons maintenant que vous prévoyiez d’utiliser un point de terminaison privé, mais que la demande est arrivée à Azure Cosmos DB à partir de l’Internet public. Cette situation peut indiquer que le serveur de noms de domaine (DNS) sur la machine virtuelle n’a pas été configuré pour résoudre le point de terminaison de compte privé au lieu de l’adresse IP publique.
- Si la requête est parvenue à Azure Cosmos DB via le chemin attendu, la requête a été bloquée car l’identité du réseau source n’a pas été configurée pour le compte. Vérifiez les paramètres du compte en fonction du chemin par lequel la requête est parvenue à Azure Cosmos DB.
- Internet public : vérifiez les configurations d’accès réseau public et de filtre de plage d’adresses IP du compte.
- Point de terminaison de service : vérifiez les configurations d’accès réseau public et de filtre de réseau virtuel du compte.
- Point de terminaison privé : vérifiez la configuration du point de terminaison privé du compte et la configuration DNS privée du client. Cela peut être dû à l’accès à un compte à partir d’un point de terminaison privé configuré pour un autre compte.
Si vous avez récemment mis à jour les configurations de pare-feu du compte, gardez à l’esprit que l’application des modifications peut nécessiter jusqu’à 15 minutes.
Clé de partition dépassant le stockage
Dans ce scénario, il est courant de voir des erreurs similaires à celles-ci :
Response status code does not indicate success: Forbidden (403); Substatus: 1014
Partition key reached maximum size of {...} GB
Solution
Cette erreur signifie que vos conception de partitionnement et charge de travail actuelles essaient de stocker une quantité de données supérieure à celle autorisée pour une valeur de clé de partition donnée. Le nombre de partitions logiques dans votre conteneur n’est pas limitée, contrairement à la taille des données que chaque partition logique peut stocker. Vous pouvez contacter le support technique pour obtenir des clarifications.
Les opérations hors données ne sont pas autorisées
Ce scénario se produit lorsque vous essayez d’effectuer des opérations autres que des données à l’aide d’identités Microsoft Entra. Dans ce scénario, il est courant de voir des erreurs similaires à celles-ci :
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.
Solution
Effectuez l’opération via Azure Resource Manager, le portail Azure, Azure CLI ou Azure PowerShell.
Si vous utilisez le déclencheur Azure Cosmos DB Azure Functions, vérifiez que la propriété CreateLeaseContainerIfNotExists
de ce déclencheur n’est pas définie sur true
. L’utilisation des identités Microsoft Entra bloque toute opération hors données, comme la création du conteneur de baux.