Amazon ec2 AWS EC2实例通过Ansible IAM角色创建实例\u配置文件\u名称未经授权操作:错误

Amazon ec2 AWS EC2实例通过Ansible IAM角色创建实例\u配置文件\u名称未经授权操作:错误,amazon-ec2,amazon-iam,ansible-playbook,Amazon Ec2,Amazon Iam,Ansible Playbook,我试图使用IAM角色通过ansible创建EC2实例,但在启动新实例时出现错误 failed: [localhost] => (item= IAMRole-1) => {"failed": true, "item": " IAMRole-1"} msg: Instance creation failed => UnauthorizedOperation: You are not authorized to perform this operation. Encoded auth

我试图使用IAM角色通过ansible创建EC2实例,但在启动新实例时出现错误

failed: [localhost] => (item= IAMRole-1) => {"failed": true, "item": " IAMRole-1"}
msg: Instance creation failed => UnauthorizedOperation: You are not authorized to perform
this operation. Encoded authorization failure message: Ckcjt2GD81D5dlF6XakTSDypnwrgeQb0k
ouRMKh3Ol1jue553EZ7OXPt6fk1Q1-4HM-tLNPCkiX7ZgJWXYGSjHg2xP1A9LR7KBiXYeCtFKEQIC
W9cot3KAKPVcNXkHLrhREMfiT5KYEtrsA2A-xFCdvqwM2hNTNf7Y6VGe0Z48EDIyO5p5DxdNFsaSChUcb
iRUhSyRXIGWr_ZKkGM9GoyoVWCBk3Ni2Td7zkZ1EfAIeRJobiOnYXKE6Q
鉴于iam角色具有完全ec2访问权限,遵循以下策略

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": "ec2:*",
      "Effect": "Allow",
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "elasticloadbalancing:*",
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "cloudwatch:*",
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "autoscaling:*",
      "Resource": "*"
    }
  ]
}

有什么建议吗

这里的问题不在于自身,而在于您(即您自己使用的AWS凭据)似乎缺少启动时将该角色“传递”到请求的EC2实例所需的
iam:PassRole
权限,有关详细信息,请参阅在中使用Amazon EC2角色所需的权限一节:

要启动具有角色的实例,开发人员必须具有权限 启动Amazon EC2实例并授予传递IAM角色的权限

以下示例策略允许用户使用AWS管理 控制台以启动具有角色的实例。该策略允许用户 通过指定 星号(*)。ListInstanceProfiles操作允许用户查看所有 AWS帐户上可用的角色

授予用户启动实例权限的示例策略 通过使用Amazon EC2控制台执行任何角色

{
  "Version": "2012-10-17",   
  "Statement": [{
    "Effect": "Allow",
    "Action": [
      "iam:PassRole",
      "iam:ListInstanceProfiles",
      "ec2:*"
    ],
    "Resource": "*"
  }]
}
需要通过
PassRole
权限进行此间接寻址的原因是能够限制用户在启动Amazon EC2实例时可以传递给该实例的角色:

这有助于防止用户运行 拥有的权限超过用户已被授予的权限,即 能够获得提升的特权。例如,想象一下 用户Alice只有启动Amazon EC2实例和 使用AmazonS3存储桶,但她将角色传递给AmazonEC2 实例具有使用IAM和DynamoDB的权限。那么,, Alice可能能够启动该实例,登录它,获取临时 安全凭据,然后执行IAM或DynamoDB操作 她没有被授权做这件事

你可能想阅读我对的回答以获得更详细的解释,这也链接到Mike Pope关于的文章,该文章从AWS的角度解释了主题