Partilhar via


Diagnosticar e solucionar problemas de exceções proibidas do Azure Cosmos DB

APLICA-SE A: NoSQL

O código de status HTTP 403 representa que a solicitação está proibida de ser concluída.

Pedidos de bloqueio de firewall

As solicitações de plano de dados podem chegar ao Azure Cosmos DB por meio dos três caminhos a seguir.

  • Internet pública (IPv4)
  • Ponto final de serviço
  • Ponto final privado

Quando uma solicitação de plano de dados é bloqueada com 403 Proibido, a mensagem de erro especifica por qual dos três caminhos anteriores a solicitação chegou ao 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.

Solução

Entenda por qual caminho a solicitação deve chegar ao Azure Cosmos DB.

  • Se a mensagem de erro mostrar que a solicitação não chegou ao Azure Cosmos DB pelo caminho esperado, é provável que o problema esteja na configuração do lado do cliente. Verifique novamente a configuração do lado do cliente seguindo a documentação.
    • Internet pública: configure o firewall IP no Azure Cosmos DB.
    • Ponto de extremidade de serviço: configure o acesso ao Azure Cosmos DB a partir de redes virtuais. Considere se você esperava usar o ponto de extremidade de serviço, mas a solicitação chegou ao Azure Cosmos DB da Internet pública. Essa situação pode indicar que a sub-rede na qual o cliente estava sendo executado não habilitou o ponto de extremidade de serviço para o Azure Cosmos DB.
    • Ponto de extremidade privado: configure o Link Privado do Azure para uma conta do Azure Cosmos DB. Considere também se você esperava usar o ponto de extremidade privado, mas a solicitação chegou ao Azure Cosmos DB da Internet pública. Essa situação pode indicar que o servidor de nomes de domínio (DNS) na máquina virtual não foi configurado para resolver o ponto de extremidade da conta para o endereço IP privado em vez do endereço IP público.
  • Se a solicitação chegou ao Azure Cosmos DB pelo caminho esperado, a solicitação foi bloqueada porque a identidade da rede de origem não estava configurada para a conta. Verifique as configurações da conta dependendo do caminho que a solicitação chegou ao Azure Cosmos DB.

Se você atualizou recentemente as configurações de firewall da conta, lembre-se de que as alterações podem levar até 15 minutos para serem aplicadas.

Chave de partição excedendo o armazenamento

Nesse cenário, é comum ver erros como os que estão aqui:

Response status code does not indicate success: Forbidden (403); Substatus: 1014
Partition key reached maximum size of {...} GB

Solução

Este erro significa que seu design de particionamento atual e carga de trabalho está tentando armazenar mais do que a quantidade permitida de dados para um determinado valor de chave de partição. Não há limite para o número de partições lógicas em seu contêiner, mas o tamanho dos dados que cada partição lógica pode armazenar é limitado. Você pode entrar em contato com o suporte para esclarecimentos.

Operações sem dados não são permitidas

Esse cenário acontece ao tentar executar operações que não são de dados usando identidades do Microsoft Entra. Nesse cenário, é comum ver erros como os que estão aqui:

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.

Solução

Execute a operação através do Azure Resource Manager, do portal do Azure, da CLI do Azure ou do Azure PowerShell. Se você estiver usando o Gatilho do Azure Cosmos DB do Azure Functions, verifique se a CreateLeaseContainerIfNotExists propriedade do gatilho não está definida como true. O uso de identidades do Microsoft Entra bloqueia qualquer operação que não seja de dados, como a criação do contêiner de concessão.