【发布时间】:2021-09-28 00:35:30
【问题描述】:
我的 C++ 程序必须访问公共和私有 AWS 存储桶。公共存储桶不属于我,因此当程序尝试访问它们并且我的凭据可见时,我收到以下类型错误:
Aws::S3::S3Errors::INVALID_ACCESS_KEY_ID
"InvalidAccessKeyId"
"The AWS Access Key Id you provided does not exist in our records."
如果我像这样手动隐藏我的凭据
mv ~/.aws/credentials ~/.aws/credentials-hidden
在运行程序之前,我可以成功列出并获取公共对象。但是,该程序无法访问我的私人存储桶。
我搜索了 S3Client 和 ClientConfiguration 以查找禁用和重新启用凭据检查的选项,但没有找到。
请告诉我这是怎么做到的。
【问题讨论】:
-
我对 cpp 一点也不熟悉,但这可能是要走的路。 sdk.amazonaws.com/cpp/api/LATEST/…
-
这听起来有点像 AWS CLI 的
--no-sign-request选项,但我不知道如何在正常的 API 调用中强制它。错误消息很奇怪,因为它应该简单地用 403 拒绝而不是拒绝知道访问密钥。我建议您尝试使用 AWS CLI 来缩小可能发生的情况,然后在您的 C++ 代码中实施您的发现。
标签: amazon-web-services amazon-s3 aws-credentials