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ış birendpoint'ten farklı. - Eşleşen bölgesi olmayan özel bir uç nokta —
endpoint: https://dynamodb.eu-west-2.amazonaws.comayarladınız ama istemci bölgesinieu-west-1bı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
- İstemci bölgesini uç noktayla eşleştirin.
dynamodb.<region>.amazonaws.com'u gösteriyorsanız, istemcininregion'ını aynı<region>'a ayarlayın. - 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
endpointgeçersiz kılmalarını bırakın. - Bölge kodunun geçerli olduğunu (
us-east-1,eu-west-2, …) ve gerçekten ayarlandığını doğrulayın —AWS_REGION/AWS_DEFAULT_REGIONve varsa bir yapılandırma dosyasını kontrol edin. - Ü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
- Troubleshoot Signature Version 4 signing (2026-07-13 tarihinde doğrulandı)
- Create a signed AWS API request (2026-07-13 tarihinde doğrulandı)
İlgili hatalar
- The request signature we calculated does not match — daha geniş bir SigV4 imza uyuşmazlığı (hatalı gizli anahtar veya kanonikleştirme).
- The security token included in the request is invalid — bir bölge kapsamı yerine hatalı ya da süresi geçmiş kimlik bilgileri.
- You must specify a region — hiç bölge yapılandırılmamış.
- Öğrenin: Connect to DynamoDB Local & LocalStack
Kaynaklar
- Troubleshoot Signature Version 4 signing for AWS API requests — IAM User Guide (credential scope errors)
- Create a signed AWS API request — IAM User Guide (credential scope format)
- Elements of an AWS API request signature — IAM User Guide
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide
En son 2026-07-13 tarihinde yukarıda bağlantısı verilen resmi AWS belgelerine karşı doğrulandı.