Aracılığıyla paylaş


Uygulama gizli dizilerini korumaya yönelik öneriler

Bu Azure Well-Architected Framework Güvenlik denetim listesi önerisi için geçerlidir:

SE:09 Uygulama gizli dizilerini korumak için depolama alanını sağlamlaştırıp erişimi ve düzenlemeyi kısıtlayın ve bu eylemleri denetleyin. Acil durumlar için rotasyonları geliştirebilecek güvenilir ve düzenli bir döndürme süreci çalıştırın.

Bu kılavuz, uygulamalarda hassas bilgilerin güvenliğini sağlamaya yönelik önerileri açıklar. Gizli dizilerin düzgün yönetilmesi, uygulamanızın, iş yükünüzün ve ilişkili verilerinizin güvenliğini ve bütünlüğünü korumak için çok önemlidir. Gizli dizilerin yanlış işlenmesi veri ihlallerine, hizmet kesintisine, mevzuat ihlallerine ve diğer sorunlara yol açabilir.

API anahtarları, Açık Yetkilendirme (OAuth) belirteçleri ve Secure Shell (SSH) anahtarları gibi kimlik bilgileri gizli dizilerdir. İstemci tarafı OAuth belirteçleri gibi bazı kimlik bilgileri çalışma zamanında dinamik olarak oluşturulabilir. Dinamik gizli dizilerin geçici doğasına rağmen korunması gerekir. Sertifikalar ve dijital imza anahtarları gibi önemli olmayan bilgiler de hassas olabilir. Uyumluluk gereksinimleri, genellikle gizli dizi olarak kabul edilmeen yapılandırma ayarlarının uygulama gizli dizisi olarak kabul edilmesine neden olabilir.

Tanımlar 

Süre Tanım
Sertifikalar Şifreleme veya şifre çözme için ortak anahtarları tutan dijital dosyalar.
Referans Bir iletişim kanalında yayımcının veya tüketicinin kimliğini doğrulamak için kullanılan bilgiler.
Kimlik bilgisi tarama Gizli dizilerin dahil olmadığından emin olmak için kaynak kodu doğrulama işlemi.
Şifreleme Verilerin okunamaz hale getirildiği ve gizli kodla kilitlendiği işlem.
Anahtar Şifrelenmiş verileri kilitlemek veya kilidini açmak için kullanılan gizli dizi kodu.
En az ayrıcalıklı erişim bir iş işlevini tamamlamak için bir dizi izni en aza indirmeyi amaçlayan Sıfır Güven ilkesi.
Yönetilen kimlik Kaynaklara atanan ve Azure tarafından yönetilen bir kimlik.
Güvenli olmayan Sızdırıldığında iş yükünün güvenlik duruşunu tehlikeye atmayan bilgiler.
Döndürme Gizliliği tehlikeye atılırsa yalnızca sınırlı bir süre için kullanılabilir olacak şekilde gizli dizileri düzenli olarak güncelleştirme işlemi.
Gizli dizi sistemin iş yükü bileşenleri arasındaki iletişimi kolaylaştıran gizli bir bileşeni. Sızdırılırsa, gizli diziler ihlale neden olabilir.
X.509 Ortak anahtar sertifikalarının biçimini tanımlayan bir standart.

Önemli

Güvensizlere gizli diziler gibi davranma. Gizli diziler, güvenli olmayanlar için gereksiz olan ve ek maliyetlere neden olabilecek operasyonel katılık gerektirir.

Uygulamanın kullandığı API'lerin URL'leri gibi uygulama yapılandırma ayarları, güvenli olmayanlara örnektir. Bu bilgiler uygulama kodu veya uygulama gizli dizileriyle birlikte depolanmamalıdır. Bu ayarları yönetmek için Azure Uygulama Yapılandırması gibi ayrılmış bir yapılandırma yönetim sistemi kullanmayı göz önünde bulundurun. Daha fazla bilgi için bkz. Azure Uygulama Yapılandırması nedir?.

Temel tasarım stratejileri

Gizli dizi yönetimi stratejiniz, gizli dizileri mümkün olduğunca en aza indirmeli ve platform özelliklerinden yararlanarak bunları ortamla tümleştirmelidir. Örneğin, uygulamanız için yönetilen kimlik kullanıyorsanız, erişim bilgileri bağlantı dizelerine eklenmemiştir ve bilgileri bir yapılandırma dosyasında depolamak güvenlidir. Gizli dizileri depolamadan ve yönetmeden önce aşağıdaki endişe alanlarını göz önünde bulundurun:

  • Oluşturulan gizli diziler, katı erişim denetimleriyle güvenli depolamada tutulmalıdır.

  • Gizli dizi döndürme proaktif bir işlemdir, iptal ise reaktiftir.

  • Yalnızca güvenilen kimliklerin gizli dizilere erişimi olmalıdır.

  • Gizli dizilere erişimi incelemek ve doğrulamak için bir denetim kaydı tutmanız gerekir.

