Amazon web services AWS EMR群集无法启动

Amazon web services AWS EMR群集无法启动,amazon-web-services,emr,amazon-iam,Amazon Web Services,Emr,Amazon Iam,我试图从AWS控制台启动AWS EMR群集,但出现以下错误: Failed to provision ec2 instances because 'IAM Instance Profile "arn:aws:iam::553706642095:instance-profile/EMR_EC2_DefaultRole" has no associated IAM Roles 有人知道这意味着什么以及如何解决吗 以下是角色策略: { "Statement": [ { "Ac

我试图从AWS控制台启动AWS EMR群集,但出现以下错误:

Failed to provision ec2 instances because 'IAM Instance Profile "arn:aws:iam::553706642095:instance-profile/EMR_EC2_DefaultRole" has no associated IAM Roles
有人知道这意味着什么以及如何解决吗

以下是角色策略:

{
  "Statement": [
    {
      "Action": [
        "cloudwatch:*",
        "dynamodb:*",
        "ec2:Describe*",
        "elasticmapreduce:Describe*",
        "rds:Describe*",
        "s3:*",
        "sdb:*",
        "sns:*",
        "sqs:*"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}
其信托政策文件为:

{
  "Version": "2008-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": "ec2.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

您只有EMR的只读权限

“elasticmapreduce:描述*”,

您需要授予对elastic map reduce的完全访问权限,以便可以启动群集/终止

一旦您授予此访问权限,角色策略将如下所示


“elasticmapreduce:*”,我终于解决了这个问题。这是令人困惑的,因为默认情况下实例配置文件和角色使用相同的名称。下面概述了完整的步骤,但您可以跳过各个步骤

  • 创建默认角色(如果出现错误,请降级到awscli版本1.10.30)

    aws emr创建默认角色

  • 如果实例配置文件不存在,请创建实例配置文件:

    aws iam创建实例配置文件--实例配置文件名称EMR\u EC2\u DefaultRole

  • 验证实例配置文件是否存在,但不具有任何角色:

    aws iam获取实例配置文件--实例配置文件名称EMR\u EC2\u DefaultRole

  • 使用以下命令添加角色:

    aws iam将角色添加到实例配置文件--实例配置文件名称EMR\u EC2\u DefaultRole--角色名称EMR\u EC2\u DefaultRole


  • 我尝试了一下,可以不用工具,使用我自己的Cloudformation堆栈让它工作

    密钥流角色必须有InstanceProfile,流角色和服务角色都必须作为ARN提供

    我就是这样让它为我工作的


    希望这对其他人也有帮助。

    我也遇到了同样的问题。我没有给出新的集群名称,只是保留了相同的默认集群名称“My cluster”,然后再次单击“Create cluster”。它创建时没有此错误