我正在尝试在OS X上开始使用AWS CLI。我通过pip安装了aws
。我在IAM中创建了一个新用户,并附加了预先构建的AdministratorAccess-AWS托管策略策略。接下来,我复制了生成的Access Key ID和Secret Access Key。
我创建的用户不在任何组中。他们的政策是这样的:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
]
}
接下来,我从命令行运行aws configure
,并输入我复制的访问密钥和密钥,加上eu-west-1
的区域代码(由于IAM用户是全局用户,因此似乎不太可能相关)和text
的输出格式。
然后我尝试运行一个简单的测试命令来建立一个新的组:
aws ec2 create-security-group --group-name my-sg --description "My security group" --debug
但是,由于以下错误而失败:
调用CreateSecurityGroup操作:您无权执行此操作活动
其他命令也会以同样的方式失败。
我唯一的理论是,这是密钥中的复制粘贴错误,但我已经尝试过两次以上整个过程,但两次都以相同的方式失败了。我做错了什么?有没有一种方法可以调试流程的哪一部分失败了?
您的AWS CLI正在从其他地方获取凭据。请参阅配置设置和优先级
请确保它没有从环境变量或其他位置获取凭据。AWS CLI按以下顺序查找凭据和配置设置:
- 命令行选项–区域、输出格式和配置文件可以指定为覆盖默认设置的命令选项
- 环境变量–AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY等
- AWS凭据文件—在Linux、OS X或Unix上位于~/.AWS/credentials,在Windows上位于C:\Users\USERNAME.AWS\credentials。除了默认配置文件外,此文件还可以包含多个命名配置文件
- CLI配置文件—在Linux、OS X或Unix上通常位于~/.aws/config,在Windows上通常位于C:\Users\USERNAME.aws\config。此文件可以包含默认配置文件、命名配置文件以及每个配置文件的CLI特定配置参数
- 实例配置文件凭据–这些凭据可以在具有指定实例角色的EC2实例上使用,并通过AmazonEC2元数据服务提供
在我的情况下,这是由于没有将正确的策略附加到与我进行身份验证的IAM用户。
将AmazonEC2FullAccess
策略附加到IAM管理控制台中的用户,该命令应该可以工作。
如果需要传递默认VPC ID作为参数,请确保您没有在VPC中创建安全组。
也可以在不同的地区尝试:
aws configure set region <regions>
aws ec2 describe-security-groups
注意:AWS已经开始在大多数地区提供默认的VPC
希望这能帮助并解决您的问题。