java - 如何使用在EC2上运行的java aws SDK获取accesskey、secretkey

标签 java amazon-web-services amazon-ec2 aws-java-sdk

在EC2上运行时,accesskey和secret key可以通过curl命令获取

curl http://169.254.169.254/latest/meta-data/iam/security-credentials/<rolename>

这些凭据不是恒定不变的,并且会不断变化。

我想知道是否有办法使用 aws-java-sdk 获取这些凭证?

我知道这可以做到 using boto3 in python .但是不知道如何在java中完成同样的事情。

最佳答案

是的,通过 EC2MetadataUtils.getIAMSecurityCredentials() EC2MetadataUtils 是您通过 curl 访问的元数据服务的 Java 适配器,并在 EC2MetadataUtils.IAMSecurityCredential 中公开这些字段。

签名:

public static class EC2MetadataUtils.IAMSecurityCredential

字段:

String accessKeyId 
String secretAccessKey 

要访问这些字段,请使用 EC2MetadataUtils.getIAMSecurityCredentials():

public static Map<String,EC2MetadataUtils.IAMSecurityCredential> getIAMSecurityCredentials()

文档:


这超出了这个问题的范围,但也值得注意的是,如果您在此实例上将这些凭证用于 AWS SDK for Java,则无需明确定义这些凭证——AWS 客户端使用默认值构造函数将搜索这些凭据作为默认凭据提供程序链的一部分。更多信息在 this documentation .

关于java - 如何使用在EC2上运行的java aws SDK获取accesskey、secretkey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41287920/

相关文章:

java - 静态访问常用函数?

java - JSF FacesTagExtraInfo 类不在 JSF 1.2 v 中

database - Amazon DynamoDB 以字符串形式获取项目

linux - 在AWS服务器(centOS服务器)安装openfire

amazon-ec2 - 无法使用弹性 IP SSH 进入私有(private)子网

java - 无法解析导入 - Visual Studio Code for Java

amazon-web-services - 你能通过 fargate 中的同一个容器将 desiredcount 缩小到 0 吗

docker - Rex-Ray卷不会与其他EC2服务器共享

amazon-web-services - AWS EBS 快照到 EFS

java - Java 中的图算法