2016-04-01 17 views
11

Amazon EC2'de docker kabını çalıştırıyorum. Şu anda Dockerfile'a AWS Kimlik Bilgilerini ekledim. Bunu yapmanın en iyi yolunu bana bildirir misiniz?AWS kimlik bilgilerini Docker kapsayıcısına iletmenin en iyi yolu hangisidir?

+0

Docker kapsayıcılarına güvenlik kimlik bilgilerini geçirme mekanizmalarını tartışan çeşitli çevrimiçi makaleler vardır. Şimdiye kadar neye baktın? – larsks

+0

Teşekkürler @larsks - bu konu için google'da ortaya çıkan ilk şey hakkında harika yorum – ferr

+0

@ferr Şiddetli olup olmadığını anlayamıyorum, ancak belirli bir makale veya arama sonucuna yorum yapmıyordum . Sırlar ve Docker konusu aslında birçok kişi tarafından ayrıntılı olarak incelenen bir konu. – larsks

cevap

29

En iyi yol, IAM Rolünü kullanmaktır ve hiçbir şekilde kimlik bilgileriyle ilgilenmez. (bkz. http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html)

Kimlik bilgileri, http://169.254.169.254..... numaralı telefondan alınabilir Bu özel bir IP adresi olduğundan, yalnızca EC2 örneklerinden erişilebilir.

Tüm modern AWS istemci kitaplıkları oradan nasıl kimlik bilgilerini getireceğini, yenilediğini ve kullanacağını "bilir". Yani çoğu durumda bunu bilmenize bile gerek yok. Sadece ec2'yi doğru IAM rolü ile çalıştırın ve iyi geçin. Eğer ortam değişkenleri olarak zamanında onları geçebilir Seçenek olarak

Sen terminalde printenv çalıştırarak bu ortam değişkenleri erişebilir

(yani docker run -e AWS_ACCESS_KEY_ID=xyz -e AWS_SECRET_ACCESS_KEY=aaa myimage).

+4

Üretimde güvenliği tehlikeye atmayan yerel geliştirme/test sırasında bunu yapmanın iyi bir yolu var mı? Bir görüntüyü tam olarak dağıtmadan çalıştığından emin olmak isterim. – honktronic

+1

ortam değişkenleri ile gönderdiğim bir alternatif, dev/local ortamda iyi çalışıyor. – Vor

+1

Bunun bir yazım hatası mı olduğunu merak ediyorum, ama 'AWS_SECRET_ACCESS_KEY' değil, 'AWS_SECRET_KEY' girmem gerekiyor, cevabınız çok yardımcı oldu. Teşekkür ederim. – Akavall