Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu Azure Well-Architected Framework Güvenliği denetim listesi önerisi için geçerlidir:
| SE:09 | Depolamalarını güçlendirerek, erişim ve işlemeyi kısıtlayarak ve bu eylemleri denetleyerek uygulama gizli dizilerini koruyun. Acil durumlar için rotasyonları geliştirebilen güvenilir ve düzenli bir döndürme işlemi çalıştırın. |
|---|
Bu kılavuzda, uygulamalarda hassas bilgilerin güvenliğini sağlamaya yönelik öneriler açıklanmaktadır. 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 gereksiz bilgiler de hassas olabilir. Uyumluluk gereksinimleri, genellikle gizli dizi olarak kabul edilmeen yapılandırma ayarlarının uygulama gizli dizileri olarak kabul edilmesine neden olabilir.
Tanımlar
| Terim | Tanım |
|---|---|
| Sertifikalar | Şifreleme veya şifre çözme için ortak anahtarları tutan dijital dosyalar. |
| Credentials | bir iletişim kanalında yayımcının veya tüketicinin kimliğini doğrulamak için kullanılan bilgiler. |
| Kimlik bilgisi taraması | Gizli dizilerin dahil olmadığından emin olmak için kaynak kodu doğrulama işlemi. |
| Encryption | Verilerin okunamaz hale getirildiği ve gizli kodla kilitlendiği işlem. |
| Key | Şifrelenmiş verileri kilitlemek veya kilidini açmak için kullanılan gizli kod. |
| En az ayrıcalıklı erişim | bir iş işlevini tamamlamak için bir izin kümesini en aza indirmeyi hedefleyen Sıfır Güven ilkesi. |
| İdare edilen 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. |
| Rotasyon | Gizli dizileri, gizliliği tehlikeye atılırsa yalnızca sınırlı bir süre için kullanılabilir olacak şekilde düzenli olarak güncelleştirme işlemi. |
| Gizli | 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üvenli olmayanlara gizli diziler gibi davranma. Gizli diziler, güvenli olmayanlar için gereksiz olan ve ek maliyetlerle sonuçlanabilecek operasyonel katılık gerektirir.
Uygulamanın kullandığı API'ler için URL'ler 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?.
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 önemli alanları 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 izi tutmanız gerekir.
Kimlik hırsızlığını önlemeye, reddedilmesini önlemeye ve gereksiz bilgilerin açığa çıkmasını en aza indirmeye yardımcı olmak için bu noktaların etrafında bir strateji oluşturun.
İş yükü gizli dizilerini yönetme
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ıyla sonuçlanır.
Anahtarların üç ayrı rolü olması önerilir: kullanıcı, yönetici ve denetçi. Rol ayrımı, yalnızca güvenilen kimliklerin uygun izin düzeyine sahip gizli dizilere erişimi olduğundan emin olmanıza yardımcı olur. Geliştiricileri, yöneticileri ve diğer ilgili personeli gizli dizi yönetiminin önemi ve en iyi güvenlik uygulamaları 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 ile 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 rollere 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 düzenlerini ayırt edemeyebilirsiniz. Ayrı erişim, iptali de kolaylaştırır. Bir tüketicinin anahtarı tehlikeye atılırsa, 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 için öneriler
Gizli dizi depolama
Gizli dizileri sağlamlaştırılmış bir ortamda depolamak, bekleyen ve aktarım sırasında ş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'ta veya işletim sisteminin sertifika deposunda depolanmalıdır. Örneğin, bir 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 maliyetle sunulur. Eklenen güvenlik katmanları nedeniyle uygulama performansı üzerinde bir etki de görebilirsiniz.
Ayrılmış 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 anahtarın 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 tehlikeye atılırsa, diğer gizli dizilerin ve potansiyel olarak iş yükünün tamamının denetimine sahip olamaz. 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 erişen kişileri 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 hijyeni koruyan bir süreç var. 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 düşünün. 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. Güvenli OAuth 2.0Behalf-Of yenileme belirteçleri.
Gizli dizileri kullanım ömrü sona erdikten, iş yükü tarafından artık kullanılmadığından veya gizliliği ihlal edildikten 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 stratejileri 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 getirilmeli ve dağıtılmalıdır. Gizli dizileri, döndürme kavramlarını yerel olarak destekleyen bir gizli dizi yönetimi deposunda depolamak bu işlem görevini basitleştirebilir.
İş yükü gizli dizilerini güvenli bir şekilde kullanma
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 gizliliğinin ihlal edildiği veya sızdırıldığı ve isteğe bağlı olarak yeniden üretilmesi gereken durumlar için bir süreç oluşturun. 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ğıtmadan önce kimlik bilgilerini tarayan Git ön komut kancaları olarak ekleyebilirsiniz. Gizli dizilerin 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.
Uyarı
Tarama araçları bir gizli dizi bulursa, bu gizli dizi gizliliği ihlal edilmiş 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ştirilemediğinde 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 ç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 dizileri çalışma zamanında uygulama koduna veya yapılandırmasına eklemek için gizli dizi ekleme desenlerini de kullanabilirsiniz. Bu da gizli dizilerin yanlışlıkla günlüklere veya sürüm denetimine açık olmasını önler.
Azure kolaylaştırma
Key Vault kullanarak gizli dizileri depolayın. Gizli dizileri Azure gizli dizi yönetim sistemi, Key Vault, Azure Yönetilen HSM 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 ID, anahtar döndürmeyi, anomalileri ve daha fazlasını işlemeye yönelik yerleşik mekanizmalarla erişim denetimi için son derece 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ı, izinleri ve gizli dizileri denetlemek için bir erişim modeli kullanın. Daha fazla bilgi için bkz. Access modeline genel bakış.
Gizli dizi açığa çıkarma algılamayı uygulama. şüpheli etkinliği algılayan ve uygulama kodunuzda kullanıma sunulan anahtarları düzenli aralıklarla denetleen işlemleri iş yükünüzle tümleştirin. Bazı seçenekler şunlardır:
- Azure DevOps Kimlik Bilgisi Tarayıcısı görevi
- Bulut için Defender gizli dizi taraması
- Key Vault için Microsoft Defender
- GitHub Gizli Dizi Tarayıcısı
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.
İlgili bağlantılar
- Erişim modeline genel bakış
- Azure DevOps Kimlik Bilgisi Tarayıcısı görevi
- Microsoft Güvenlik DevOps Azure DevOps uzantısını yapılandırma
- Azure DevOps için GitHub Gelişmiş Güvenliği yapılandırma
- Bulut için Defender gizli dizi taraması
- Doğru anahtar yönetimi çözümünü seçme
- Hesap erişim anahtarlarını yönetme
- Key Vault için Microsoft Defender
- Güvenlik izleme ve tehdit algılama önerileri
- Kimlik ve erişim yönetimi önerileri
- Web hizmetleri için güvenli OAuth 2.0Behalf-Of yenileme belirteçleri
- Visual Studio Bağlı Hizmetler
Topluluk bağlantıları
Güvenlik denetim listesi
Öneriler kümesinin tamamına bakın.