Java AWS InstanceProfileCredentialsProvider-凭据来自何处?

Java AWS InstanceProfileCredentialsProvider-凭据来自何处?,java,amazon-web-services,credentials,Java,Amazon Web Services,Credentials,在我们的应用程序中,我们使用InstanceProfileCredentialsProvider访问AmazonS3存储桶,但在我们的一些环境中,凭据被弄乱了 AWS文档()内容如下: 如果应用程序使用默认构造函数创建AWS客户端,则客户端将使用默认凭据提供程序链按以下顺序搜索凭据: 在Java系统属性中:aws.accessKeyId和aws.secretKey 系统内环境变量:AWS\u ACCESS\u KEY\u ID和 AWS\u密码\u访问\u密钥 在默认凭据文件中(位置 此文件的格

在我们的应用程序中,我们使用InstanceProfileCredentialsProvider访问AmazonS3存储桶,但在我们的一些环境中,凭据被弄乱了

AWS文档()内容如下:

如果应用程序使用默认构造函数创建AWS客户端,则客户端将使用默认凭据提供程序链按以下顺序搜索凭据:

  • 在Java系统属性中:aws.accessKeyId和aws.secretKey
  • 系统内环境变量:AWS\u ACCESS\u KEY\u ID和 AWS\u密码\u访问\u密钥
  • 在默认凭据文件中(位置 此文件的格式因平台而异)
  • 通过 如果 设置了AWS\u容器\u凭证\u相对\u URI环境变量 并且安全管理器具有访问该变量的权限
  • 在实例配置文件中,存在于实例中的凭据 与EC2实例的IAM角色关联的元数据
  • 来自环境或容器的Web标识令牌凭据

  • 有没有办法知道InstanceProfileCredentialsProvider从哪里获得凭据?从其源代码来看,它非常谨慎,通过API或日志记录不共享太多细节。

    InstanceProfileCredentialsProvider从EC2实例元数据服务获取凭据。如果启用了元数据端点,则在EC2实例上连续运行的API服务

    API端点-

    在上述情况下,运行Java代码的EC2实例应该具有附加到EC2实例的IAM角色,EC2实例可以访问S3资源

    InstanceProfileCredentialsProvider很可能正在使用EC2MetadatClient.java