amazon-web-services - 使用 aws sts assume-role 配置 AW

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

步骤:

  1. 使用 aws sts assume-role 命令生成访问 ID、访问 key 和 token
  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. 

最佳答案

您的凭据似乎已被删除。

您还可以看到: https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/security-cross-account.html

关于amazon-web-services - 使用 aws sts assume-role 配置 AWS EMR spark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57184047/

相关文章:

reactjs - 使用 React Router V4 时如何防止组件立即卸载

json - 将选定的内容模型及其内容导出到 Contentful 中的另一个空间

node.js - 如何在模块加载到 NodeJS 之前获取和使用 Secret Manager 值

node.js - TransferHttpCacheModule 不会阻止 Angular 8 中

firebase - 我应该使用 Firebase 动态链接而不是通用链接和应用链接吗?

java - 如何使用 .p8 文件签署 json 网络 token

reactjs - 添加具有 Material 表的组件会更改 Material-UI AppBar

node.js - 如何在 node 中集成 swagger 和 fastify 框架

npm - 在私有(private)网络上托管 github 发布

php - 在电子邮件中添加 PhpSpreadsheet 附件