Azure Key Vault azaltma yönergeleri

Azaltma, kaynakların aşırı kullanılmasını önlemek için Azure hizmetine yapılan eşzamanlı çağrı sayısını sınırlayan bir işlemdir. Azure Key Vault (AKV), yüksek hacimli istekleri işleyecek şekilde tasarlanmıştır. Aşırı sayıda istek oluşursa, istemcinizin isteklerinin azaltılması AKV hizmetinin en iyi performansını ve güvenilirliğini korumaya yardımcı olur.

Azaltma sınırları senaryoya göre değişir. Örneğin çok fazla sayıda yazma işlemi yapıyorsanız, azaltma olasılığı yalnızca okuma işlemlerinin yapıldığı durumlara göre daha yüksektir.

Key Vault sınırlarını nasıl işler?

Key Vault'taki hizmet sınırları, kaynakların kötüye kullanılmasını önler ve Key Vault'un tüm istemcileri için hizmet kalitesini güvence altına alır. Hizmet eşiği aşıldığında, Key Vault bu istemciden gelen diğer istekleri sınırlar, HTTP durum kodu 429 'u döndürür (Çok fazla istek var) ve istek başarısız olur. 429 döndüren başarısız istekler, Key Vault tarafından izlenen kısıtlama sınırlarına göre sayılmaz.

Key Vault başlangıçta dağıtım zamanında gizli dizilerinizi depolamak ve almak için tasarlanmıştır. Dünya gelişti ve Key Vault, gizli dizileri depolamak ve almak için çalışma zamanında kullanılıyor ve uygulamalar ve hizmetler genellikle Key Vault'u veritabanı gibi kullanmak istiyor. Geçerli sınırlar yüksek aktarım hızı hızlarını desteklemez.

Key Vault başlangıçta Azure Key Vault hizmet sınırları içinde belirtilen sınırlarla oluşturulmuştur. Key Vault aktarım hızınızı en üst düzeye çıkarmak için, aktarım hızınızı en üst düzeye çıkarmak için önerilen bazı yönergeler/en iyi yöntemler şunlardır:

  1. Azaltmanın yerinde olduğundan emin olun. İstemcinin 429'lar için üstel geri alma ilkelerine uygun olması ve aşağıdaki yönergelere göre yeniden denemeler yaptığınızdan emin olması gerekir.
  2. Key Vault trafiğinizi birden çok kasaya ve farklı bölgelere bölün. Her güvenlik/kullanılabilirlik etki alanı için ayrı bir kasa kullanın. Her iki bölgede olmak üzere beş uygulamanız varsa her birinde uygulama ve bölgeye özgü gizli dizileri içeren 10 kasa önerilir. Tüm işlem türleri için abonelik genelindeki bir sınır, tek tek anahtar kasası sınırının beş katıdır. Örneğin, abonelik başına HSM-diğer işlemler, abonelik başına 10 saniyede 5.000 işlemle sınırlıdır. RPS'yi doğrudan anahtar kasasına küçültmek ve/veya ani trafikle başa çıkabilmek için gizli diziyi hizmetinizde veya uygulamanızda önbelleğe almayı göz önünde bulundurun. Ayrıca gecikme süresini en aza indirmek ve farklı bir abonelik/kasa kullanmak için trafiğinizi farklı bölgeler arasında bölebilirsiniz. Tek bir Azure bölgesindeki Key Vault hizmetine abonelik sınırından fazlasını göndermeyin.
  3. Azure Key Vault'tan aldığınız gizli dizileri bellekte önbelleğe alın ve mümkün olduğunca bellekten yeniden kullanın. Azure Key Vault'tan yeniden okuma, yalnızca önbelleğe alınan kopya çalışmayı durdurduğunda (örneğin, kaynakta döndürüldüğünden).
  4. Key Vault, kendi hizmet gizli dizileriniz için tasarlanmıştır. Müşterilerinizin gizli dizilerini depoluyorsanız (özellikle yüksek aktarım hızına sahip anahtar depolama senaryoları için), anahtarları şifrelemeli bir veritabanına veya depolama hesabına yerleştirmeyi ve yalnızca birincil anahtarı Azure Key Vault'ta depolamayı göz önünde bulundurun.
  5. Ortak anahtar işlemlerini şifreleme, sarmalama ve doğrulama işlemleri Key Vault erişimi olmadan gerçekleştirilebilir. Bu işlem yalnızca azaltma riskini azaltmakla kalmaz, aynı zamanda güvenilirliği artırır (ortak anahtar malzemesini düzgün önbelleğe aldığınız sürece).
  6. Bir hizmetin kimlik bilgilerini depolamak için Key Vault kullanıyorsanız, bu hizmetin doğrudan kimlik doğrulaması için Microsoft Entra kimlik doğrulamasını desteklenip desteklemediğini denetleyin. Key Vault artık Microsoft Entra belirtecini kullanabildiği için bu, Key Vault üzerindeki yükü azaltır, güvenilirliği artırır ve kodunuzu basitleştirir. Birçok hizmet Microsoft Entra kimlik doğrulamasını kullanmaya geçti. Azure kaynakları için yönetilen kimlikleri destekleyen hizmetler sayfasında geçerli listeye bakın.
  7. Geçerli RPS sınırlarının altında kalmak için yükünüzü/dağıtımınızı daha uzun bir süre boyunca kademelendirmeyi göz önünde bulundurun.
  8. Uygulamanız aynı gizli dizileri okuması gereken birden çok düğümden oluşuyorsa, bir varlığın Key Vault'tan gizli diziyi okuduğu ve tüm düğümlere hayran kaldığı bir yayma düzeni kullanmayı göz önünde bulundurun. Alınan gizli dizileri yalnızca bellekte önbelleğe alın.

