首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Boto/Boto 3: bucket.get_key():403禁忌

Boto/Boto 3: bucket.get_key():403禁忌
EN

Stack Overflow用户
提问于 2017-12-14 11:28:04
回答 1查看 1.4K关注 0票数 0

我试图在不使用凭据的情况下连接到AWS S3。我为我的实例附加了角色S3完全访问,以检查文件是否存在;如果不存在,则将其上载到S3桶中。如果不是,我想检查md5sum,如果它与本地文件不同,上传一个新版本。

我试图使用S3通过boto获取bucket.get_key('mykey')文件的密钥,并得到以下错误:

代码语言:javascript
复制
File "/usr/local/lib/python3.5/dist-packages/boto/s3/bucket.py", line 193, in get_key key, resp = self._get_key_internal(key_name, headers, query_args_l)

File "/usr/local/lib/python3.5/dist-packages/boto/s3/bucket.py", line 232, in _get_key_internal response.status, response.reason, '') boto.exception.S3ResponseError: S3ResponseError: 403 Forbidden"

在拿到桶时,我搜索并添加了"validate=False",但这并没有解决我的问题。我使用Python3.5、botoboto3

这是我的代码:

代码语言:javascript
复制
import boto3
import boto
from boto import ec2
import os
import boto.s3.connection
from boto.s3.key import Key

bucket_name = "abc"

conn = boto.s3.connect_to_region('us-west-1', is_secure = True, calling_format = boto.s3.connection.OrdinaryCallingFormat())
bucket = conn.get_bucket(bucket_name, validate=False)
key = bucket.get_key('xxxx')

print (key)

我不知道我为什么会犯这个错误。请帮我把这个问题弄清楚。谢谢!

已更新

我只是找到了这个问题的根源。由“请求时间与当前时间的差异太大”引起的。然后,它没有从S3桶中获取文件密钥。我更新了ntp服务,以同步本地时间和UTC时间。它成功了。同步时间:

代码语言:javascript
复制
sudo service ntp stop
sudo ntpdate -s  0.ubuntu.pool.ntp.org
sudo service ntp start

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2017-12-14 15:43:26

IAM角色是,按搜索的顺序排列。我敢打赌,您在搜索订单之前存储了凭据,它没有完全的S3访问权限。检查配置设置和优先级并确保没有凭据存在,以便使用IAM角色来获取凭据。虽然它适用于CLI,但它也适用于脚本。

AWS CLI按照以下顺序查找凭据和配置设置:

  1. 命令行选项-区域、输出格式和配置文件可以指定为命令选项,以覆盖默认设置。
  2. 环境变量- AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY和AWS_SESSION_TOKEN。
  3. AWS凭据文件-位于Linux、macOS或Unix上的~/.AWS/凭据,或位于Windows上的C:\Users\用户名.aws\credentials。除了默认配置文件之外,此文件还可以包含多个命名配置文件。
  4. CLI配置文件-通常位于Linux、macOS或Unix上的~/..aws/config,或者位于Windows上的C:\Users\用户名.aws\config。此文件可以包含每个配置文件的默认配置文件、命名概要文件和CLI特定配置参数。
  5. 容器凭据--由在为任务分配角色时对容器实例提供。
  6. 实例配置文件凭据--这些凭据可以在具有指定实例角色的EC2实例上使用,并通过AmazonEC2元数据服务传递。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47812247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档