Aws :: S3 :: Ошибки :: AccessDenied ROLLBACK 500 Внутренняя ошибка сервера - PullRequest
0 голосов
/ 08 мая 2019

Я пытаюсь загрузить изображение на ведро s3, используя ruby ​​на рельсах и скрепке, но это не работает. Я пробовал почти все в Интернете.

Я знаю, что есть много вопросов по этому поводу, ноЯ пробовал большинство из них, но ничего не помогло, пожалуйста, просмотрите вопрос, потому что я перечислил то, что я пробовал в вопросе

Я установил пользователя IAM, и у пользователя есть политика AmazonS3FullAccess

{
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Action": "s3:*",
        "Resource": "*"
    }
  ]
 }

Я установил политику для корзины

{
"Version": "2012-10-17",
"Id": "Policy1557294263403",
"Statement": [
    {
        "Sid": "Stmt1557294241958",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::726051891502:user/borroup-admin"
        },
        "Action": "s3:*",
        "Resource": [
            "arn:aws:s3:::borroup",
            "arn:aws:s3:::borroup/*"
        ]
      }
    ]
 }

Я установил редактор конфигурации CORS для корзины

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>

Я удостоверился, что для всех параметров общего доступа для этой корзины установлено значение false

enter image description here

Это ruby ​​для конфигурации рельсов

Примечание: я использую user_key_id и secret_access_key для этого

config.paperclip_defaults = {
    storage: :s3,
    path: ':class/:attachment/:id/:style/:filename',
    s3_host_name: 's3.us-east-2.amazonaws.com',
    s3_credentials:{
      bucket:'borroup',
      access_key_id: '************',
      secret_access_key:'***************************',
      s3_region:'us-east-2'
  }
}

Я получаю эту ошибку при попытке загрузить изображение enter image description here

Aws::S3::Errors::AccessDenied in PhotosController#create

Когда я проверяю журнал ведра, я получаю это enter image description here

1 Ответ

0 голосов
/ 08 мая 2019

Являются ли пользователь корзины и IAM другой учетной записью?Если это так, политика корзины неверна, правильная политика корзины

{"Version": "2012-10-17", "Id": "Policy1557294263403", "Statement": [{"Sid":"Stmt1557294241958", "Effect": "Allow", "Principal": {"AWS": "arn: aws: iam :: 726051891502: user / borroup-admin"}, "Action": "s3: ", "Ресурс": ["arn: aws: s3 ::: borroup", "arn: aws: s3 ::: borroup / "]}]}

// -> borroup /звездочка -> по какой-то причине здесь убран символ звездочки или, может быть, я не знаю, как правильно использовать stackoverflow.

Если пользователь и корзина в одной учетной записи, политика не имеет значения, поскольку пользователь IAMимеет полное разрешение.

...