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