使用AWS STS假设角色配置AWS EMR Spark

时间:2019-07-24 13:25:04

标签: amazon-web-services apache-spark amazon-s3 amazon-emr aws-sts

我正在尝试从s3存储桶中的另一个AWS账户中读取文件。

步骤:

  1. 使用 aws sts assume-role 命令生成的访问ID,访问密钥秘密和令牌
  2. 设置以下变量:

    export AWS_ACCESS_KEY_ID=
    export AWS_SECRET_ACCESS_KEY=
    export AWS_SESSION_TOKEN=
    
  3. aws s3 ls s3://...

  4. 正在读取 spark-shell

    中的文件
    sc.hadoopConfiguration.set("fs.s3n.awsAccessKeyId", "XXX")
    sc.hadoopConfiguration.set("fs.s3n.awsSecretAccessKey", "XXX")
    sc.hadoopConfiguration.set("fs.s3a.session.token", "XXX")
    spark.read.parquet("file location")
    

直到第3步,它的工作状况都很好。

我无法在spark-shell中读取文件。 我正在使用 spark版本:2.4.3 。请让我知道我想念的东西。任何帮助将不胜感激。

错误日志:

    Caused by: com.amazon.ws.emr.hadoop.fs.shaded.com.amazonaws.services.s3.model.AmazonS3Exception: The AWS Access Key Id you provided does not exist in our records. 

1 个答案:

答案 0 :(得分:0)