Aracılığıyla paylaş


Azure Cosmos DB yasak özel durumlarını tanılama ve sorunlarını giderme

UYGULANANLAR: NoSQL

403 HTTP durum kodu, isteğin tamamlanmasının yasak olduğunu temsil eder.

Güvenlik duvarı engelleme istekleri

Veri düzlemi istekleri Azure Cosmos DB'ye aşağıdaki üç yol üzerinden gelebilir.

  • Genel İnternet (IPv4)
  • Hizmet uç noktası
  • Özel uç nokta

Bir veri düzlemi isteği 403 Yasak ile engellendiğinde, hata iletisi isteğin Azure Cosmos DB'ye gelen önceki üç yoldan hangisi aracılığıyla geldiğini belirtir.

  • Request originated from client IP {...} through public internet.
  • Request originated from client VNET through service endpoint.
  • Request originated from client VNET through private endpoint.

Çözüm

İsteğin Azure Cosmos DB'ye gelmesinin beklendiği yolu anlayın.

  • Hata iletisi isteğin Azure Cosmos DB'ye beklenen yol üzerinden gelmediğini gösteriyorsa, sorun istemci tarafı kurulumuyla ilgili olabilir. aşağıdaki belgeleri izleyerek istemci tarafı kurulumunuzu bir kez daha denetleyin.
    • Genel İnternet: Azure Cosmos DB'de IP güvenlik duvarını yapılandırın.
    • Hizmet uç noktası: Sanal ağlardan Azure Cosmos DB'ye erişimi yapılandırın. Hizmet uç noktasını kullanmayı beklediğiniz halde isteğin genel İnternet'ten Azure Cosmos DB'ye gelip gelmediğini göz önünde bulundurun. Bu durum, istemcinin çalıştırıldığı alt ağın Azure Cosmos DB için hizmet uç noktasını etkinleştirmediğini gösterebilir.
    • Özel uç nokta: Azure Cosmos DB hesabı için Azure Özel Bağlantı yapılandırın. Ayrıca özel uç nokta kullanmayı bekliyor ancak isteğin genel İnternet'ten Azure Cosmos DB'ye gelip gelmediğini de göz önünde bulundurun. Bu durum, sanal makinedeki etki alanı adı sunucusunun (DNS) hesap uç noktasını genel IP adresi yerine özel olarak çözümlemek için yapılandırılmadığını gösterebilir.
  • İstek Azure Cosmos DB'ye beklenen yol üzerinden geldiyse, kaynak ağ kimliği hesap için yapılandırılmadığından istek engellendi. İsteğin Azure Cosmos DB'ye geldiği yola bağlı olarak hesabın ayarlarını denetleyin.
    • Genel İnternet: Hesabın genel ağ erişimini ve IP aralığı filtre yapılandırmalarını denetleyin.
    • Hizmet uç noktası: Hesabın genel ağ erişimini ve sanal ağ filtresi yapılandırmalarını denetleyin.
    • Özel uç nokta: Hesabın özel uç nokta yapılandırmasını ve istemcinin özel DNS yapılandırmasını denetleyin. Bu sorun, farklı bir hesap için ayarlanmış özel bir uç noktadan hesaba erişimden kaynaklanıyor olabilir.

Hesabın güvenlik duvarı yapılandırmalarını yakın zamanda güncelleştirdiyseniz değişikliklerin uygulanması 15 dakika kadar sürebilir.

Depolama alanını aşan bölüm anahtarı

Bu senaryoda, buradaki gibi hataları görmek yaygın bir durumdur:

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

Çözüm

Bu hata, geçerli bölümleme tasarımınızın ve iş yükünüzün belirli bir bölüm anahtarı değeri için izin verilen miktardan daha fazla veri depolamaya çalıştığı anlamına gelir. Kapsayıcınızdaki mantıksal bölüm sayısıyla ilgili bir sınır yoktur, ancak her mantıksal bölümün depolayabileceğiniz verilerin boyutu sınırlıdır. Açıklama için desteğe ulaşabilirsiniz.

Veri dışı işlemlere izin verilmiyor

Bu senaryo, Microsoft Entra kimliklerini kullanarak veri dışı işlemler gerçekleştirmeye çalışırken oluşur. Bu senaryoda, buradaki gibi hataları görmek yaygın bir durumdur:

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.

Çözüm

İşlemi Azure Resource Manager, Azure portalı, Azure CLI veya Azure PowerShell aracılığıyla gerçekleştirin. Azure İşlevleri Azure Cosmos DB Tetikleyicisi kullanıyorsanız tetikleyicinin CreateLeaseContainerIfNotExists özelliğinin olarak trueayarlı olmadığından emin olun. Microsoft Entra kimliklerini kullanmak, kiralama kapsayıcısı oluşturma gibi veri dışı işlemleri engeller.