无需访问ID和秘密密钥即可从AWS开发工具包从AWS EC2访问S3

时间:2018-11-20 09:47:09

标签: amazon-web-services amazon-s3 amazon-ec2 aws-sdk

AWS-EC2 实例运行的 AWS-SDK 如何访问 AWS-S3 存储桶?

  1. AWS-EC2 策略已设置为可以访问 S3     桶,没有accessId和密钥。
  2. Aws-cli 工具能够从EC2实例访问 S3存储桶,而无需任何 accessId和秘密密钥
  3. 如果 aws-cli 工具能够在没有 accessId和密钥密钥的情况下访问S3,则AWS-SDK在运行时也必须有一种方法     来自EC2实例。

这怎么办?

1 个答案:

答案 0 :(得分:1)

使用AmazonS3ClientBuilder.defaultClient()创建客户。如链接中所述,它使用DefaultAWSCredentialsProviderChain

  

在此查找凭证的AWS凭证提供者链   订单:

     
      
  • 环境变量-AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY(推荐,因为它们已被所有AWS开发工具包和CLI识别
      .NET除外),或AWS_ACCESS_KEY和AWS_SECRET_KEY(仅
      被Java SDK认可)
  •   
  • Java系统属性-aws.accessKeyId和aws.secretKey
  •   
  • 所有AWS开发工具包和AWS CLI共享的默认位置(〜/ .aws / credentials)的证书配置文件
  •   
  • 如果设置了环境变量“ AWS_CONTAINER_CREDENTIALS_RELATIVE_URI”,则通过Amazon EC2容器服务传递的凭证
      并且安全管理者有权访问该变量
  •   
  • 通过Amazon EC2元数据服务提供的实例配置文件凭证
  •