![](/img/trans.png)
[英]How can I get list of IAM Roles from EC2 using Java SDK or Amazon API?
[英]How to retrieve temporary AWS credentials from Amazon using IAM role associated with the EC2 instance(in java)?
我在AMAZON上创建了与EC2实例相关联的IAM角色,据我从亚马逊文档了解,我可以检索临时AWS凭证并对此进行一些处理。用于来自实例内部而不是来自外部世界的呼叫。 这是什么意思 在本地tomcat服务器上开发应用程序时,如何与AWS安全通信?
您应该使用默认提供程序链和EC2实例配置文件 。 对于您的情况,由于您已经将角色添加到实例中,并且考虑到您正在使用Java SDK,因此需要调用:
InstanceProfileCredentialsProvider mInstanceProfileCredentialsProvider = new InstanceProfileCredentialsProvider();
AWSCredentials credentials = mInstanceProfileCredentialsProvider.getCredentials();
或者,如果您使用的是特定服务,例如AWS S3,则可以直接调用:
AmazonS3 s3Client = new AmazonS3Client(new DefaultAWSCredentialsProviderChain());
有关更多信息: http : //docs.aws.amazon.com/java-sdk/latest/developer-guide/java-dg-roles.html
提醒您: 永远不要在代码中留下访问密钥和密钥秘密。
看来您的情况是:
在这种情况下, 不适合使用IAM角色 。
相反,您将需要为您的应用程序提供一组有效的AWS凭证(访问密钥+秘密密钥)。 这可以通过创建IAM用户 ,复制提供的凭据并将其放置在应用程序的配置中来完成。
从使用AWS开发工具包的应用程序进行API调用时,开发工具包将自动在各个位置查找有效凭证。 如果是Java, 则按以下顺序查找凭据的DefaultAWSCredentialsProviderChain :
因此,将凭据存储在前三个选项之一中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.