首页 > 解决方案 > 使用 aws sts 假设角色配置 AWS EMR spark

问题描述

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

脚步:

  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 中读取文件。我正在使用火花版本: 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. 

标签: amazon-web-servicesapache-sparkamazon-s3amazon-emraws-sts

解决方案



推荐阅读