我已将EC2角色附加到实例,我的EC2实例,并且我正在运行AWS JAVA SDK。当我尝试以这种方式加载凭据时:
InstanceProfileCredentialsProvider instanceCred = new InstanceProfileCredentialsProvider();
我收到以下错误:
Exception in thread "main" com.amazonaws.AmazonClientException: Unable to load credentials.
at com.amazonaws.auth.InstanceProfileCredentialsProvider.loadCredentials(InstanceProfileCredentialsProvider.java:195)
at com.amazonaws.auth.InstanceProfileCredentialsProvider.getCredentials(InstanceProfileCredentialsProvider.java:124)
可以建议我可能缺少什么吗?
答案 0 :(得分:2)
我能够通过运行EC2实例中的代码并增强我的代码来解决这个问题,这里是代码:
String arn = "arn:aws:iam::"+accountnumber+":role/My-CrossAccount-CustomRole-ReadOnly";
InstanceProfileCredentialsProvider instanceCred = new InstanceProfileCredentialsProvider();
stscred = new STSAssumeRoleSessionCredentialsProvider(instanceCred.getCredentials(),arn,"123",clientConfiguration);
确保您的角色操作中有"sts:AssumeRole"
。