新的IAM管理员用户看到"您无权执行此操作"

时间:2017-01-12 19:27:01

标签: amazon-web-services amazon-ec2 aws-cli

我正在尝试在OSX上开始使用AWS CLI。我通过pip安装了aws。我在IAM中创建了一个新用户并附加了预构建的AdministratorAccess - AWS Managed policy策略。接下来,我已经复制了生成的访问密钥ID和秘密访问密钥。

我创建的用户不在任何组中。他们的政策如下:

{
    "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

然而,这失败并出现以下错误:

  

调用时出现客户端错误(UnauthorizedOperation)   CreateSecurityGroup操作:您无权执行此操作   操作

其他命令以相同方式失败。

我唯一的理论是,它是键中的复制和粘贴错误,但我尝试过两次以上的整个过程并且两次都以相同的方式失败。我究竟做错了什么?有没有办法可以调试流程的哪个部分失败?

3 个答案:

答案 0 :(得分:6)

您的AWS CLI正在从其他地方获取凭据。见Configuration Settings and Precedence

确保它没有从环境变量或其他位置获取凭据。 AWS CLI按以下顺序查找凭据和配置设置:

  • 命令行选项 - 可以将区域,输出格式和配置文件指定为命令选项以覆盖默认设置。
  • 环境变量 - AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY等
  • AWS凭证文件 - 位于Linux,OS X或Unix上的〜/ .aws /凭证,或Windows上的C:\ Users \ USERNAME .aws \凭证。除默认配置文件外,此文件还可包含多个命名配置文件。
  • CLI配置文件 - 通常位于Linux,OS X或Unix上的〜/ .aws / config,或Windows上的C:\ Users \ USERNAME .aws \ config。此文件可以包含默认配置文件,命名配置文件以及每个配置文件的CLI特定配置参数。
  • 实例配置文件凭据 - 这些凭据可用于具有指定实例角色的EC2实例,并通过Amazon EC2元数据服务提供。

答案 1 :(得分:2)

在我的情况下,这是因为没有为我正在验证的IAM用户附加正确的策略。

在IAM管理控制台中将AmazonEC2FullAccess政策附加到用户,该命令应该有效。

答案 2 :(得分:0)

确保您没有在VPC中创建安全组,如果是这种情况,则需要将默认VPC ID作为参数传递。

还可以尝试使用不同的区域:

aws configure set region <regions>
aws ec2 describe-security-groups

注意:AWS已开始在大多数地区提供默认VPC。

希望这有助于解决您的问题。