Como usar várias contas AWS a partir da linha de comando?

Tenho dois aplicativos diferentes que estou hospedando (bem, o segundo está prestes a subir) na Amazon EC2.

Como posso trabalhar com ambas as contas na linha de comandos (Mac OS X) mas manter as teclas e certificados EC2 separados? Preciso de mudar as minhas variáveis de ambiente antes de cada comando ec2 -*?

usaria um pseudónimo e tê-lo-ia no ambiente em linha? Algo do género:

Alias ec2-describe-instances1 = export EC2_PRIVATE_KEY= / path ; EC2-describe-instances

Author: Spencer Ruport, 2009-02-27

6 answers

Deverá ser capaz de usar as seguintes opções de comandos em vez das variáveis de ambiente EC2_PRIVATE_KEY (e mesmo EC2_CERT):

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

Podes pôr isto dentro dos pseudónimos, por exemplo

alias ec2-describe-instances1 ec2-describe-instances -K /path/to/key.pem
 15
Author: vladr, 2017-05-26 01:27:14

Pode trabalhar com duas contas criando dois perfis na linha de comandos aws. Irá pedir-lhe o seu ID da chave de acesso AWS, a chave de acesso secreto AWS e a região desejada, por isso tenha-os prontos.

Exemplos:

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

Você pode então mudar entre as contas passando o perfil no comando.

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

Nota:

Se indicar o perfil a ser {[4] } tornar-se-á Perfil predefinido ou seja, quando não --profile param no comando.


Mais no Perfil predefinido

Se passar mais tempo a usar a conta , poderá torná-la por omissão, definindo a variável de ambiente AWS_DEFAULT_ profile. Quando a variável de ambiente padrão é definida, você não precisa especificar o perfil em cada comando.

Linux, exemplo do OS X:

$ export AWS_DEFAULT_PROFILE=account1
$ aws dynamodb list-tables

Exemplo Das Janelas:

$ set AWS_DEFAULT_PROFILE=account1
$ aws s3 ls
 162
Author: iBrianCox, 2017-05-26 01:24:38
Talvez ainda ajude alguém. Pode ajustá-lo manualmente.

1) conjunto no ficheiro

~/.aws/credentials

Isto

[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) definido no ficheiro

~/.aws/config

Isto

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

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

3) testa-o com a linha de comandos AWS e o comando e a saída serão JSON

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

Ref

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

 30
Author: BG Bruno, 2017-04-14 22:56:13

As novas ferramentas aws suportam agora vários perfis.

Se configurar o acesso com as ferramentas, cria automaticamente um valor por omissão em ~/.aws / config.

Pode então adicionar perfis adicionais-mais detalhes em:

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

 6
Author: chris, 2013-12-15 13:54:31

Pode escrever um programa de consola para definir os valores correspondentes das variáveis de ambiente para cada conta, com base na entrada do utilizador. Ao fazê-lo, você não precisa criar quaisquer pseudônimos e, além disso, ferramentas como ferramentas ELB, Auto Scaling Ferramentas de linha de comando irá funcionar sob várias contas também.

 0
Author: Roman Newaza, 2012-02-17 01:25:15
Eu recomendo verificar o contentor encapsulado CLI. você pode executar container para cada conta para um melhor isolamento.
 0
Author: Wassim Seifeddine, 2018-01-05 11:08:51