【问题标题】:New IAM admin user sees "You are not authorized to perform this operation"新的 IAM 管理员用户看到“您无权执行此操作”
【发布时间】:2018-04-15 01:02:49
【问题描述】:

我正在尝试在 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

但是,这会失败并出现以下错误:

调用 CreateSecurityGroup 操作:您无权执行此操作 操作。

其他命令以同样的方式失败。

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

【问题讨论】:

  • 在执行aws configure 时,它会告诉 AWS CLI 在哪个区域进行操作。用户是全球性的。但是安全组资源是特定于一个区域的。
  • 您遇到的错误不是复制/粘贴问题。这是权限错误。您在 CLI 中使用的凭据无权创建安全组。如果访问密钥/秘密不正确,您将收到另一个错误。
  • 将策略应用到用户后,您等了多长时间才执行命令?有时权限更改需要几分钟才能在系统中传播。
  • @MattHouser 谢谢!很高兴知道这不是复制/粘贴错误。我刚刚在 15 分钟后再次尝试,但仍然遇到同样的错误。
  • 您的用户是否需要 MFA?

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


【解决方案1】:

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

确保它没有从环境变量或其他位置获取凭据。 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 实例,并通过 Amazon EC2 元数据服务交付。

【讨论】:

  • 是的,我设置了环境变量。谢谢!
【解决方案2】:

在我的情况下,这是由于没有将正确的策略附加到我正在与之进行身份验证的 IAM 用户。

在 IAM 管理控制台中将 AmazonEC2FullAccess 策略附加到用户,该命令应该可以工作。

【讨论】:

    【解决方案3】:

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

    也可以在不同的地区试试这个:

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

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

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

    【讨论】:

    • 如果是这种情况,错误将是一个错误的请求,而不是UnauthorizedOperation
    猜你喜欢
    • 1970-01-01
    • 2021-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    • 1970-01-01
    • 2017-06-15
    • 2022-01-22
    相关资源
    最近更新 更多