2016-04-12 25 views
1

'u kullanan yerel olarak uygulama test etme S3'te dosyalar ekleyen bir Java uygulamasına sahibim. Bu uygulama bir EC2 örneğinde çalışıyor.IAM Rolü

IAM rolünü kullanıyoruz. Bu yüzden gerekli IAM rolünü bu EC2 örneğine ekledik.

Burada her şey mükemmel çalışır.

Ancak uygulamayı yerel olarak dizüstü bilgisayarımda da test etmek istiyoruz. Her ne zaman test etmem gerekiyorsa uygulamayı her zaman EC2'ye yüklemek zor.

Kod değiştirmeden dinamik olarak nasıl geçiş yapabiliriz, böylece dizüstü bilgisayarımı (accesskey ve secretKey ile) test edebilirim ve ayrıca EC2'de IAM rolünü kullanabilirim?

cevap

1

AWS SDK kimlik bilgilerini bulmak için bir Kimlik Sağlayıcı Zincir kullanır. Sipariş diline göre değişir, ancak genellikle kontrol eder:

  • Ortam Değişkenleri
  • Yerel yapılandırma dosyası
  • nedenle
  • EC2 örneği meta

, yerel olarak uygulamayı çalıştırmak istiyorsanız, yapabilirsiniz kimlik bilgileri dosyasını sağlayın veya Ortam Değişkenleri içinde kimlik bilgilerini ayarlayın. Kod, EC2 örneğinde olduğu gibi kimlik bilgilerini otomatik olarak bulur.

Referanslar:

+0

Bu iyi tutar. Ancak IAM Rolünü kullanmak için InstanceProfileCredentialsProvider kullanıyoruz. http://docs.aws.amazon.com/AWSSdkDocsJava/latest/DeveloperGuide/java-dg-roles.html InstanceProfileCredentialsProvider IAM rolünü tercih ediyor – sag

+1

Sağlayıcı zincirini kullanmaya geçiş yapın. Örnek profil sağlayıcısını otomatik olarak kullanır. – tedder42

1

Eğer örnekleri gibi liman işçisi kullanıyorsanız, o zaman olurdu Ortam değişkenlerini docker ile çalıştırırsanız kolay olur.

docker run --env-file=FILE 

VEYA

docker run -it --rm -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_KEY 

Ref: Biz DefaultCredentialsProviderChain kullanırsanız https://hub.docker.com/r/pmcjury/aws-cli/

İlgili konular