Kimlik hırsızlığını önlemeye, reddedilmeyi önlemeye ve bilgilere gereksiz yere maruz kalma olasılığını en aza indirmeye yardımcı olmak için bu noktaların etrafında bir strateji oluşturun.

Gizli dizi yönetimi için güvenli uygulamalar

Mümkünse gizli dizi oluşturmaktan kaçının. Sorumluluğu platforma devretmenin yollarını bulun. Örneğin, kimlik bilgilerini işlemek için platformun yerleşik yönetilen kimliklerini kullanın. Daha az gizli dizi, yüzey alanının azalmasına ve gizli dizi yönetimine daha az zaman harcanmasına neden olur.

Anahtarların üç ayrı rolü olmasını öneririz: kullanıcı, yönetici ve denetçi. Rol ayrımı, gizli dizilere yalnızca güvenilen kimliklerin uygun izin düzeyiyle erişmesini sağlamaya yardımcı olur. Geliştiricileri, yöneticileri ve diğer ilgili personeli gizli dizi yönetiminin ve en iyi güvenlik uygulamalarının önemi hakkında eğitin.

Önceden paylaşılan anahtarlar

Her tüketici için ayrı anahtarlar oluşturarak erişimi denetleyebilirsiniz. Örneğin, bir istemci önceden paylaşılan bir anahtar kullanarak üçüncü taraf API'siyle iletişim kurar. Başka bir istemcinin aynı API'ye erişmesi gerekiyorsa başka bir anahtar kullanması gerekir. İki tüketici aynı erişim desenlerine veya rollerine sahip olsa bile anahtarları paylaşmayın. Tüketici kapsamları zaman içinde değişebilir ve bir anahtar paylaşıldıktan sonra izinleri bağımsız olarak güncelleştiremez veya kullanım desenlerini ayırt edemeyebilirsiniz. Ayrı erişim, iptali de kolaylaştırır. Bir tüketicinin anahtarı tehlikeye girerse, diğer tüketicileri etkilemeden bu anahtarı iptal etmek veya döndürmek daha kolaydır.

Bu kılavuz farklı ortamlar için geçerlidir. Aynı anahtar hem üretim öncesi hem de üretim ortamları için kullanılmamalıdır. Önceden paylaşılan anahtarlar oluşturmak sizin sorumluluğundaysa, birden çok istemciyi desteklemek için birden çok anahtar oluşturduğunuzdan emin olun.

Daha fazla bilgi için bkz. Kimlik ve erişim yönetimi önerileri.

Gizli depolama

Gizli dizileri sağlamlaştırılmış bir ortamda depolamak, bekleyen ve aktarımda şifrelemek ve gizli dizilere erişimi ve değişiklikleri denetlemek için Azure Key Vault gibi bir gizli dizi yönetim sistemi kullanın. Uygulama gizli dizilerini depolamanız gerekiyorsa, kolay döndürme için bunları kaynak kodun dışında tutun.

Sertifikalar yalnızca Key Vault veya işletim sisteminin sertifika deposunda depolanmalıdır. Örneğin, X.509 sertifikasını PFX dosyasında veya diskte depolamak önerilmez. Daha yüksek bir güvenlik düzeyine ihtiyacınız varsa yazılım tabanlı gizli dizi depoları yerine donanım güvenlik modülü (HSM) özelliklerine sahip sistemleri seçin.

Denge: HSM çözümleri daha yüksek bir maliyetle sunulur. Eklenen güvenlik katmanları nedeniyle uygulama performansı üzerinde bir etki de görebilirsiniz.

Özel bir gizli dizi yönetim sistemi, uygulama gizli dizilerinin depolanmasını, dağıtılmasını ve erişimin denetlenmesini kolaylaştırır. Gizli dizi depolarına yalnızca yetkili kimliklerin ve hizmetlerin erişimi olmalıdır. Sisteme erişim izinler aracılığıyla kısıtlanabilir. İzinleri atarken her zaman en az ayrıcalıklı yaklaşımı uygulayın.

