Docker konteynerinin iç kısımlarına erişim nasıl engellenir?


14

Uygulamamı docker görüntüsü şeklinde müşterilere teslim etmek istiyorum. Ancak son kullanıcının kabın içinde hiçbir şeyi değiştirmemesini sağlamak çok önemlidir. Kullanıcı yalnızca kapsayıcıyı çalıştırabilir / durdurabilmeli ve kapsayıcıyla ağ üzerinden etkileşim kurabilmelidir.

Konteynerin iç kısımlarına erişimi yasaklamak mümkün mü? Kapsayıcıdan yapılan görüntünün bütünlüğünü doğrulamak mümkün müdür?


2
Docker ana bilgisayarını yönetmediğiniz sürece yapamayacağınıza inanıyorum. Bu erişimi engelleyerek hangi sorunu çözmek istiyorsun?
Tensibai

Tensibai'nin belirttiği gibi, duruma göre değişir. Kapsayıcının güvenlik nedeniyle değiştirilmediğini bilmeniz gerekiyorsa , temel olarak kendi sunucularınızda çalıştırmanız gerekir. İnsanları bir şeyi kırmamaları için değiştirmekten vazgeçirmek istiyorsanız, muhtemelen bunu yapmanın yolları vardır. Kullanım durumunuzu açıklamak burada yardımcı olacaktır.
Aurora0001

Yanıtlar:


12

Kısacası, müşterilerinizin kendi altyapılarında çalıştırdıkları kapları değiştirmelerini engelleyemezsiniz. Kaplar gizlenebilen ikili dosyalar gibi değildir; bunlar çalışma ortamıdır. Bununla birlikte, kabın içine dağıttığınız kod gizlenebilir.

Sorunuz bir üçüncü taraf destek sorunuyla ilgilidir: kendi ortamlarında çalıştırdıkları yazılımı değiştiren istemciler. Tedarik ettiğiniz kapları çalıştırmak için araçlar sağlarsanız (örn. İzleme ve günlüğe kaydetme), istemciler (yazılım lisansının bir parçası olarak) üzerinde yetkisiz değişiklikler yapmama konusunda anlaşmalıdır. Bu, yalnızca kapsayıcılar için değil, her tür üçüncü taraf yazılımı için geçerlidir.

Durumunuza bağlı olarak, uygulamanızı bir bulut altyapısında çalışan Hizmet Olarak Yazılım (SaaS) olarak sağlama seçeneğiniz de olabilir.

Müşteriniz kapsayıcılarınızın altyapılarında çalışmasını gerektiriyorsa ve değişiklik kısıtlamalarına uymayı reddediyorsa, muhtemelen yazılımınızı kullanımlarını desteklemeye çalışmak istemezsiniz.


6

Docker, kapsayıcıya kullanıcı erişimini engellemek için herhangi bir yöntem sunmaz, ancak resim geliştiricisi olarak birkaç stratejiyi takip edebilirsiniz

  • Yazılımınızı gizleyin (yakut, python vb.)
  • Görüntünüzü, kabuğu olmayan bir temel görüntüden ve kullanıcının görüntüyü çiğnemek için kullanabileceği diğer ikili dosyalardan oluşturun.

Tabii ki her zaman konteyneri ihraç edebilir ve yeniden paketleyebilirler, ancak bunlar aşırı önlemlerdir ...


Ruby ve Python neden kodları şaşırtmak için örnek olarak verilmiştir? Bu dillerdeki kod genellikle yürütme işletim sisteminde açık metin kaynak dosyaları olarak tutulur. C ++, C #, Java gibi derlenmiş bir dil veya JS gibi "küçültülebilen" bir dil kullanılması tercih edilmez mi?
AjaxLeung

5

Sen liman işçisi grubundan kullanıcıları kaldırmak ve için sudos oluşturabilir docker startve docker stop.


3
sadece bu sunuculara sahipseniz mümkün / etkili ...
Dan Cornilescu

5

Müşteriniz para yatırmaya hazırsa, Docker kurumsal sürümüne gitmelisiniz. Docker EE'de UCP(Universal Control Plane) UCP olan bir aracınız vardır . UCP ile roller ve erişim hakları oluşturabilir ve kullanıcının kapsayıcıları değiştirmesini / değiştirmesini kısıtlayabilirsiniz.

UCP'yi DDC'den (Docker Veri Merkezi) test etmek istiyorsanız, gereksinimlerinize göre işleri ayrıntılı bir şekilde belirlemenize yardımcı olacak bir aylık deneme lisansına sahip olursunuz.

Umarım bu yardımcı olur!

Teşekkür ederim!


1
Docker gruplarıyla ilgili çözüm olarak, bu sadece docker ana bilgisayar sistemini yönetirseniz çalışır, OP daha çok bir görüntü dağıtmaya benziyor ...
Tensibai

2

Teslimatınızı uygun komut dosyaları aracılığıyla verin. Her türlü kısıtlamayı ve kontrolü ansible komut dosyasında saklayın.


2
Bu konteynere erişimi nasıl önler? Teklifinizin OP'nin problemini gerçekten nasıl çözeceğini açıklamaya çalışın.
Michael Le Barbier Grünewald
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.