在我们的应用程序中,我们使用InstanceProfileCredentialsProvider访问Amazon存储桶,但是在我们的一些环境中,凭据被弄乱了。
AWS文档(https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/java-dg-roles.html)如下:
如果应用程序使用默认构造函数创建AWS客户端,则客户端将按照以下顺序使用默认凭据提供程序链搜索凭据:
Java属性中的aws.secretKey.
。
有没有一种方法可以知道InstanceProfileCredentialsProvider从哪里获得凭据?从它的源代码来看,它是相当谨慎的,并且通过API或日志记录没有分享太多的细节。
发布于 2020-07-20 20:39:28
InstanceProfileCredentialsProvider从EC2实例元数据服务获取凭据。如果启用了元数据端点,则继续在EC2实例上运行的API服务。
API端点- http://169.254.169.254/latest/meta-data/latest/meta-data/iam/security-credentials/
在上面的例子中,运行Java代码的EC2实例应该有一个附加的IAM角色到EC2实例,后者可以访问S3资源。
很可能InstanceProfileCredentialsProvider正在使用EC2MetadataClient.java
https://stackoverflow.com/questions/62226119
复制相似问题