创建 EMR 集群时出错,EMR 服务角色无效
Posted
技术标签:
【中文标题】创建 EMR 集群时出错,EMR 服务角色无效【英文标题】:Error when creating EMR cluster, EMR service role is invalid 【发布时间】:2020-05-12 01:05:08 【问题描述】:我正在通过 cloudformation 和 lambda 函数创建一个 emr 集群。创建堆栈后,当我运行 lambda 函数时,它通过给 EMR 服务角色启动集群:无效错误。附上我的服务角色和工作流角色代码。这是我缺少的权限还是我应该给予的权限,以便我的 emr 开始执行这些步骤。
EMRClusterServiceRole:
Type: 'AWS::IAM::Role'
Properties:
AssumeRolePolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Principal:
Service:
- ec2.amazonaws.com
Action:
- 'sts:AssumeRole'
ManagedPolicyArns:
- arn:aws:iam::aws:policy/service-role/AmazonElasticMapReduceforEC2Role
Path: /
EMRClusterinstanceProfileRole:
Type: 'AWS::IAM::Role'
Properties:
AssumeRolePolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Principal:
Service:
- ec2.amazonaws.com
Action:
- 'sts:AssumeRole'
ManagedPolicyArns:
- arn:aws:iam::aws:policy/service-role/AmazonElasticMapReduceforEC2Role
Path: /
EMRClusterinstanceProfile:
Type: AWS::IAM::InstanceProfile
Properties:
Path: /
Roles:
- !Ref EMRClusterinstanceProfileRole
EMRJobFlowProfileinstance:
Type: AWS::IAM::InstanceProfile
Properties:
Path: /
Roles:
- !Ref EMRJobFlowRole
EMRJobFlowRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Principal:
Service:
- ec2.amazonaws.com
Action:
- 'sts:AssumeRole'
ManagedPolicyArns:
- arn:aws:iam::aws:policy/service-role/AmazonElasticMapReduceforEC2Role
Path: /
【问题讨论】:
EMRClusterServiceRole
有错误的缩进。不知道是由于复制粘贴到 SO 还是在您的代码中实际上是这样的。
在堆栈创建完成后创建角色。但是当创建 emr 时,它给了我上述错误。我还检查了缩进,看起来不错。
EMR 服务角色不应该在其信任策略中使用elasticmapreduce.amazonaws.com
吗? EMR 创建默认角色。检查它们,并与你的比较。
是的,当我添加策略时它起作用了
很高兴听到。如果您不介意,我会添加一个答案以供将来参考。
【参考方案1】:
基于 cmets,解决方案是使用 aselasticmapreduce.amazonaws.com
信任策略原则。
【讨论】:
以上是关于创建 EMR 集群时出错,EMR 服务角色无效的主要内容,如果未能解决你的问题,请参考以下文章
如何在 EMR 上使用 MrJob 0.4.2 设置 IAM 角色