Hizmet sınırlarına yanıt olarak uygulamanızı kısıtlama

Hizmetiniz kısıtlandığında uygulamanız gereken en iyi yöntemler şunlardır:

  • İstek başına işlem sayısını azaltın.
  • İstek sıklığını azaltın.
  • Hemen yeniden denemelerden kaçının.
    • Tüm istekler kullanım sınırlarınıza göre tahakkuk eder.

Uygulamanızın hata işlemesini uyguladığınızda, istemci tarafı azaltma gereksinimini algılamak için HTTP hata kodu 429'ı kullanın. İstek bir HTTP 429 hata koduyla yeniden başarısız olursa azure hizmet sınırıyla karşılaşmaya devam edersiniz. Önerilen istemci tarafı azaltma yöntemini kullanmaya devam edin ve isteği başarılı olana kadar yeniden deneyin.

Üstel geri alma uygulayan kod aşağıdadır:

SecretClientOptions options = new SecretClientOptions()
    {
        Retry =
        {
            Delay= TimeSpan.FromSeconds(2),
            MaxDelay = TimeSpan.FromSeconds(16),
            MaxRetries = 5,
            Mode = RetryMode.Exponential
         }
    };
    var client = new SecretClient(new Uri("https://keyVaultName.vault.azure.net"), new DefaultAzureCredential(),options);
                                 
    //Retrieve Secret
    secret = client.GetSecret(secretName);

Bu kodu bir istemci C# uygulamasında kullanmak basittir.

HTTP hata kodu 429'da, üstel geri çekilme yaklaşımını kullanarak istemcinizi azaltmaya başlayın:

  1. 1 saniye bekleyin, isteği yeniden deneyin
  2. Hala kısıtlanıyorsa 2 saniye bekleyin, isteği yeniden deneyin
  3. Hala kısıtlanıyorsa 4 saniye bekleyin, isteği yeniden deneyin
  4. Hala kısıtlanıyorsa 8 saniye bekleyin, isteği yeniden deneyin
  5. Hala kısıtlanıyorsa 16 saniye bekleyin, isteği yeniden deneyin

Bu noktada HTTP 429 yanıt kodları almıyor olmalısınız.

Ayrıca bkz.

Microsoft Bulutu'nda azaltmanın daha derin bir yönü için bkz . Azaltma Düzeni.