Bir serverless.com projesi için şifrelenmiş sırları kodda nasıl saklayabilirim?


12

Serverless.com ile, bir AWS Lambda işlevine bir sırrı açığa çıkarmanın en kolay yolu onu serverless.ymldosyada saklamaktır (örneğin KMS ile şifrelenmiş).

Ancak Git'e şifreli sırlar vermek dünyadaki en iyi şey değildir. Bir şeyin sırrının değişmesi gerektiğinde kod değişikliği gerektirir.

Ancak sadece güvenlik açısından daha iyi alternatifler nelerdir? örneğin, sır S3'te (şifreli) saklanabilir, Lambda o konuma ve KMS anahtarına erişim verilmiş olabilir, ancak bu gerçekten anlamlı bir şekilde daha iyi mi?


bu görüş fobisi anlamsal gymanstics beni ilgilendirmiyor.
Assaf Lavie

Yanıtlar:


7

Burada dikkate alınması gereken birkaç unsur vardır:

  1. Yapılandırılmakta olan koddan ayrı bir yayın kadansıyla yapılandırmayı sürdürme yeteneğine sahip olmak değerlidir. Bu, kimlik bilgilerinin otomatik olarak döndürülmesini teşvik eder, düzenli olarak ağrısız hale getirir mi?

  2. Bir "Kod Olarak Altyapı" bakış açısından, yapılandırmanın kapsamı birden fazla hizmeti kapsayabileceğinden, büyük olasılıkla farklı bir depoda olsa da, tüm yapılandırmayı Git'te saklamak tamamen mantıklıdır.

  3. Yukarıdaki ifadelerin her ikisinin de durumunuzla ilgili olduğunu varsayarsak, verileri KMS ile şifrelemeye ve S3 veya DynamoDB'de depolamaya meyilli olurum. Şimdiye kadar, çok basit durumlarda verileri KMS'nin içinde şifrelemenin ve saklamanın uygun olabileceğini söyleyebilirim .

Bu işlemi destekleyecek birkaç açık kaynak kitaplığı vardır:


1

Genellikle sırları kapsamdaki yapılandırma verileri olarak ele alırım. Bu nedenle, farklı yayın zamanlamaları ve süreçleri tarafından işlendiği için kodun yanında yaşamaz. Ayrı bir git repo, KMS, dinamo, s3 veya yapılandırma yönetim sisteminizin içinde (şef dünyasında şef kasası / şifreli veritabanı) iyi yerlerdir. Temel olarak, bir sırrı güncellemek için yazılımınızın yeni bir sürümünü oluşturmak ve dağıtmak istemezsiniz.

Sırların yönetim ihtiyaçları daha karmaşıksa, Hasicorp Vault ( https://github.com/hashicorp/vault ) gibi bir şey iyi bir seçenek olacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.