Ayrıca gizli dizi düzeyinde erişimi de denetlemeniz gerekir. Her gizli dizinin yalnızca tek bir kaynak kapsamına erişimi olmalıdır. Bir bileşenin yalnızca ihtiyaç duyduğu gizli dizileri kullanabilmesi için yalıtım sınırları oluşturun. Yalıtılmış bir bileşenin güvenliği aşılırsa, diğer gizli dizilerin ve potansiyel olarak tüm iş yükünün denetimini elde etmez. Gizli dizileri yalıtma yollarından biri birden çok anahtar kasası kullanmaktır. Ek anahtar kasaları oluşturmak için ek maliyet yoktur.

Gizli dizi erişimi için denetim ve izleme uygulayın. Gizli dizilere kimlerin eriştiği ve yetkisiz veya şüpheli etkinliklerin ne zaman belirleneceklerini günlüğe kaydetme. Güvenlik açısından günlüğe kaydetme hakkında bilgi için bkz. Güvenlik izleme ve tehdit algılama önerileri.

Gizli dizi döndürme

Gizli hijyen sağlayan bir süreç gerçekleştirin. Bir sırrın uzun ömürlü olması, bu sırrın yönetimini etkiler. Saldırı vektörlerini azaltmak için gizli diziler kullanımdan kaldırılmalı ve yeni gizli dizilerle mümkün olduğunca sık değiştirilmelidir.

OAuth erişim belirteçlerini, yaşam sürelerini dikkate alarak dikkatle işleyin. Pozlama penceresinin daha kısa bir süreye ayarlanması gerekip gerekmediğini göz önünde bulundurun. Yenileme belirteçleri, uygulamaya sınırlı maruz kalmayla güvenli bir şekilde depolanmalıdır. Yenilenen sertifikalar da yeni bir anahtar kullanmalıdır. Yenileme belirteçleri hakkında bilgi için bkz. OAuth 2.0 Adına Yenileme belirteçlerinin güvenliğini sağlama.

Gizli dizileri kullanım ömrü sona erdikten, iş yükü tarafından artık kullanılmadığından veya gizliliği tehlikeye girdikten sonra değiştirin. Buna karşılık, acil bir durum olmadıkça etkin gizli dizileri kullanımdan kaldırmayın. Erişim günlüklerini görüntüleyerek gizli dizinin durumunu belirleyebilirsiniz. Gizli dizi döndürme işlemleri iş yükünün güvenilirliğini veya performansını etkilememelidir. Sorunsuz döndürme için gizli dizilerde, tüketicilerde ve erişim yöntemlerinde yedeklilik oluşturan stratejiler kullanın.

Azure Depolama'nın döndürmeyi nasıl işlediği hakkında daha fazla bilgi için bkz. Hesap erişim anahtarlarını yönetme.

Döndürme işlemleri herhangi bir insan etkileşimi olmadan otomatik hale ve dağıtılmalıdır. Gizli dizileri döndürme kavramlarını yerel olarak destekleyen bir gizli dizi yönetim deposunda depolamak bu işlem görevini basitleştirebilir.

Gizli dizileri kullanmak için güvenli uygulamalar

Gizli dizi oluşturucu veya işleç olarak gizli dizileri güvenli bir şekilde dağıtabilmeniz gerekir. Birçok kuruluş, gizli dizileri hem kuruluş içinde hem de iş ortaklarına harici olarak güvenli bir şekilde paylaşmak için araçlar kullanır. Bir araç olmadığında, kimlik bilgilerini yetkili alıcılara düzgün bir şekilde teslim etme işlemine sahip olun. Olağanüstü durum kurtarma planlarınız gizli dizi kurtarma yordamlarını içermelidir. Anahtarın tehlikeye atıldığı veya sızdırıldığı ve isteğe bağlı olarak yeniden üretilmesi gereken durumlar için bir süreç elde edin. Gizli dizileri kullanırken güvenlik için aşağıdaki en iyi yöntemleri göz önünde bulundurun:

Sabit kodlamayı önleme

Uygulama kodu, yapılandırma dosyaları ve derleme dağıtım işlem hatları gibi kod yapıtlarında gizli dizileri statik metin olarak sabit kodlamayın. Gizli diziler okuma erişimi olan herkese açık olduğundan bu yüksek riskli uygulama kodu savunmasız hale getirir.

Kimlik bilgilerini depolama gereksinimini ortadan kaldırmak için yönetilen kimlikleri kullanarak bu durumdan kaçınabilirsiniz. Uygulamanız, kimlik sağlayıcısı (IdP) aracılığıyla diğer kaynaklarda kimlik doğrulaması yapmak için atanmış kimliğini kullanır. Gerçek gizli dizilerin yanlışlıkla açığa çıkmasını önlemek için geliştirme sırasında sahte gizli dizilerle üretim dışı ortamlarda test edin.

