使用AWS IAM用户角色凭证的AWS S3存储桶API调用:

乍得·范德海(Chad Van De Hey)

使用AWS IAM用户角色的动机是让AWS自动处理每个服务调用的AWS密钥/凭证。在Apache Camel之后使用了这种方法,Apache Camel然后使用凭据安全地进行数据传输,即不在源代码中存储任何凭据。

我发现的问题是,IAM工具中制作的凭据仅在aws cli中起作用。

例如,我使用IAM自动生成的凭据成功运行了此操作(在我的环境变量中设置了它们):

aws s3 cp test.txt s3://x/test.txt

但是,当我尝试模仿API调用中的相同操作(相同凭据)时,收到以下错误消息:

The AWS Access Key Id you provided does not exist in our records.
(Service: Amazon S3; Status Code: 403; Error Code: InvalidAccessKeyId;         
Request ID: 07A4FCDCA2E82F9E)

此外,使用我的AWS账户安全凭证(即制作安全密钥ID和密钥),我可以使上述API正常工作。因此,API并不是问题(考虑到我已经测试了2个全音阶凭据集)。

最后,将我的AWS IAM用户角色设置为对S3存储桶具有完全访问权限,并且S3存储桶本身已配置为允许这样做。这就是我开始迷失在潜在路线上的地方。

知道了所有这些之后,我进行了一些研究,发现了有类似问题的人(1)(2)。每个资料来源都提出了解决问题的不同想法,但似乎都不适用于我的Apache Camel用例。

关于我使用Apache Camel的知识,我的代码示例如下:

    String awsS3Connection = "aws-s3://x" + "?accessKey=" + accessId +
                             "&secretKey=" + accessKey;

    from(awsS3Connection)
            .to(importProcessingEndpoint);
迈克尔-SQLbot

临时凭证对于服务API毫无意义,并且无法被服务API所识别,除非它们与随附的会话/安全令牌结合使用。

正在准备签名的请求时...

您可以将会话令牌添加到HTTP标头或名为的查询字符串参数中X-Amz-Security-Token您将会话令牌添加到HTTP标头或查询字符串参数,但不能两者都添加。

http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html#RequestWithSTS

但是,从Camel文档中,如何传递令牌以及它们是否甚至实现了对此的支持尚不清楚。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Spring Boot无法连接到AWS S3存储桶-IAM凭证正确

托管在 AWS s3 存储桶上的 php Api

使用IAM角色从脚本访问S3存储桶

AWS S3 存储桶策略

AWS S3存储桶加密

AWS S3存储桶删除

AWS S3存储桶问题

使用AWS S3 REST API检索存储桶的对象而无需知道存储桶的区域

如何在AWS S3存储桶中使用Angular应用程序对AWS Elastic Beanstalk中的服务进行API调用

使用AWS S3存储桶的授权错误

无法使用Boto连接AWS S3存储桶

AWS使用Java API获取S3存储桶大小

Heroku 如何使用 AWS S3 凭证访问我的存储桶中的图像?

Powershell:使用临时凭证访问AWS s3存储桶

如何使用IAM策略AWS仅向S3存储桶的根帐户用户授予访问权限?

AWS S3:特定存储桶的用户策略

AWS使用IAM角色从Spark访问s3

使用IAM角色从Java访问AWS S3

AWS S3存储桶加密-存储桶属性设置与存储桶策略设置

基于云和REST API的记录并存储到Google存储桶或AWS S3

所有 s3 存储桶上的 AWS s3 存储桶批量加密

如何在Scala或Java中模拟或存根AWS SDK S3存储桶调用?

使用boto3访问其他AWS用户S3存储桶

即使使用存储桶和/或用户策略,也无法在AWS s3存储桶上进行访问

AWS S3存储桶日志与AWS CloudTrail

AWS IAM 策略:按用户/角色限制存储桶/文件夹访问?

使用IAM角色创建AWS SES SMTP凭证

使用AWS和S3存储桶的静态站点的基本用户身份验证

Apache Ozone + AWS S3 .Net API:PutObject正在创建存储桶而不是密钥