Sunucusuz Uygulamalarda Sırları ve Hassas Verileri Nasıl Yönetilir

Giriş: Sunucusuz Tek Güvenlik Talepleri

Serverless Computing, takımların nasıl inşa ettikleri ve dağıtıldığına dönüştürüldü.Süresel olarak, ölçeklendirme ve yamalama, AWS Lambda, Azure işlevleri ve Google Cloud Functions gibi platformlar, geliştiricilerin iş mantığına odaklanmasına izin veriyor. Ancak, bu paradigma değişimi, özellikle de sırların ve hassas verilerin yönetimi hakkında yeni güvenlik sorunları tanıtıyor.

Bu makale, sunucusuz ortamlarda sırları işlemek için kapsamlı bir kılavuz sunar. Temel zorlukları inceleyeceğiz, en iyi uygulamalara atacağız, büyük bulut sağlayıcıları kullanarak beton uygulama kalıplarıyla yürümek ve hassas verilerin tüm yaşam döngüsünü nasıl güvence altına almak için tartışacağız - üretime gelişimi.

Sunucusuzluğundaki Gizli Yönetimin Meydanlarını Anlayın

Serverless mimariler doğal olarak devletsizdir. Bir işlev çağrıldığında, infazdan sonra kırılan bir konteynerde çalışır (veya kısa bir süre boyunca yeniden kullanılabilir). Bu ephemeral doğa, uzun süren süreçlere veya dosya sistemlerine güvenemeyeceği anlamına gelir: Ortak pitfalls şunları içerir:

Bu zorluklar dağıtılmış, olay odaklı sunucusuz uygulamalar tarafından bileşiklenir. Tek bir işlev bir veritabanı, dış API ve bir kuyruk çağırmak için gerekebilir - her biri bu güvenli kimlikleri yönetmek için.

Sırları ve Hassas Data'ları yönetmek için en iyi uygulamalar

Herhangi bir sunucusuz güvenlik stratejisinin temeli en az ayrıcalık ilkesidir: Her işlev sadece ihtiyaç duyduğu sırların ve mümkün olan en kısa süre boyunca mümkün olan en temel uygulamalardır.

1. Gizli Gizli Yönetim Hizmetleri Kullanımı

Her büyük bulut sağlayıcısı, sırları depolama ve erişim için bir amaç inşa edilmiş bir hizmet sunar:

Bu hizmetler geri kalanında ve geçişte şifre sırları şifreliyor ve her erişimin denetim loglarını sağlıyor ve yeniden işlenmemiş işlevleri olmadan sırları döndürmenize izin veriyor. - Never store sırları in düz metin yapılandırma dosyaları veya satır kodu.

2. Ortam Değişkenleri Kullanın - Ama Bakım

