【问题标题】:Terminated with errors - Service role My-EMR-Role has insufficient EC2 permissions因错误而终止 - 服务角色 My-EMR-Role 的 EC2 权限不足
【发布时间】:2021-09-01 05:10:32
【问题描述】:

我正在使用 My-EMR-Role 复制和粘贴本 AWS 指南 https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-role.html 中发布的策略

使用此配置时:

EMR role: My-EMR-Role
EC2 instance profile: EMR_EC2_DefaultRole

似乎工作正常。

但是当例如我使用:

EMR role: My-EMR-Role 
EC2 instance profile: My_EMR_EC2_DefaultRole

如果 My_EMR_EC2_DefaultRole 使用相同的 EMR_EC2_DefaultRole 策略实例,则集群失败并显示错误消息:

Terminated with errors - Service role Test-EMR has insufficient EC2 permissions

这很奇怪,因为 My-EMR-Role 在与 EMR_EC2_DefaultRole 配对时正在工作 - 再次,EMR_EC2_DefaultRole 和 My_EMR_EC2_DefaultRole 都指的是 AWS 提供的同一策略实例 AmazonElasticMapReduceforEC2Role

使用完全相同的策略时为什么会收到此错误?

【问题讨论】:

    标签: amazon-web-services apache-spark amazon-iam amazon-emr


    【解决方案1】:

    通过查看本文https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-role.html 中提供的策略,可以看到最后一个元素PassRoleForEC2 具有基于角色名称EMR_EC2_DefaultRole 的资源限制:

        {
            "Sid": "PassRoleForEC2",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::*:role/EMR_EC2_DefaultRole",
            "Condition": {
                "StringLike": {
                    "iam:PassedToService": "ec2.amazonaws.com*"
                }
            }
        }
    

    因此,要使其与新创建的角色一起使用,必须使用 My_EMR_EC2_DefaultRole 更改资源,并且资源变为:

            "Resource": "arn:aws:iam::*:role/My_EMR_EC2_DefaultRole",
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-16
      • 1970-01-01
      • 2021-02-18
      • 2019-07-01
      • 1970-01-01
      • 2021-10-29
      • 2020-04-29
      • 1970-01-01
      相关资源
      最近更新 更多