【问题标题】:Cannot Launch EMR Jobflow using Temporary Credentials from EC2 IAM Roles无法使用来自 EC2 IAM 角色的临时凭证启动 EMR 作业流
【发布时间】:2014-10-10 18:36:52
【问题描述】:

我有一个已分配 EC2 IAM 角色的实例。我无法使用分配了角色的实例提供的临时凭证从此实例创建 EMR 作业流,我从 API 收到以下响应:

  <Error>
    <Type>Sender</Type>
    <Code>ValidationError</Code>
    <Message>Service role and InstanceProfile are required for calls made with temporary credentials provided by STS</Message>
  </Error>

谷歌搜索此错误消息并没有发现任何信息。无论我直接使用 AWS CLI 还是 boto,我都会从 API 获得相同的响应。为了遵循此错误消息的建议,我尝试将 {InstanceProfile: &lt;instance_profile_name&gt;} 传递给 boto 中 run_jobflow 方法的 api_params 参数,但仍然得到相同的错误。我还尝试对run_jobflow 使用service_role 参数,但也失败了。两者同时通过也失败了。

根据来自亚马逊文档的page,EMR 应该支持 STS 和 EC2 IAM 角色,所以想知道以前是否有人让这个工作过。

【问题讨论】:

    标签: amazon-web-services amazon-emr


    【解决方案1】:

    是的,我设法让这个工作,使用:

    • 显式service-role(使用EMR_DefaultRole作为模板)
    • 一个显式的jobflow-role(使用EMR_EC2_DefaultRole作为模板)
    • 向 EC2 IAM 角色授予 iam:PassRole 权限(对于 service-role 资源)

    【讨论】:

      【解决方案2】:

      我得到了这个在 java 中的工作。像 Sam 一样,我指定了服务角色和工作流角色。令我惊讶的是,关于 InstanceProfile 的错误要求我设置工作流角色。例如:

      myRunJobFlowRequest.setServiceRole("EMR_DefaultRole");
      myRunJobFlowRequest.setJobFlowRole("EMR_EC2_DefaultRole")
      

      我做的另一件事是在我的云形成模板中,我将 AmazonElasticMapReduceFullAccess 策略授予我的实例角色。例如:

      "Policies": [
                {
                  "PolicyName": "AmazonElasticMapReduceFullAccess",
                  "PolicyDocument": {
                    "Statement": [
                      {
                        "Effect": "Allow",
                        "Action": "*",
                        "Resource": "*"
                      }
                    ]
                  }
                }
      

      【讨论】:

      • 我正在使用 boto,为了让它工作,我需要设置:job_flow_role='EMR_EC2_DefaultRole' service_role='EMR_DefaultRole' 在我对 run_jobflow 的调用中
      • 此策略允许受影响的资源执行他们喜欢的任何 AWS 操作。这可能太过分了。
      猜你喜欢
      • 1970-01-01
      • 2018-01-07
      • 2021-07-28
      • 2020-02-01
      • 2012-08-20
      • 2020-05-30
      • 2018-02-07
      • 1970-01-01
      • 2012-07-19
      相关资源
      最近更新 更多