Диагностика и устранение неполадок с исключениями запрета доступа в Azure Cosmos DB

ОБЛАСТЬ ПРИМЕНЕНИЯ: NoSQL

Код состояния HTTP 403 означает, что выполнение запроса запрещено.

Брандмауэр блокирует запросы

Запросы плоскости данных могут поступать в Azure Cosmos DB с помощью следующих трех путей.

  • Общедоступный Интернет (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 через ожидаемый путь, проблема, скорее всего, будет выполнена с настройкой на стороне клиента. Проверьте настройки на стороне клиента в соответствии с документацией.
    • Общедоступный Интернет. Настройка брандмауэра IP-адресов в Azure Cosmos DB.
    • Конечная точка службы. Настройка доступа к Azure Cosmos DB из виртуальных сетей (VNet). Например, если вы планируете использовать конечную точку службы, но запрос пришел в Azure Cosmos DB через общедоступный Интернет, возможно, подсеть, в которую клиент работал, не включает конечную точку службы в Azure Cosmos DB.
    • Частная конечная точка: настройка Приватный канал Azure для учетной записи Azure Cosmos DB. Например, если вы планируете использовать частную конечную точку, но запрос пришел в Azure Cosmos DB через общедоступный Интернет, возможно, DNS на виртуальной машине не настроен для разрешения конечной точки учетной записи на частный IP-адрес, поэтому он прошел через общедоступный IP-адрес учетной записи.
  • Если запрос пришел в Azure Cosmos DB через ожидаемый путь, запрос был заблокирован, так как исходное сетевое удостоверение не было настроено для учетной записи. Проверьте параметры учетной записи в зависимости от пути, по которому запрос пришел в Azure Cosmos DB.
    • Общедоступный Интернет. Проверьте конфигурацию доступа к общедоступным сетям и фильтрации диапазонов IP-адресов учетной записи.
    • Конечная точка службы. Проверьте конфигурацию доступа к общедоступным сетям и фильтрации виртуальной сети учетной записи.
    • Частная конечная точка. Проверьте конфигурацию частной конечной точки учетной записи и конфигурацию частных DNS клиента. Это может быть вызвано доступом к учетной записи с частной конечной точки, настроенной для другой учетной записи.

Если вы недавно обновили конфигурацию брандмауэра учетной записи, помните, что для применения изменений может потребоваться до 15 минут.

Ключ секции, превышающий объем хранилища

В таком сценарии часто появляются ошибки, подобные следующей:

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

Решение

Эта ошибка означает, что ваша текущая схема секционирования и рабочая нагрузка пытаются сохранить объем данных, превышающий допустимый для заданного значения ключа секции. Количество логических секций в контейнере не ограничено, но размер данных, которые может хранить каждый логический раздел, ограничен. Более подробную информацию можно получить в службе поддержки.

Операции, не связанные с данными, запрещены

Этот сценарий происходит при попытке выполнения операций без данных с помощью удостоверений Microsoft Entra. В таком сценарии часто появляются ошибки, подобные следующей:

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, Azure CLI или Azure PowerShell. Если вы используете триггер Функции Azure Azure Cosmos DB, убедитесь, что CreateLeaseContainerIfNotExists свойство триггера не заданоtrue. Использование удостоверений Microsoft Entra блокирует любую операцию без данных, например создание контейнера аренды.

Следующие шаги