Çevre değişkenleri, sunucusuz işlevlerin yapılandırmasına ortak bir yol olarak kalır. Ancak, doğru bir şekilde sırları asla tutmamalıdır. Bunun yerine, bir saldırganın çevresel değişkenleri saklaması için ortam değişkenlerini kullanmaları gerekir (örneğin, AWS Sırları Yöneticisi veya Azure Key Vault'ta bir sırrın ARN).

3. Geri ve Transitta Her Şeyi Şifreleyin

Sırlar nerede saklı tutarlar: Gizli yönetim servisi içinde, hafızanızda önbellek ( bellek şifreleme gibi teknikler kullanarak) ve ağ üzerinden aktarılan zaman tüm büyük gizli yönetim hizmetleri, müşteri tarafından yönetilen anahtarlarla şifreleme kullanarak şifrelemeyi uygular (CMKs)

4. Implement Strict Access Controls ve Least Privilege Prensipleri

Rol tabanlı erişim kontrolü (RBAC) veya nitelik tabanlı erişim kontrolü (ABAC) hangi işlevleri okuyabileceklerini sınırlamak için kullanın. AWS'de, IAM politikalarına yalnızca belirli bir gizli ARN'ler için ekin. aynı şekilde, Azure'da yönetilen kimlikler kullanın ve granular Anahtar Vault erişim politikaları atayabilir.

Ayrıca, gizli yönetim hizmetine erişimi kısıtlayın. Sadece yöneticiler, sırları yaratabilmeli veya silmeli. Operatörler ve geliştiriciler çalışmalarından gerekli sırları okumakla sınırlı olmalıdır ve denetim logları periyodik olarak gözden geçirilmelidir.

5.Bölümler Düzenli Olarak

Otomatik gizli rotasyon, bir uzlaşmanın patlama yarığını sınırlamak için kritiktir. AWS Sır Yöneticisi, BIOS hedeflerini kullanarak özel bir otomasyon gerektirir (örneğin, her 30 gün) ancak otomatik rotasyon, bir Bulut Fonksiyonlar veya Bulut Programı'nda gizliyi gerektiren bir işlev gerektirir. Azure Key Vault, diğer Azure hizmetleriyle birlikte bütünleştirir.

Otomatik rotasyonla bile, eski gizli versiyonların süresiz olarak tutulmasını sağlamalıdır. Güvenli bir pencereden sonra eski versiyonları (örneğin, 30 gün sonra rotasyon) eski bir uzlaşmayı kullanarak bir saldırganın önüne çıkmasını engellemek için bir saklama politikası uygulama.

6. Mümkün olan Nerede Dinamik ve Geçici Credentials kullanın

Örneğin, uzun ömürlü sırları destekleyen hizmetler için, AWS Lambda işlevleri, herhangi bir sırı saklamadan Azure servislerine kimlikleri (özellikle STS) erişmesini sağlayan (üçüncü, DynamoDB veya diğer AWS hizmetleri için geçici kimlikleri tamamen ortadan kaldırır.

7. Denetim ve İzleme Gizli Erişim

Gizli yönetim hizmetinize ve bu günlüklere merkezi bir güvenlik bilgileri ve etkinlik yönetimi (SIEM) platformuna giriş, bu nedenle beklenenden daha sık bir işlev okuma sırları için bir işlev okuma sırları için izlemek veya bilinmeyen IP adreslerine erişmek gibi. “erişim inkar etmek” gibi hataların uyarılarını gizli bir mağazaya ayarlayın, bu da yanlış yapılandırılmış bir işlev veya bruteforce bir denemesi gösterebilir.

Sırları Yönetimini Uygulama: Gerçek Dünya Desenleri

Uygulamaları bilmek bir şeydir; doğru şekilde uygulamak, üç büyük bulut sağlayıcı için uygulama kalıplarıdır, çapraz platform değerlendirmeleri ile birlikte.

AWS Pig Manager ile AWS Lambda

AWS Sır Manager'ı bir Lambda işlevi ile entegre etmek için, bu adımları takip edin:

  1. [FONT:0] Gizlii Yaratmak[Dönetici:0) – Veritabanı parolanızı, API anahtarını veya diğer hassas dizelerinizi Sır Yöneticisi'nde gizli olarak depolayın. Hedef servisi bunu desteklerse enable otomatik rotasyon.
  2. [FONT:0) Lambda yürütme rolünün erişimini sağlamak[DÜT:1) - Belirli gizli ARN'ye izin veren bir politika ekleyin. Seçmeli olarak, aynı zamanda metadata için [[ŞUYGrants:2).
  3. [FONT=0]İşletme sırasında sırrı geri almak – işlev kodunuzda (Node.js, Python, vs.), AWS SDK'yı ithal etmek ve arayFLT:3) Önbellekliliği azaltmak için küresel değişkende sırrı kontrol etmek için. Örneğin (sileştirilmiş kod):
const AWS = require('aws-sdk');
const secretsManager = new AWS.SecretsManager();
let cachedSecret;

exports.handler = async () => {
 if (!cachedSecret) {
 const data = await secretsManager.getSecretValue({ SecretId: 'arn:aws:secretsmanager:us-east-1:123456789012:secret:MyDbPassword-abc123' }).promise();
 cachedSecret = data.SecretString;
 }
 // use cachedSecret securely, never log it
};

Sırların sadece soğuk bir başlangıç için bir kez getirildiğini unutmayın. Sonraki sıcak invokasyonlarda, önbellekli değer yeniden kullanılabilir.Eğer sırları sık sık döndürürseniz, önbellek üzerinde kısa bir Zaman-Live (TTL) ayarlamayı düşünün veya yeniden sürüm kontrol edin.

Azure Key Vault ile Azure işlevleri

Azure, Windows'un ayarlarına uygun olarak daha sorunsuz bir şekilde entegre edilebilir:0)Key Vault referansları[Döneticileri 1 ) Uygulama Konsülasyonunda veya işlevin ayarlarının bir parçası olarak, SDK'yı manuel olarak aramanız yerine, bu özel sözlüğe bir ortam değişkeni ayarlayabilirsiniz:

@Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/DbPassword/)

İşlev çalışırken, Azure otomatik olarak referansı çözüyor ve bir ortam değişkeni olarak gizli değeri enjekte ediyor. Bu yaklaşım büyük ölçüde kodu basitleştirir ve herhangi bir yapılandırma dosyasından sır tutar. Ancak, işlevin sistem tarafından belirlenen kimlikleri henüz garanti etmelisiniz.

Birden fazla sırrı dinamik olarak alma ihtiyacı olan fonksiyonlar için, [[ŞUYGÜSÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜ

Google Cloud Functions with Secret Manager

Google Cloud Functions, gizli bir sürüm sunmak için çevre değişkenleri aracılığıyla sırları erişebilir. Dağıtım emrinde, talep üzerine sırları getirmek için bir ortam değişkeni belirtebilirsiniz. ”->

Google Cloud Secret Manager'ın eşsiz bir özelliği, IAM bağlayıcılarını kullanarak gizli seviyede erişim sağlayabilirsiniz ve ayrıca Müşteri tarafından yönetilen Encryption Keys (CMEK) ek koruma için de kullanabilirsiniz.

Bulutun Ötesinde: CI/CD ve Geliştirmedeki Sırlar

Sırlar sadece üretimde değil, aynı zamanda gelişim ve sürekli entegrasyon / sürekli dağıtım sırasında (CI/CD) boru hatlarında da yönetilmelidir. Geliştiriciler genellikle sunucusuz fonksiyonları gerçek servis uç noktaları ile yerel olarak test etmelidir.En güvenli uygulama, kimliklerine ve sınırlı izinlere kapsadığı kişisel sırları veya geçici kimlikleri kullanmaktır.

Uyum ve Standartlaştırma

Birçok düzenleyici çerçeve (GDPR, SOC 2, PCI-DSS) hassas verilere erişim konusunda katı kontroller gerektirir. Proper secret management bu gereklilikleri sağlayarak karşılamaya yardımcı olur:

Gizli adlandırma, rotasyon aralıkları ve inceleme döngüleri için bir şirket çapında politika benimsemek.Üye Olmayanlar:0)OWASP'nin Gizli Yönetimi Hile Belgesi))OWASP Sırları Yönetim Hile Belgesi) ve [[Döneticileri [Döneticileri)[Döneticileri [FONT=)[FLT][/FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=)))))))))))))))

Sonuç: Gizli Güvenli Bir Ağalmaz Bir Mimari İnşa Etmek

Sunucusuz uygulamalardaki sırları yönetmek bir zaman görevi değildir, ancak devam eden bir disiplindir.Ephemeral ve sunucusuz talepleri, asla sırları tutmanıza veya yapılandırmanıza güvenmeyeceğinize dair bilgi sahibi değildir. Bunun yerine, özel gizli yönetim hizmetlerine güvenmek, en az öncelikli erişime güvenmek, otomatik olarak döndürmek ve her erişimi izlemek.

Bu makalede belirtilen en iyi uygulamaları takip ederek – AWS Sırları Yöneticisi, Azure Key Vault veya Google Cloud Secret Manager'ı kullanarak, çevre değişkenlerini yalnızca puanlayıcıları kullanarak; akıllıca bir şekilde bağlayın ve güvenli gizli işlemleri CI/CD'ye entegre edebilirsiniz - her iki güçlü ve güvenli olan sunucusuz uygulamaları yapabilirsiniz.

Daha derin dalışlar için resmi belgelere bakınız:

  • [0]AWS Sırları Yönetici Kullanıcı Kılavuzu[Dönem:0]
  • [0]) ► ^ af.
  • [0]Google Cloud Secret Manager Dokümantasyon[Dönemli:0)[değiştir | kaynağı değiştir]