Amazon web services 使用AWS sts角色配置AWS EMR spark

Amazon web services 使用AWS sts角色配置AWS EMR spark,amazon-web-services,apache-spark,amazon-s3,amazon-emr,aws-sts,Amazon Web Services,Apache Spark,Amazon S3,Amazon Emr,Aws Sts,我正在尝试从另一个AWS帐户中的s3 bucket读取文件 步骤: 使用aws sts假定角色生成的访问id、访问密钥密钥和令牌 设置以下变量: export AWS_ACCESS_KEY_ID= export AWS_SECRET_ACCESS_KEY= export AWS_SESSION_TOKEN= aws s3 ls s3://… 正在spark shell中读取文件 sc.hadoopConfiguration.set("fs.s3n.awsAccessKeyId", "XXX"

我正在尝试从另一个AWS帐户中的s3 bucket读取文件

步骤:

  • 使用aws sts假定角色生成的访问id、访问密钥密钥和令牌
  • 设置以下变量:

    export AWS_ACCESS_KEY_ID=
    export AWS_SECRET_ACCESS_KEY=
    export AWS_SESSION_TOKEN=
    
  • aws s3 ls s3://…

  • 正在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. 
    

    您的凭据似乎已被删除

    您还可以看到: