Я получаю «S3ResponseError: 403 Forbidden» от некоторых операций boto 2.49.0, которые ранее работали.
Мне кажется, что я могу поместить объекты и получить их, но не удалить или загрузить , Например:
import boto
s3 = boto.connect_s3('my_key', 'my_secret')
bucket = s3.lookup('my_bucket_name')
key = bucket.new_key('testkey')
key.set_contents_from_string('This is a test')
key.exists()
Это работает, а key.exists()
возвращает True. Я могу видеть новый файл testkey
в моем ведре консоли AWS.
key.delete()
возвращает S3ResponseError: 403 Forbidden
, и при загрузке его также:
with open('gettestkey', 'wb') as f:
key.get_contents_to_file(f)
Политика прилагается пользователю IAM, чьи кредиты, которые я использую, включают:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::my_bucket_name",
]
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:PutObjectAcl",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::my_bucket_name/*",
]
}
]
}
Я видел несоответствия между временем сервера, упомянутым в качестве возможной причины, но временем в моем локальном экземпляре Docker (где я выполнение выше) кажется правильным.
Чего мне не хватает? Что могло бы измениться - либо в кодовой базе, либо в корзине - чтобы эти операции перестали работать?