如何从命令行使用多个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命令行工具也可以在多个帐户下工作。