Komut satırından birden çok AWS Hesabı nasıl kullanılır?


115

Amazon EC2'de barındırdığım (ikincisi yukarı çıkmak üzere olan) iki farklı uygulamam var.

Komut satırında (Mac OS X) her iki hesapla nasıl çalışabilirim ancak EC2 anahtarlarını ve sertifikalarını ayrı tutabilirim? Her ec2- * komutundan önce ortam değişkenlerimi değiştirmem gerekir mi?

Bir takma ad kullanmak ve bunu çevrenin ayarına paralel olarak yerleştirmek işe yarar mı? Gibi bir şey:

takma ad ec2-açıkla-örnekleri1 = dışa aktar EC2_PRIVATE_KEY = / yol; EC2-örneğini açıklamak

Yanıtlar:


17

EC2_PRIVATE_KEY(Ve hatta EC2_CERT) ortam değişkenleri yerine aşağıdaki komut seçeneklerini kullanabilmelisiniz :

  • -K <private key>
  • -C <certificate>

Bunları takma adların içine koyabilirsiniz, örneğin

alias ec2-describe-instances1 ec2-describe-instances -K /path/to/key.pem

310

Aws komut satırında iki profil oluşturarak iki hesapla çalışabilirsiniz . Sizden AWS Erişim Anahtarı Kimliğinizi, AWS Gizli Erişim Anahtarınızı ve istediğiniz bölgeyi soracaktır , bu yüzden onları hazır bulundurun.

Örnekler:

$ aws configure --profile account1
$ aws configure --profile account2

Ardından komuttaki profili geçirerek hesaplar arasında geçiş yapabilirsiniz.

$ aws dynamodb list-tables --profile account1
$ aws s3 ls --profile account2

Not:

Profili olarak adlandırırsanız, yani komutta hiçbir parametre olmadığında varsayılan profildefault haline gelecektir .--profile


Varsayılan profil hakkında daha fazla bilgi

Kullandığınız daha fazla zaman harcarsanız account1 , bunu AWS_DEFAULT_PROFILE ortam değişkenini ayarlayarak varsayılan yapabilirsiniz. Varsayılan ortam değişkeni ayarlandığında, her komutta profili belirtmeniz gerekmez.

Linux, OS X Örneği:

$ export AWS_DEFAULT_PROFILE=account1
$ aws dynamodb list-tables

Windows Örneği:

$ set AWS_DEFAULT_PROFILE=account1
$ aws s3 ls

Bölgeyi yapılandırmak için - işte bölge "kodları" listesi - docs.aws.amazon.com/general/latest/gr/rande.html
arcseldon

66

Belki yine de birine yardımcı olur. Manuel olarak ayarlayabilirsiniz.

1) Dosyada ayarla

~/.aws/credentials

bu

[default]
aws_access_key_id={{aws_access_key_id}}
aws_secret_access_key={{aws_secret_access_key}}

[{{profile_name}}]
aws_access_key_id={{aws_access_key_id}}
aws_secret_access_key={{aws_secret_access_key}}

2) Dosyada ayarla

~/.aws/config

bu

[default]
region={{region}}
output={{output:"json||text"}}

[profile {{profile_name}}]
region={{region}}
output={{output:"json||text"}}

3) AWS Komut Satırı ile test edin, komut ve çıktı JSON olacaktır

aws ec2 describe-instances --profile {{profile_name}}

Ref

http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html#cli-multiple-profiles


2
@iBrianCox - Bu bilgiler tercihen en çok oy verilen yanıtla birleştirilmelidir ( stackoverflow.com/a/34246053/1199564 ), çünkü bir kullanıcının ayarları bir profilden diğerine nasıl taşıyacağını anlamasına izin verir, örneğin, başladıysanız yalnızca varsayılan profille ve ayrılmış, ayrı profillerle devam etmek istiyor.
mgd

@slm lütfen yukarıdaki yorumumu okuyun (yorum başına yalnızca bir kez bahsedebildi)
mgd

@mgd öneriniz için teşekkür ederim, ama hayır - çünkü ilk başta bu cevap benim değil - ve ikincisi bu nasıl ayarlanacağına dair farklı bir yaklaşım
BG BRUNO

@mgd S, "yorum başına bir kez bahsedilmesi" ne demek istediğinizi daha fazla açıklayabilir misiniz?
BG BRUNO

Demek istediğim, ilk yorumumda hem iBrianCox hem de slm'den (sırasıyla diğer cevabın yazarı ve editörü) bahsetmek istemiştim, ancak yorum başına yalnızca bir kez bahsetme izniniz var, bu yüzden her ikisinden de bahsetmek için başka bir yorum eklemem gerekiyordu. . Cevabınızın farklı bir yaklaşım olduğu konusunda haklısınız, ancak bilgilerin nerede saklandığını bilmek, özellikle de ayarları profiller arasında kopyalamak istiyorsanız, çok yararlıdır.
mgd


0

Kullanıcı girdisine dayalı olarak her hesap için karşılık gelen ortam değişkenleri değerlerini ayarlamak için kabuk komut dosyası yazabilirsiniz. Bunu yaparken, herhangi bir takma ad oluşturmanıza gerek kalmaz ve ayrıca ELB araçları, Otomatik Ölçeklendirme Komut Satırı Araçları gibi araçlar birden çok hesap altında da çalışır.


0

Basit bir araç yarattım, AWS hesapları arasında geçiş yapmak için yarattım , aaws .

AWS_DEFAULT_PROFILEKabuğunuzda ayarlayarak çalışır . ~/.aws/credentialsDosyanızda bazı girişlerinizin olduğundan emin olun ve birden çok hesap arasında kolayca geçiş yapın.

/tmp
$ aws s3 ls
Unable to locate credentials. You can configure credentials by running "aws configure".
/tmp
$ aaws luk3

[luk3] 🔐 /tmp
$ aws s3 ls
2013-11-05 21:40:04 luk3thomas.com
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.