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 ci-dessus 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 (VNet). Par exemple, si vous prévoyez d’utiliser un point de terminaison de service mais que la requête a été envoyée à Azure Cosmos DB via l’Internet public, il est possible que le sous-réseau sur lequel le client s’exécutait n’ait 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. Par exemple, si vous prévoyez d’utiliser un point de terminaison privé mais que la requête a été envoyée à Azure Cosmos DB via l’Internet public, le système DNS de la machine virtuelle n’a peut-être pas été configuré pour résoudre le point de terminaison de compte vers l’adresse IP privée, et il est donc passé à la place par l’adresse IP publique du compte.
  • 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 être autorisé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-dessous :

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 non liées à des données ne sont pas autorisées

Ce scénario se produit lorsque tentative 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-dessous :

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 non-data, telle que la création du conteneur de baux.

Étapes suivantes