Корневому пользователю отказывают в загрузке из s3-ведра

116
10

Используя s3cmd после настройки с моими привилегиями root (ключ доступа и секретный ключ), всякий раз, когда я пытаюсь загрузить что-то из ведра с помощью sync или get, я получаю эту странную ошибку разрешения для моей учетной записи root:

WARNING: Remote file  S3Error: 403 (Forbidden):

Владелец - это другой пользователь, который я создал с помощью консоли IAM, но могу ли я правильно предположить, что пользователь root всегда должен получать полный и неограниченный доступ? Также, используя aws -cli, я получаю неизвестную ошибку

A client error (Unknown) occurred when calling the GetObject operation: Unknown

Также я подумал, что мне нужно добавить политику ведра, чтобы разрешить root-доступ (как это ни странно звучит), так как первым шагом я добавил анонимный доступ с этой политикой

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::myBucket/*"
]
}
]
}

Но все же ошибки такие же, как и выше. Владелец ведра также является пользователем root (тот, который пытается получить доступ, совпадает с владельцем). Что я понимаю здесь неправильно? Как я могу восстановить доступ пользователя root к моему собственному ведру, который был сделан одним из моих собственных пользователей IAM?

спросил(а) 2021-01-25T19:46:24+03:00 4 месяца, 2 недели назад
1
Решение
64

Для любой из разрешений на чтение S3 для работы вам не нужно просто разрешать эти объекты, но также разрешать ListBucket в ListAllMyBuckets, ListAllMyBuckets и GetBucketLocation, моей консолидированной версии:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "arn:aws:s3:::*"
},
{
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:Get*",
"s3:List*"
],
"Resource": [
"arn:aws:s3:::myBucket/*",
"arn:aws:s3:::myBucket"
]
}
]
}

Дополнительные примеры в документации AWS IAM

ответил(а) 2021-01-25T19:46:24+03:00 4 месяца, 2 недели назад
63

Всегда лучше перепроверять состояние хранилища и находится ли S3 в жизненном цикле, так что в этом случае он мог быть перенесен на ледник. Здесь я попытался получить доступ к объекту Glacier с s3cmd команд s3cmd, и я получил неинформативные и несущественные ошибки разрешения. Было бы неплохо добавить это как дополнение к будущим версиям s3cmd для получения улучшенных сообщений об ошибках/ошибках.

ответил(а) 2021-01-25T19:46:24+03:00 4 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема