#amazon-web-services #amazon-s3 #oauth #amazon-iam
#amazon-web-services #amazon-s3 #oauth #amazon-iam
Вопрос:
Я использую поставщика удостоверений в AWS, который может предоставлять роль со следующей политикой пользователям, которыми он управляет.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "GiveS3Access",
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::mybucket"
}
]
}
С действительным токеном доступа на моем компьютере я могу перечислить объекты в корзине s3 (пример ниже), но я не могу поместить в нее какой-либо объект.
❯ aws s3 ls s3://mybucket/
PRE test_folder/
PRE home/
2020-10-07 15:22:13 57385 Image001.png
2020-10-07 15:25:20 98942 Image002.png
❯ aws s3 cp test.mp4 s3://mybucket/test.mp4
upload failed: ./test.mp4 to s3://mybucket/test.mp4 An error occurred (AccessDenied) when calling the PutObject operation: Access Denied
Шифрование по умолчанию и дополнительная политика корзины отсутствуют. Файл конфигурации ( ~/.aws/config
) правильно настроен для запроса роли с GiveS3Access
помощью политики (первый блок кода).
Ответ №1:
Arn в форме arn:aws:s3:::mybucket
предназначен только для корзины, а не для ее объектов. Для включения загрузки / выгрузки объектов должно быть:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "GiveS3Access",
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::mybucket",
"arn:aws:s3:::mybucket/*"
]
}
]
}
Однако это позволяет выполнять все операции с вашей корзиной и объектами . Пожалуйста, передумайте изменять его, чтобы следовать принципам наименьших привилегий.