创建 aws emr 默认角色时出错

Error when creating aws emr default-roles

我正在尝试使用 aws cli emr 命令创建集群。但是,我似乎无法在调用 aws emr create-cluster

之前创建所需的默认角色
$ aws emr create-default-roles

A client error (NoSuchEntity) occurred when calling the GetRole operation: Unknown

我已确保我的用户具有以下权限:

IAMFullAccess - AWS Managed policy
AmazonElasticMapReduceforEC2Role - AWS Managed policy
AmazonElasticMapReduceFullAccess - AWS Managed policy

有什么建议吗?有没有我可以复制角色 json 并手动创建它们的地方?

我开始这样做的原因是因为当我运行aws emr create-cluster它returns一个cluster-id。但是当 cluster-id 被查询时,它的状态被设置为终止并出现错误:EMR service role arn:aws:iam::141703095098:role/EMR_DefaultRole is invalid

我确实设法使用控制台添加了这些角色,方法是:

我的安全凭证 > 角色 > 创建新角色

具有以下属性的第一个角色:

name: EMR_DefaultRole
policy: AmazonElasticMapReduceRole

具有以下属性的第二个角色:

name: EMR_EC2_DefaultRole
policy: AmazonElasticMapReduceforEC2Role

不幸的是我没有让命令行工作,但我怀疑我的本地设置可能与此有关。

我在使用控制台时遇到问题。与客户一起工作:

# upgrade aws cli (can't hurt)
pip install --upgrade --user awscli

# aws configure process if you haven't (look it up)

# delete all the defunct shizzles
aws iam remove-role-from-instance-profile --instance-profile-name EMR_EC2_DefaultRole \
    --role-name EMR_EC2_DefaultRole
aws iam delete-instance-profile \
    --instance-profile-name EMR_EC2_DefaultRole
aws iam detach-role-policy \
  --role-name EMR_EC2_DefaultRole \
  --policy-arn arn:aws:iam::aws:policy/service-role/AmazonElasticMapReduceforEC2Role
aws iam delete-role --role-name EMR_EC2_DefaultRole
aws iam detach-role-policy --role-name EMR_DefaultRole \
    --policy-arn arn:aws:iam::aws:policy/service-role/AmazonElasticMapReduceRole
aws iam delete-role --role-name EMR_DefaultRole

# now re-create them
aws emr create-default-roles

请注意,如果您有附加策略,您可能必须进入控制台并删除它们或找到合适的 aws cli 命令。

来源(我们的产品有问题,我们的角色系统很麻烦,但如果您购买高级支持,我们会告诉您解决方法): https://aws.amazon.com/premiumsupport/knowledge-center/emr-default-role-invalid/