aws ec2 命令有效,aws iam 命令失败
aws ec2 comand works, aws iam command fails
这肯定很奇怪。我有一个 aws 命令行用户,我在 AWS 帐户中设置了管理员权限。当我发出 aws ec2 命令时,我为用户生成的凭据有效。但不是当我 运行 aws iam 命令时。
当我 运行 aws iam 命令时,这是我得到的:
[user@web1:~] #aws iam create-account-alias --account-alias=mcollective
An error occurred (InvalidClientTokenId) when calling the CreateAccountAlias operation: The security token included in the request is invalid.
然而,当我 运行 使用相同凭据的 aws ec2 子命令时,我获得了成功:
[root@web1:~] #aws ec2 describe-instances --profile=mcollective
RESERVATIONS 281933881942 r-0080cb499a0299557
INSTANCES 0 x86_64 146923690580740912 False xen ami-6d1c2007 i-00dcdb6cbff0d7980 t2.micro mcollective 2016-07-27T23:56:50.000Z ip-xxx-xx-xx-xx.ec2.internal xx.xx.xx.xx ec2-xx-xx-xx-xx.compute-1.amazonaws.com xx.xxx.xx.xx /dev/sda1 ebs True subnet-0e734056 hvm vpc-909103f7
BLOCKDEVICEMAPPINGS /dev/sda1
EBS 2016-07-23T01:26:42.000Z False attached vol-0eb52f6a94c5833aa
MONITORING disabled
NETWORKINTERFACES 0e:68:20:c5:fa:23 eni-f78223ec 281933881942 ip-xxx-xx-xx-xx.ec2.internal xxx.xx.xx.xx True in-use subnet-0e734056 vpc-909103f7
ASSOCIATION 281933881942 ec2-xxx-xx-xx-xx.compute-1.amazonaws.com xx.xx.xx.xx
ATTACHMENT 2016-07-23T01:26:41.000Z eni-attach-cbf11a1f True 0 attached
GROUPS sg-b1b3bdca CentOS 7 -x86_64- - with Updates HVM-1602-AutogenByAWSMP-
PRIVATEIPADDRESSES True ip-xxx-xx-xx-xxx.ec2.internal xxx.xx.xx.xx
ASSOCIATION 281933881942 ec2-xx-xx-xx-xx.compute-1.amazonaws.com xx.xx.xx.xx
PLACEMENT us-east-1a default
PRODUCTCODES aw0evgkw8e5c1q413zgy5pjce marketplace
SECURITYGROUPS sg-b1b3bdca CentOS 7 -x86_64- - with Updates HVM-1602-AutogenByAWSMP-
STATE 16 running
TAGS Name mcollective
You have mail in /var/spool/mail/root
[root@web1:~] #
那么为什么相同的凭据对一组 aws 子命令有效,而对另一组却无效?我对这个很好奇!
@garnaat 回答了这个问题,但是答案隐藏在问题的评论中,所以在这里引用答案给那些看不懂的人:
通过使用 --profile
标志
在每个命令中使用不同的配置文件
解释:
在第一个命令中
[user@web1:~] #aws iam create-account-alias --account-alias=mcollective
--profile
未指定,因此自动使用默认的 aws 配置文件凭据
在第二个命令中
aws ec2 describe-instances --profile=mcollective
--profile
已指定,它会覆盖默认配置文件
这肯定很奇怪。我有一个 aws 命令行用户,我在 AWS 帐户中设置了管理员权限。当我发出 aws ec2 命令时,我为用户生成的凭据有效。但不是当我 运行 aws iam 命令时。
当我 运行 aws iam 命令时,这是我得到的:
[user@web1:~] #aws iam create-account-alias --account-alias=mcollective
An error occurred (InvalidClientTokenId) when calling the CreateAccountAlias operation: The security token included in the request is invalid.
然而,当我 运行 使用相同凭据的 aws ec2 子命令时,我获得了成功:
[root@web1:~] #aws ec2 describe-instances --profile=mcollective
RESERVATIONS 281933881942 r-0080cb499a0299557
INSTANCES 0 x86_64 146923690580740912 False xen ami-6d1c2007 i-00dcdb6cbff0d7980 t2.micro mcollective 2016-07-27T23:56:50.000Z ip-xxx-xx-xx-xx.ec2.internal xx.xx.xx.xx ec2-xx-xx-xx-xx.compute-1.amazonaws.com xx.xxx.xx.xx /dev/sda1 ebs True subnet-0e734056 hvm vpc-909103f7
BLOCKDEVICEMAPPINGS /dev/sda1
EBS 2016-07-23T01:26:42.000Z False attached vol-0eb52f6a94c5833aa
MONITORING disabled
NETWORKINTERFACES 0e:68:20:c5:fa:23 eni-f78223ec 281933881942 ip-xxx-xx-xx-xx.ec2.internal xxx.xx.xx.xx True in-use subnet-0e734056 vpc-909103f7
ASSOCIATION 281933881942 ec2-xxx-xx-xx-xx.compute-1.amazonaws.com xx.xx.xx.xx
ATTACHMENT 2016-07-23T01:26:41.000Z eni-attach-cbf11a1f True 0 attached
GROUPS sg-b1b3bdca CentOS 7 -x86_64- - with Updates HVM-1602-AutogenByAWSMP-
PRIVATEIPADDRESSES True ip-xxx-xx-xx-xxx.ec2.internal xxx.xx.xx.xx
ASSOCIATION 281933881942 ec2-xx-xx-xx-xx.compute-1.amazonaws.com xx.xx.xx.xx
PLACEMENT us-east-1a default
PRODUCTCODES aw0evgkw8e5c1q413zgy5pjce marketplace
SECURITYGROUPS sg-b1b3bdca CentOS 7 -x86_64- - with Updates HVM-1602-AutogenByAWSMP-
STATE 16 running
TAGS Name mcollective
You have mail in /var/spool/mail/root
[root@web1:~] #
那么为什么相同的凭据对一组 aws 子命令有效,而对另一组却无效?我对这个很好奇!
@garnaat 回答了这个问题,但是答案隐藏在问题的评论中,所以在这里引用答案给那些看不懂的人:
通过使用 --profile
标志
解释:
在第一个命令中
[user@web1:~] #aws iam create-account-alias --account-alias=mcollective
--profile
未指定,因此自动使用默认的 aws 配置文件凭据
在第二个命令中
aws ec2 describe-instances --profile=mcollective
--profile
已指定,它会覆盖默认配置文件