Diagnozowanie i rozwiązywanie problemów z wyjątkami zabronionych usługi Azure Cosmos DB

DOTYCZY: NoSQL

Kod stanu HTTP 403 reprezentuje żądanie jest zabronione do ukończenia.

Żądania blokowania zapory

Żądania płaszczyzny danych mogą przychodzić do usługi Azure Cosmos DB za pośrednictwem następujących trzech ścieżek.

  • Publiczny Internet (IPv4)
  • Punkt końcowy usługi
  • Prywatny punkt końcowy

Gdy żądanie płaszczyzny danych zostanie zablokowane przy użyciu błędu 403 Zabronione, komunikat o błędzie określi, za pomocą których z powyższych trzech ścieżek żądanie dotarło do usługi 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.

Rozwiązanie

Dowiedz się, która ścieżka to oczekiwane żądanie do usługi Azure Cosmos DB.

  • Jeśli komunikat o błędzie pokazuje, że żądanie nie dotarło do usługi Azure Cosmos DB za pośrednictwem oczekiwanej ścieżki, problem prawdopodobnie dotyczy konfiguracji po stronie klienta. Dokładnie sprawdź konfigurację po stronie klienta, postępując zgodnie z dokumentacją.
    • Publiczny Internet: skonfiguruj zaporę ip w usłudze Azure Cosmos DB.
    • Punkt końcowy usługi: skonfiguruj dostęp do usługi Azure Cosmos DB z sieci wirtualnych (VNet). Jeśli na przykład oczekujesz użycia punktu końcowego usługi, ale żądanie do usługi Azure Cosmos DB przyszło za pośrednictwem publicznego Internetu, być może podsieć, w której uruchomiono klienta, nie włączyła punktu końcowego usługi do usługi Azure Cosmos DB.
    • Prywatny punkt końcowy: skonfiguruj usługę Azure Private Link dla konta usługi Azure Cosmos DB. Jeśli na przykład oczekujesz, że użyjesz prywatnego punktu końcowego, ale żądanie do usługi Azure Cosmos DB przyszło za pośrednictwem publicznego Internetu, być może usługa DNS na maszynie wirtualnej nie została skonfigurowana do rozpoznawania punktu końcowego konta do prywatnego adresu IP, więc zamiast tego przeszedł przez publiczny adres IP konta.
  • Jeśli żądanie dotarło do usługi Azure Cosmos DB za pośrednictwem oczekiwanej ścieżki, żądanie zostało zablokowane, ponieważ tożsamość sieci źródłowej nie została skonfigurowana do zezwalania na konto. Sprawdź ustawienia konta w zależności od ścieżki, którą żądanie dotarło do usługi Azure Cosmos DB.
    • Publiczny Internet: sprawdź konfiguracje filtrów zakresu adresów IP i dostępu do sieci publicznej konta.
    • Punkt końcowy usługi: sprawdź konfiguracje dostępu do sieci publicznej i filtru sieci wirtualnej konta.
    • Prywatny punkt końcowy: sprawdź konfigurację prywatnego punktu końcowego konta i prywatną konfigurację DNS klienta. Może to być spowodowane uzyskaniem dostępu do konta z prywatnego punktu końcowego skonfigurowanego dla innego konta.

Jeśli ostatnio zaktualizowano konfiguracje zapory konta, należy pamiętać, że zastosowanie zmian może potrwać do 15 minut.

Klucz partycji przekraczający magazyn

W tym scenariuszu często występują błędy podobne do poniższych:

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

Rozwiązanie

Ten błąd oznacza, że bieżący projekt partycjonowania i obciążenie próbuje przechowywać więcej niż dozwoloną ilość danych dla danej wartości klucza partycji. Nie ma limitu liczby partycji logicznych w kontenerze, ale rozmiar danych, które może przechowywać każda partycja logiczna, jest ograniczony. Aby uzyskać wyjaśnienia, możesz skontaktować się z pomocą techniczną.

Operacje niezwiązane z danymi są niedozwolone

Ten scenariusz występuje podczas próby wykonania operacji innych niż dane przy użyciu tożsamości firmy Microsoft Entra. W tym scenariuszu często występują błędy podobne do poniższych:

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.

Rozwiązanie

Wykonaj operację za pomocą usługi Azure Resource Manager, witryny Azure Portal, interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell. Jeśli używasz wyzwalacza usługi Azure Functions w usłudze Azure Cosmos DB, upewnij się, że CreateLeaseContainerIfNotExists właściwość wyzwalacza nie jest ustawiona na truewartość . Użycie tożsamości firmy Microsoft Entra blokuje wszelkie operacje inne niż dane, takie jak tworzenie kontenera dzierżawy.

Następne kroki