Использование s3cmd ниже политика позволяет мне ListAllBuckets как это:политики Запрещение доступа на Amazon S3
s3cmd ls
и ListBucket так:
s3cmd ls s3://backups/
, но я не могу загрузить файл, как это:
s3cmd put filename s3://backups/
Я просто получаю эту ошибку:
ERROR: S3 error: Access Denied
Политика основана на поиске и множестве примеров в Интернете, но я просто не вижу, где это происходит. Политика заключается в том, чтобы позволить пользователю просто загружать файлы в каталог резервного копирования (в конечном итоге я даже не представляю, что они перечисляют ведра, но я сказал, что просто проверить, действительно ли политика была прочитана).
Другие, возможно, соответствующая информация -
- Я создал ведро с помощью Dragon диск (передний конец для S3) с другим пользователем
- Этот новый IAM пользователь подключен к политике по принадлежности к группе к которому прилагается политика.
Вот политика, обратите внимание, что CreateObject и PutObject были только два оригинальных записей, были добавлены почти только другие, чтобы посмотреть, что случилось:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets",
"s3:ListBucket"
],
"Resource": "arn:aws:s3:::*"
},
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:PutObjectAcl",
"s3:PutObjectVersionAcl",
"s3:CreateObject",
"s3:*"
],
"Resource": "arn:aws:s3:::backups/*"
}
]
}
EDIT 1 -
Просто сказать, что если я добавляю эту политику он прекрасно работает, поэтому я знаю, что что-то делать с моей политикой:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "*"
}
]
}
РЕДАКТИРОВАТЬ 2 - Я сделал еще одну политику, которую я использовал для создания ведра под названием «asdwasw432», на всякий случай, по какой-то причине мой созданный пользовательский интерфейс был непригодным. Но я до сих пор не могу загрузить файл (Access Denied). Я могу перечислить ведро и создать новые ведра. Весь совет, кажется, говорит мне делать то, что я делаю ниже, но никто, если он работает. Я что-то пропустил?
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1397834652000",
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets"
],
"Resource": [
"arn:aws:s3:::*"
]
},
{
"Sid": "Stmt1397834745000",
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:PutObject",
"s3:PutObjectAcl"
],
"Resource": [
"arn:aws:s3:::asdwasw432",
"arn:aws:s3:::asdwasw432/*"
]
}
]
}
Прежде всего, спасибо за подробный обзор этой проблемы! Я столкнулся с той же проблемой и не мог понять, в чем проблема. ** Еще одно примечание ** к вашему ответу: в нашем случае он работает без настроек области/местоположения ковша в файле конфигурации (не обязательно), требуемое действие было 's3: GetBucketLocation'. При этом работает команда 's3cmd put', без этого нет (даже если область установлена правильно). Я не уверен, что вы конкретно протестировали этот случай, но для нас 's3: GetBucketLocation' решил проблему. –
@ViktorBenei - спасибо за это. Я еще не пробовал, что (спящие собаки оставили лгать на данный момент), но я сделал заметку, чтобы сделать это в ближайшее время. Я сообщу здесь, когда найду. – beigerac
Спасибо! Наконечник о ведре должен был быть нами-восток-1 - это место! Я потратил несколько часов на отладку этого :-( – mkhatib