Credential should be scoped to a valid region

TL;DR — Signature Version 4, her isteğin kimlik bilgisi kapsamına bir bölge gömer. Bu hata, o kapsamdaki bölgenin gerçekte ulaştığınız uç noktanın bölgesiyle eşleşmediği anlamına gelir — bir bölge için imzaladınız ve isteği başka birine gönderdiniz (ya da geçersiz bir bölge kodu kullandınız). İstemcinin yapılandırılmış bölgesini çağırdığınız uç noktayla eşleştirin.

Ne anlama gelir

InvalidSignatureException: Credential should be scoped to a valid region, not 'us-west-1'.

İmzalanmış her AWS isteği bir kimlik bilgisi kapsamı taşır — imzanın üzerinde hesaplandığı bir YYYYMMDD/region/service/aws4_request dizesi (bölge ve hizmet kodları küçük harf olmalıdır). AWS, beklenen imzayı isteği alan uç noktadan yeniden türetir. Kapsamınıza gömülü bölge, isteğe hizmet veren bölge değilse, doğrulama bu mesajla başarısız olur. Bu, bölge düzeltilene kadar istemci tarafında, yeniden denenebilir olmayan bir HTTP 400'dür.

Neden olur

  • Bir bölge için imzalandı, başka birine gönderildi — SDK'nın yapılandırılmış region'ı, farklı bir bölgeyi gösteren sabit kodlanmış veya geçersiz kılınmış bir endpoint'ten farklı.
  • Eşleşen bölgesi olmayan özel bir uç noktaendpoint: https://dynamodb.eu-west-2.amazonaws.com ayarladınız ama istemci bölgesini eu-west-1 bıraktınız.
  • Geçersiz veya boş bir bölge dizesi — bir yazım hatası ya da ayarlanmamış bir ortam değişkeni, AWS'nin geçerli olarak kabul edemeyeceği bir kapsam verir.
  • İsteği, imzalandığı uç noktadan farklı bir bölgesel uç noktaya ileten bir proxy veya ağ geçidi.

Nasıl düzeltilir

  1. İstemci bölgesini uç noktayla eşleştirin. dynamodb.<region>.amazonaws.com'u gösteriyorsanız, istemcinin region'ını aynı <region>'a ayarlayın.
  2. Yalnızca bölgeyi ayarlamayı tercih edin ve uç noktayı SDK'nın oluşturmasına izin verin — gerçekten gerekmedikçe (örneğin DynamoDB Local) manuel endpoint geçersiz kılmalarını bırakın.
  3. Bölge kodunun geçerli olduğunu (us-east-1, eu-west-2, …) ve gerçekten ayarlandığını doğrulayınAWS_REGION/AWS_DEFAULT_REGION ve varsa bir yapılandırma dosyasını kontrol edin.
  4. Üstlenilen rol veya bölgeler arası kurulumlar için, isteğin başka bir yerden devralınan bir varsayılanla değil, göndermeyi amaçladığınız bölgeyle imzalandığını doğrulayın.

DynamoDB Local için, uç noktayı http://localhost:8000'e yöneltin ve istemciye tutarlı herhangi bir bölge verin — bölgenin yalnızca istemcinin imzaladığıyla eşleşmesi gerekir.

Önce DynoTable’da kontrol et

DynoTable her isteği aktif profile'de depolanan bölgeyle imzalar. Ayarlar → Profiller, bölgeyi ve isteğe bağlı özel uç noktayı tek bir formda gösterir; bunları birlikte değiştirin ve ardından Bağlantıyı Test Edin. Bu, endpoint'nin eu-west-2'i işaret ettiği ve region'nin eu-west-1 olarak kaldığı klasik SDK hata modunu ortadan kaldırır.

Uygulama kodunda hata ayıklamadan önce hangi profilin (ve dolayısıyla hangi kimlik bilgisi kapsamının) yayında olduğunu onaylamak için ⌘P tuşuna basın. Yerel için http://localhost:8000 uç noktasını ve eşleşen herhangi bir bölgeyi aynı profilde tutun. Profil bağlandıktan sonra, bu kapsamda okumaların başarılı olduğunu kanıtlamak için query builder'yı kullanın.

Kaynaklar

İlgili hatalar

Kaynaklar

En son 2026-07-13 tarihinde yukarıda bağlantısı verilen resmi AWS belgelerine karşı doğrulandı.

Console olmadan DynamoDB ile çalış

DynamoDB’nin çalıştıramadığı gerçek SQL’i çalıştıran hızlı bir DynamoDB masaüstü istemcisi — JOINs, GROUP BY, toplamalar — görsel düzenleme ve kendi Bedrock anahtarların üzerinde bir yapay zekâ aracısıyla.

30 günlük ücretsiz deneme, kredi kartı yok — ardından süre sınırı olmayan Ücretsiz plan.