2014-09-18 15 views
5

AWS kaynaklarına erişmek için kullandığınız SDK'yı EC2 örneğinde çalıştırırken, 169.254.169.254'te yerel olarak bağlantılı bir web sunucusunu otomatik olarak konuşuyor ve bu örnekleri alıyor Diğer AWS servisleriyle konuşmak için gereken AWS kimlik bilgileri (access_key, secret).AWS kimlik bilgilerini (IAM rol kimlik bilgileri) docker kapsayıcısında çalışan kod için geçirin

Ayrıca diğer seçenekler

iyi yöntem burada nedir ... ENV değişkenleri kimlik bilgilerini ayarlama veya komut satırı args olarak geçer gibi vardır? Kapsayıcının 169.254.169.254'e (istekleri yönlendirerek) erişmesine ya da gerçek sunucunun davranışını taklit eden 169.254.169.254'te daha iyi bir proxy kapsayıcısına erişmesini gerçekten tercih ediyorum.

Orada bir çözüm var mı?

cevap

3

EC2 meta veri hizmeti genellikle docker ile kullanılabilir (daha özel bir ağ kurulumu kullanmıyorsanız - benzer bir soru için bkz this answer).

Docker ağ kurulumunuz erişilmesini engelliyorsa, Dockerfile numaranızdaki ENV yönergesini kullanabilir veya doğrudan çalışma sırasında iletebilirsiniz, ancak IAM rollerinden gelen kimlik bilgilerinin otomatik olarak AWS tarafından döndürüldüğünü unutmayın.

+0

mmm, bu yüzden yanlış anlamalarım ağrının garip veya en azından farklı olduğu boot2docker (mac'da) ile yaptığım deneyimlerimden geldiğini tahmin ediyorum. Yani temelde işler sadece çalışmalı. mmmm Bunu denemeliyim. – Ali

+0

@Ali, orijinal anahtarlarını boto'ya göndermeden normalde docker'da çalışıp çalışmadığını görebiliyor musunuz? – stormfield

+0

Bu mimaride sahip olduğum tek sorun (kapsayıcı içindeki AWS SDK/CLI kimlik bilgileri için EC2 meta veri bitiş noktasına çarptı), bir konteynerin sahip olduğu izinler üzerinde ince taneli bir denetim olmasını istiyorum. Bir konteyner sadece S3'e yazabiliyorken, diğeri herhangi bir S3 iznine sahip olmamak isteyebilir ve bunun yerine SNS’e yayınlamasını isteyebilir. Bu tasarım, EC2'ye izinlerin üst kümesini eklemem gerektiği ve tüm kaplarımın aynı olacağı anlamına gelir. –

İlgili konular