J'ai deux applications différentes que j'héberge (bien que la seconde soit sur le point de monter) sur Amazon EC2.
Comment utiliser les deux comptes en ligne de commande (Mac OS X) tout en maintenant les clés et les certificats EC2 séparés? Dois-je modifier mes variables d'environnement avant chaque commande ec2- *?
Est-ce que l'utilisation d'un alias et son paramétrage du travail en ligne sur l'environnement? Quelque chose comme:
alias ec2-describe-instances1 = export EC2_PRIVATE_KEY =/chemin; ec2-describe-instances
Vous devriez pouvoir utiliser les options de commande suivantes à la place des variables d'environnement EC2_PRIVATE_KEY
(et même EC2_CERT
):
-K <private key>
-C <certificate>
Vous pouvez mettre ces alias à l'intérieur, par exemple.
alias ec2-describe-instances1 ec2-describe-instances -K /path/to/key.pem
Vous pouvez travailler avec deux comptes en créant deux profiles sur la ligne de commande aws . Il vous demandera votre ID de clé d’accès AWS, clé d’accès secrète AWS et la région désirée. .
Exemples:
$ aws configure --profile account1
$ aws configure --profile account2
Vous pouvez ensuite basculer entre les comptes en transmettant le profil à la commande.
$ aws dynamodb list-tables --profile account1
$ aws s3 ls --profile account2
Remarque:
Si vous nommez le profil comme étant default
, il deviendra profil par défaut, c’est-à-dire si aucun --profile
param dans la commande.
Si vous passez plus de temps avec account1, vous pouvez en faire la valeur par défaut en définissant la variable d'environnement AWS_DEFAULT_PROFILE. Lorsque la variable d'environnement par défaut est définie, il n'est pas nécessaire de spécifier le profil dans chaque commande.
Linux, OS X Exemple:
$ export AWS_DEFAULT_PROFILE=account1
$ aws dynamodb list-tables
Exemple Windows:
$ set AWS_DEFAULT_PROFILE=account1
$ aws s3 ls
Peut-être que ça aide toujours quelqu'un. Vous pouvez le définir manuellement.
1) mis en fichier
~/.aws/credentials
ce
[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) Définir dans le fichier
~/.aws/config
ce
[default]
region={{region}}
output={{output:"json||text"}}
[profile {{profile_name}}]
region={{region}}
output={{output:"json||text"}}
3) Testez-le avec AWS Command Line et les commandes et les résultats seront 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
Les nouveaux outils aws prennent désormais en charge plusieurs profils.
Si vous configurez l'accès avec les outils, cela crée automatiquement une valeur par défaut dans ~/.aws/config.
Vous pouvez ensuite ajouter des profils supplémentaires - plus de détails sur:
http://docs.aws.Amazon.com/cli/latest/userguide/cli-chap-getting-started.html#cli-multiple-profiles
Vous pouvez écrire un script Shell pour définir les valeurs correspondantes des variables d'environnement pour chaque compte en fonction des entrées de l'utilisateur. Ainsi, vous n'avez pas besoin de créer d'alias. De plus, des outils tels que les outils ELB et les outils de ligne de commande Auto Scaling fonctionnent également sous plusieurs comptes.