【问题标题】:Accessing AWS S3 with temporary credentials使用临时凭证访问 AWS S3
【发布时间】:2016-08-17 20:29:22
【问题描述】:

您好,我有一个用 Scala(分布式系统 - Spark)编写的应用程序,我需要对我的 S3 存储桶具有读取权限。 我可以使用 IAM 用户通过 AWS 控制台访问此存储桶,并且我想使用 IAM 用户获取该存储桶的临时凭证。任何人都可以解释如何或是否可能..?

我看过这个教程:http://docs.aws.amazon.com/AWSSdkDocsJava/latest/DeveloperGuide/prog-services-sts.html 但使用临时凭证的全部意义在于我不想将 AWS 凭证添加到我的代码中,而且看起来 AWSSecurityTokenServiceClient 需要它。

【问题讨论】:

    标签: java scala amazon-s3 apache-spark aws-sts


    【解决方案1】:

    如果您不想在代码中使用 AWS 凭证,可以使用 InstanceProfileCredentialsProvider。如果您从 ec2 实例内部运行代码,则可以获得与与 EC2 实例关联的 IAM 角色具有相同权限的临时凭证。

    val instanceProfileCredentialsProvider = new com.amazonaws.auth.InstanceProfileCredentialsProvider()
    val credentials: AWSCredentials = instanceProfileCredentialsProvider.getCredentials
    
    hadoopConf.set("fs.s3a.awsAccessKeyId", credentials.getAWSAccessKeyId)
    hadoopConf.set("fs.s3a.awsSecretAccessKey", credentials.getAWSSecretKey)
    

    def s3 = new AmazonS3Client(instanceProfileCredentialsProvider)
    

    点击here了解更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-27
      • 2017-03-30
      • 2021-01-16
      • 1970-01-01
      • 2016-09-25
      相关资源
      最近更新 更多