2015-02-06 195 views
4

我試圖從AWS控制檯啓動一個AWS EMR集羣,並且正在以下錯誤: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" 
    } 
    ] 
} 

回答

0

你只有只讀權限EMR

「elasticmapreduce:描述*」,

您需要給彈性地圖全面進入減少,這樣就可以啓動集羣/終止

一旦你把這個訪問角色的政策看起來像

「elasticmapreduce:*」,

4

我終於解決了這個問題。這很令人困惑,因爲默認情況下,實例配置文件和角色使用相同的名稱。下面完整的步驟概述,但您可以跳過各個步驟。

  1. 創建默認角色(如果錯誤,降級到awscli版本30年1月10日)

    aws emr create-default-roles

  2. 創建實例配置文件,如果它不存在:

    aws iam create-instance-profile --instance-profile-name EMR_EC2_DefaultRole

  3. 驗證實例配置文件是否存在,但沒有任何角色:

    aws iam get-instance-profile --instance-profile-name EMR_EC2_DefaultRole

  4. 使用添加角色:

    aws iam add-role-to-instance-profile --instance-profile-name EMR_EC2_DefaultRole --role-name EMR_EC2_DefaultRole

0

我試着和周圍能拿它不使用我自己的Cloudformation堆棧的工具工作。

您必須爲流角色以及流角色和服務角色都必須具有InstanceProfile的密鑰必須作爲ARN提供。

這就是我爲它工作的原因!

希望能幫助別人。

0

我得到了同樣的問題。我沒有給出新的羣集名稱,而是保留了相同的默認羣集名稱「我的羣集」,並再次單擊「創建羣集」。它沒有這個錯誤創建。