gpt4 book ai didi

python - 错误 : Test failed: 400 (InvalidToken): The provided token is malformed or otherwise invalid

转载 作者:太空狗 更新时间:2023-10-29 22:04:52 27 4
gpt4 key购买 nike

s3cmd 通过运行从 epel-testing 仓库安装:

yum --enablerepo epel-testing install s3cmd

然后我用 s3cmd --configure 调用了配置工具,但我得到了这个错误:

Test access with supplied credentials? [Y/n] 
Please wait, attempting to list all buckets...
ERROR: Test failed: 400 (InvalidToken): The provided token is malformed or otherwise invalid.

Invoked as: /usr/bin/s3cmd --configureProblem: AttributeError: 'S3Error' object has no attribute 'find'
S3cmd: 1.5.0-beta1
python: 2.6.8 (unknown, Mar 14 2013, 09:31:22)
[GCC 4.6.2 20111027 (Red Hat 4.6.2-2)]

Traceback (most recent call last):
File "/usr/bin/s3cmd", line 2323, in <module>
main()
File "/usr/bin/s3cmd", line 2221, in main
run_configure(options.config, args)
File "/usr/bin/s3cmd", line 1704, in run_configure
if e.find('403') != -1:
AttributeError: 'S3Error' object has no attribute 'find'

我确定 key 是正确的。

你有什么想法吗?


更新 2014 年 3 月 21 日星期五 22:44:42

在 Debug模式下运行时发现了一些线索。

使用相同的凭据,在工作系统上:

DEBUG: SignHeaders: 'GET\n\n\n\nx-amz-date:Fri, 21 Mar 2014 07:07:18 +0000\n/'

在失败的系统上:

DEBUG: SignHeaders: 'GET\n\n\n\nx-amz-date:Fri, 21 Mar 2014 07:40:56 +0000\nx-amz-security-token:AQoDYXdzENb...\n/'

此安全 token 取自元数据:

# wget -O - -q 'http://169.254.169.254/latest/meta-data/iam/security-credentials/myrole'
{
"Code" : "Success",
"LastUpdated" : "2014-03-21T12:45:27Z",
"Type" : "AWS-HMAC",
"AccessKeyId" : "foo",
"SecretAccessKey" : "bar",
"Token" : "AQoDYXdzENb....",
"Expiration" : "2014-03-21T19:18:02Z"
}

所以我的问题应该改为:为什么有时 s3cmd 在运行 --configure< 时将 x-amz-security-token 添加到 header 中(我没有使用--add-header)?

最佳答案

安装 s3cmd、设置 IAM 并附加“Amazon S3 完全访问”角色后 - 我也遇到了“提供的 token 格式错误或无效”错误。接下来,我创建了一个 IAM 并附加了一个带有管理员凭据(所有内容)的策略。

使用这个新的 IAM 再次出现错误。

在 github.com 线程中,@mdomsch 提到了使用具有嵌入式 IAM 角色的 EC2 的一些可能问题 - 这就是我使用 s3cmd 的 EC2 所具有的问题。

接下来,我试着运行。

s3cmd --access_key=xxxx --secret_key=xxxxxxxxxxxxx ls

将 IAM key 与 S3 策略结合使用,它起作用了。

所以 s3cmd 默认使用 EC2 中嵌入角色的凭据。我敢肯定,如果您使用可以访问 S3 的角色启动另一个 EC2 - 您将不会收到此“提供的 token 格式错误或无效”错误。

但是 - 请不要将 -access_key=xxxx --secret_key=xxxxxxxxxxxxx 参数粘贴到任何使用 s3cmd 的脚本中。在可能的情况下——尝试在启动 EC2 时将角色嵌入到它们中(良好的安全实践)

无论如何 - 为了测试 - 我启动了另一个没有任何嵌入式 IAM 角色的 EC2,安装了 s3cmd,进行了配置 - 使用我的具有 S3 策略的 IAM 用户,一切都按预期工作。

关于python - 错误 : Test failed: 400 (InvalidToken): The provided token is malformed or otherwise invalid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22534620/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com