Amazon ec2 AWS CLI Client.UnauthorizedOperation即使设置了密钥

Amazon ec2 AWS CLI Client.UnauthorizedOperation即使设置了密钥,amazon-ec2,aws-cli,Amazon Ec2,Aws Cli,我正在尝试设置AWS CLI工具,并按照 但是,在完成所有步骤并设置我的AWS\u访问密钥和AWS\u密钥后,我得到了 $ ec2-describe-regions Client.UnauthorizedOperation: You are not authorized to perform this operation. (Service: AmazonEC2; Status Code: 403; Error Code: UnauthorizedOperation; Request ID: 5

我正在尝试设置AWS CLI工具,并按照

但是,在完成所有步骤并设置我的
AWS\u访问密钥
AWS\u密钥
后,我得到了

$ ec2-describe-regions
Client.UnauthorizedOperation: You are not authorized to perform this operation. (Service: AmazonEC2; Status Code: 403; Error Code: UnauthorizedOperation; Request ID: 55f02cc4-2e9f-4a0a-8b55-46bcc1973f50)
然后我尝试重新生成新凭据,但仍然得到相同的错误。我似乎找不到其他人有这个问题的信息。我试着用
-O
-W
传递键,但也不起作用


知道我可能做错了什么吗?

很不幸,关于使用EC2 CLI工具的基本指南甚至没有提到这一点,但我的问题似乎是我的IAM帐户下没有正确的策略设置

{
"Version": "2012-10-17",
"Statement": [{
  "Effect": "Allow",
  "Action": "ec2:Describe*",
  "Resource": "*"
}]
}
有关更多详细信息,请参阅此链接:

我在免费层上,发现将管理员策略授予单个用户更容易,这支持从所有amazon命令行工具进行访问。如果您觉得该政策过于宽松,可以在以后降低该政策的等级

  • 拜访
  • 在左侧菜单中选择
    策略
  • 从Amazon现有策略创建管理员策略
  • 选中管理员复选框并附加到用户
  • 假设您已经设置了访问密钥,您现在应该对给定用户具有完全的命令行访问权限

    之前 之后
    amazons UX需要一段时间才能适应它

    有些策略必须分配给IAM用户和组,而不是IAM角色。我们将
    AdministratorAccess
    AmazonEC2FullAccess
    之类的策略分配给为联合创建的IAM角色,AWS CLI命令失败,响应相同


    将策略分配给IAM用户和组可确保策略有效。我们将类似AmazonEC2FullAccess的策略分配给管理员。对于列出区域和实例,正如
    descripe regions
    命令中所要求的那样,像
    AmazonEC2ReadOnlyAccess
    这样的策略就足够了,因为它们包含必要的语句,允许对所需资源执行限制性操作。

    这真是太糟糕了。由于这些问题,谷歌将对AWS进行审查。一切都应该顺利。实际上,一切都还在测试阶段,对变化作出反应的成本是巨大的。基于角色的策略很好,但默认情况下保持打开状态,并警告我们。@mckenzm您是否建议默认安全策略应为“允许所有人访问所有内容”?这将是一个巨大的错误。谷歌云也不是这样做的——没有人会这样做。必须明确授予权限。至少对于根用户。默认情况下,Deny all(全部拒绝)对于RACF(将有正式的管理)之类的东西来说是非常好的,但是对于默认/根用户应该有一些“开箱即用”的访问权限,即使它是在安装时选择加入的。否则,如果密钥不起作用,为什么还要有密钥?@mckenzm这实际上是root用户的默认设置。这就是为什么在设置初始IAM组和用户后应禁用根用户凭据的原因。默认情况下,所有IAM凭据都没有权限,必须主动授予权限。“某些策略必须分配给IAM用户和组,而不是IAM角色”的说法具有误导性。没有内在的必要这样做。如果要呈现持久IAM用户凭据,则附加到该IAM用户或该IAM用户组的IAM策略是相关的。如果您正在呈现临时会话凭据(通过假定IAM角色从STS检索,这对于联合访问是典型的),则附加到该IAM角色的IAM策略是相关的。这是非常不准确的。策略可以附加到用户、组或角色,其净效果应该大致相同(有些警告在此不适用)我不敢相信你只是建议他们给用户管理员权限来执行单个ec2操作。@danielpops我很乐意更新答案-你会推荐什么策略?我已经暗示政策过于宽松,但我意识到大多数用户都会掩饰这一点,所以我很高兴从整体上改进答案。这就是我在学习AWS时所做的,但我也不想鼓励不良做法。你应该建议适当的权限级别来解决OP的访问问题,这仅仅是为了允许单一操作ec2:描述区域,与您建议的相比,您可以访问AWS提供的90多个服务中的每个操作offers@wislo下面的答案(当前)是合适的,应该是可接受的答案
    › ec2-describe-regions
    Client.UnauthorizedOperation: You are not authorized to perform this operation. (Service: AmazonEC2; Status Code: 403; Error Code: UnauthorizedOperation; Request ID: 3398ed18-1caf-4c04-865b-a54f796c653c)
    
    › ec2-describe-regions
    REGION  eu-central-1    ec2.eu-central-1.amazonaws.com
    REGION  sa-east-1   ec2.sa-east-1.amazonaws.com
    REGION  ap-northeast-1  ec2.ap-northeast-1.amazonaws.com
    REGION  eu-west-1   ec2.eu-west-1.amazonaws.com
    REGION  us-east-1   ec2.us-east-1.amazonaws.com
    REGION  us-west-1   ec2.us-west-1.amazonaws.com
    REGION  us-west-2   ec2.us-west-2.amazonaws.com
    REGION  ap-southeast-2  ec2.ap-southeast-2.amazonaws.com
    REGION  ap-southeast-1  ec2.ap-southeast-1.amazonaws.com