从AWS EC2从AWS SDK访问S3,无需访问Id和密钥



AWS-EC2运行的AWS-SDK实例如何访问AWS-S3bucket?

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

如何做到这一点?

使用AmazonS3ClientBuilder.defaultClient((创建客户端。这使用链接中提到的DefaultAWSCredentialsProviderChain。

AWS凭据提供程序链,用于在此中查找凭据订单:

  • 环境变量-AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY
  • Java系统属性-aws.accessKeyId和aws.secretKey
  • 凭据配置文件位于所有aws SDK和aws CLI共享的默认位置(~/.aws/credentials(
  • 如果设置了AWS_container_Credentials_RELATIVE_URI"环境变量
    并且安全管理器有权访问该变量,则通过Amazon EC2容器服务传递的凭据
  • 通过Amazon EC2元数据服务提供的实例配置文件凭据

最新更新