Java AWS开发工具包InstanceProfileCredentialsProvider提供了无效的AWS凭证

时间:2020-04-13 19:39:52

标签: java amazon-s3 amazon-ec2

我需要aws凭证来签署S3上传请求。 我有一个角色,可以完全访问与我的ec2实例相关联的S3。 我调用InstanceProfileCredentialsProvider.getCredentials()并获取一些accessKeyId和secretKey。 当应用程序在我的ec2实例上运行并将凭据应用于S3请求并引发以下错误时:您提供的AWS Access Key ID在我们的记录中不存在。 当我尝试在同一ec2实例上从实例配置文件中卷曲凭据时,我得到的凭据完全不同。

这是代码段: ... InstanceProfileCredentialsProvider icp = new InstanceProfileCredentialsProvider(false); 返回icp.getCredentials()。getAWSAccessKeyId();

这是我如何缩小信誉的方式: 令牌=卷-X PUT“ http://169.254.169.254/latest/api/token” -H“ X-aws-ec2-metadata-token-ttl-seconds:21600” && curl -H“ X-aws-ec2-元数据令牌:$ TOKEN” -v http://169.254.169.254/latest/meta-data/iam/security-credentials/my_role_name

引发的错误: com.amazonaws.services.s3.model.AmazonS3Exception:您提供的AWS Access Key ID在我们的记录中不存在。 (服务:Amazon S3;状态代码:403;错误代码:InvalidAccessKeyId;请求ID:F421F2243DF27432),S3扩展请求ID:2MX7fwX5E60xR807qQP4cvqj5e1mOyQ3mV5jrrGrKuCnjxJs0xTfME6Fye9W5E6 在com.amazonaws.http.AmazonHttpClient $ RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1588)

环境: 使用的AWS Java SDK版本:1.11.xxx; 使用的JDK版本:1.8.0; 操作系统和版本:Linux amzn1.x86_64#1 SMP Sun Feb 9 00:23:26 UTC 2020 x86_64 x86_64 x86_64 GNU / Linux

0 个答案:

没有答案