如何从命令行使用多个AWS账户?

我在Amazon EC2上有两个不同的应用程序(第二个应用程序即将上线)。

如何在命令行(Mac OS X)使用这两个帐户,但保持EC2密钥和证书是分开的? 我需要在每个ec2- *命令之前更改我的环境variables吗?

会使用别名,并将其设置为环境在线工作? 就像是:

别名ec2-describe-instances1 =导出EC2_PRIVATE_KEY = /path; EC2-描述,实例

您应该能够使用以下命令选项来代替EC2_PRIVATE_KEY (甚至EC2_CERT )环境variables:

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

你可以把这些别名,例如

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

您可以通过在aws命令行上创build两个configuration文件来使用两个帐户。 它会提示您input您的AWS访问密钥ID,AWS秘密访问密钥和所需的区域,以便准备好它们。

例子:

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

然后,您可以通过在命令上传递configuration文件在帐户之间进行切换。

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

注意:

如果您将configuration文件命名为默认configuration文件 ,它将成为默认configuration文件,即在命令中没有--profile参数时。


更多关于默认configuration文件

如果您花更多时间使用account1 ,则可以通过设置AWS_DEFAULT_PROFILE环境variables将其设置为默认值。 在设置默认环境variables时,不需要在每个命令上指定configuration文件。

Linux,OS X示例:

 $ export AWS_DEFAULT_PROFILE=account1 $ aws dynamodb list-tables 

Windows示例:

 $ set AWS_DEFAULT_PROFILE=account1 $ aws s3 ls 

也许它仍然有助于某人。 你可以手动设置。

1)在文件中设置

 ~/.aws/credentials 

这个

 [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}} 
  • {{aws_access_key_id}}您可以在AWS Console>身份和访问pipe理>安全证书>访问密钥

2)在文件中设置

 ~/.aws/config 

这个

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

3)使用AWS Command Line进行testing,命令和输出将是JSON

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

参考

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

新的aws工具现在支持多个configuration文件。

如果使用这些工具configuration访问权限,它会自动在〜/ .aws / config中创build一个默认值。

然后,您可以添加其他configuration文件 – 更多详情:

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

您可以编写shell脚本,根据用户input为每个帐户设置相应的环境variables值。 这样做,您不需要创build任何别名,此外,像ELB工具这样的工具,Auto Scaling命令行工具也可以在多个帐户下工作。