从AWS-EC2运行的AWS-SDK实例如何访问AWS-S3bucket?
- 设置AWS-EC2策略,使其可以访问S3bucket,没有accessId和密钥
- Aws cli工具能够从EC2实例访问S3存储桶,而无需任何accessId和密钥
- 如果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元数据服务提供的实例配置文件凭据