首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS InstanceProfileCredentialsProvider -凭据从何而来?

AWS InstanceProfileCredentialsProvider -凭据从何而来?
EN

Stack Overflow用户
提问于 2020-06-06 01:04:45
回答 1查看 1.9K关注 0票数 1

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

AWS文档(https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/java-dg-roles.html)如下:

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

Java属性中的aws.secretKey.

  • In

  • :aws.accessKeyId和AWS_SECRET_ACCESS_KEY.

  • In系统环境变量: AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY.

  • In默认凭据文件(如果设置了AWS_CONTAINER_CREDENTIALS_RELATIVE_URI环境变量,并且安全管理器具有访问该变量的权限,则该文件的位置因通过AmazonEC2容器服务传递的platform).

  • Credentials而异。存在于与来自环境或容器的instance.

  • Web标识令牌凭据的IAM角色关联的实例元数据中。

有没有一种方法可以知道InstanceProfileCredentialsProvider从哪里获得凭据?从它的源代码来看,它是相当谨慎的,并且通过API或日志记录没有分享太多的细节。

EN

回答 1

Stack Overflow用户

发布于 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/

https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/index.html?com/amazonaws/auth/InstanceProfileCredentialsProvider.html

在上面的例子中,运行Java代码的EC2实例应该有一个附加的IAM角色到EC2实例,后者可以访问S3资源。

很可能InstanceProfileCredentialsProvider正在使用EC2MetadataClient.java

https://github.com/aws/aws-sdk-java/blob/7b1e5b87b0bf03456df9e77716b14731adf9a7a7/aws-java-sdk-core/src/main/java/com/amazonaws/internal/EC2MetadataClient.java

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62226119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档