Uygulama kodunuzda kullanıma sunulan gizli dizileri düzenli aralıklarla algılayan ve yapıtlar oluşturan araçları kullanın. Bu araçları, kaynak kodu işlemeleri dağıtilmeden önce kimlik bilgilerini tarar git ön komut kancaları olarak ekleyebilirsiniz. Hiçbir gizli dizinin yanlışlıkla kaydedilmediğinden emin olmak için uygulama günlüklerini düzenli olarak gözden geçirin ve temizleyin. Ayrıca eş gözden geçirmeleri aracılığıyla algılamayı güçlendirebilirsiniz.

Not

Tarama araçları bir gizli dizi bulursa, bu gizli dizi gizliliği tehlikeye atılmış olarak kabul edilmelidir. İptal edilmelidir.

Gizli dizi döndürmeye yanıt verme

İş yükü sahibi olarak, kullanıcılara en az kesintiyle yeni gizli dizileri dahil edebilmeniz için gizli dizi döndürme planını ve ilkelerini anlamanız gerekir. Gizli dizi döndürüldüğünde, eski gizli dizi geçerli olmadığında ancak yeni gizli dizi yerleştirilmemişse bir pencere olabilir. Bu pencere sırasında, uygulamanın ulaşmaya çalıştığı bileşen istekleri kabul etmez. Kodda yeniden deneme mantığı oluşturarak bu sorunları en aza indirebilirsiniz. Ayrıca, birbirini etkilemeden güvenli bir şekilde değiştirilebilen birden çok kimlik bilgisine sahip olmanıza olanak sağlayan eşzamanlı erişim desenlerini de kullanabilirsiniz.

Operasyon ekibiyle birlikte çalışın ve değişiklik yönetimi sürecinin bir parçası olun. Uygulamanın artık gerekli olmayan kimlik bilgilerini kullanan bir bölümünün yetkisini aldığınızda kimlik bilgisi sahiplerine bildirmeniz gerekir.

Gizli dizi alma ve yapılandırmayı otomatik dağıtım işlem hattınızla tümleştirin. Gizli dizi alma, dağıtım sırasında gizli dizilerin otomatik olarak getirilmesini sağlamaya yardımcı olur. Gizli dizilerin yanlışlıkla günlüklere veya sürüm denetimine açıklanmasını önleyen çalışma zamanında uygulama koduna veya yapılandırmasına gizli dizi eklemek için gizli dizi ekleme desenlerini de kullanabilirsiniz.

Azure kolaylaştırma

Key Vault kullanarak gizli dizileri depolayın. Gizli dizileri Azure gizli dizi yönetim sisteminde, Key Vault, Azure Yönetilen HSM'de ve diğer konumlarda depolayın. Daha fazla bilgi için bkz. Doğru anahtar yönetimi çözümünü seçme.

Kimlik tabanlı erişim denetimini tümleştirme. Microsoft Entra kimliği ve yönetilen kimlikler gizli dizilere olan ihtiyacı en aza indirmeye yardımcı olur. Microsoft Entra Kimliği, anahtar döndürmeyi, anomalileri ve daha fazlasını işlemeye yönelik yerleşik mekanizmalarla erişim denetimi için yüksek oranda güvenli ve kullanılabilir bir deneyim sunar.

Belirli bir kapsamdaki kullanıcılara, gruplara ve uygulamalara izin atamak için Azure rol tabanlı erişim denetimini (RBAC) kullanın.

Anahtar kasalarını, izinlerini ve gizli dizilerini denetlemek için erişim modeli kullanın. Daha fazla bilgi için bkz. Erişim modeline genel bakış.

Gizli dizi algılamayı uygulama. İş yükünüzde şüpheli etkinlikleri algılayan ve uygulama kodunuzda kullanıma sunulan anahtarları düzenli aralıklarla denetleyebilen işlemleri tümleştirin. Bazı seçenekler şunlardır:

Uygulama yapılandırma dosyalarında veya sürekli tümleştirme ve sürekli teslim (CI/CD) işlem hatlarında herhangi bir ortam türü için anahtarları ve gizli dizileri depolamayın. Geliştiriciler, kimlik bilgilerine erişmek için Visual Studio Bağlı Hizmetleri'ni veya yalnızca yerel dosyaları kullanmalıdır.

Güvenlik denetim listesi

Önerilerin tamamına bakın.